Spec-Zone.ru › Apache HTTP Server

Модуль Apache mod_userdir

Описание: Директории пользователей
Статус: Базовый
Идентификатор модуля: userdir_module
Файл исходного кода: mod_userdir.c

Краткое описание

Используя этот модуль, вы разрешаете нескольким пользователям размещать контент в одной и той же области происхождения. Политика одной области происхождения — ключевой принцип JavaScript и веб-безопасности. Размещая веб-страницы в одной области происхождения, эти страницы могут читать и управлять друг другом, а проблемы безопасности на одной странице могут повлиять на другую. Это особенно опасно в сочетании с веб-страницами, включающими динамический контент, аутентификацию и когда ваши пользователи не обязательно доверяют друг другу.

Этот модуль позволяет получать доступ к пользовательским директориям с использованием синтаксиса http://example.com/~user/.

Директива UserDir

Описание: Расположение пользовательских директорий
Синтаксис:
UserDir directory-filename [directory-filename] ...
Контекст: настройка сервера, виртуальный хост
Статус: Базовый
Модуль: mod_userdir

Директива UserDir устанавливает реальную директорию в домашнем каталоге пользователя для использования при получении запроса на документ пользователя. Имя_директории может быть одним из следующих:

  • Имя директории или шаблон, как показано ниже.
  • Ключевое слово disabled. Это отключает все преобразования имен пользователей в директории, за исключением тех, которые явно указаны с ключевым словом enabled (см. ниже).
  • Ключевое слово disabled, за которым следует список имен пользователей, разделенных пробелами. Имена пользователей, присутствующие в таком списке, никогда не будут подвергаться преобразованию директорий, даже если они появляются в пункте enabled.
  • Ключевое слово enabled, за которым следует список имен пользователей, разделенных пробелами. Эти имена пользователей будут подвергаться преобразованию директорий, даже если действует глобальное отключение, но не если они также присутствуют в пункте disabled.

Если ни ключевое слово enabled, ни ключевое слово disabled не указаны в директиве Userdir, аргумент обрабатывается как шаблон имени файла и используется для преобразования имени в спецификацию директории. Запрос на http://www.example.com/~bob/one/two.html будет преобразован в:

Используемая директива UserDir Преобразованный путь
UserDir public_html ~bob/public_html/one/two.html
UserDir /usr/web /usr/web/bob/one/two.html
UserDir /home/*/www /home/bob/www/one/two.html

Следующие директивы отправят переадресацию клиенту:

Используемая директива UserDir Преобразованный путь
UserDir http://www.example.com/users http://www.example.com/users/bob/one/two.html
UserDir http://www.example.com/*/usr http://www.example.com/bob/usr/one/two.html
UserDir http://www.example.com/~*/ http://www.example.com/~bob/one/two.html
Будьте осторожны при использовании этой директивы; например, "UserDir ./" будет сопоставлять "/~root" с "/" — что, вероятно, нежелательно. Настоятельно рекомендуется включить в вашу конфигурацию объявление "UserDir disabled root". См. также директиву Directory и страницу Рекомендации по безопасности для получения дополнительной информации.

Дополнительные примеры:

Чтобы разрешить нескольким пользователям иметь UserDir директории, но не всем остальным, используйте следующее:

UserDir disabled
UserDir enabled user1 user2 user3

Чтобы разрешить большинству пользователей иметь UserDir директории, но запретить это нескольким, используйте следующее:

UserDir disabled user4 user5 user6

Также можно указать альтернативные пользовательские директории. Если вы используете команду, например:

UserDir "public_html" "/usr/web" "http://www.example.com/"

При запросе на http://www.example.com/~bob/one/two.html будет сначала пытаться найти страницу в ~bob/public_html/one/two.html, затем в /usr/web/bob/one/two.html, и, наконец, отправит переадресацию на http://www.example.com/bob/one/two.html.

Если вы добавляете переадресацию, она должна быть последним вариантом в списке. Apache httpd не может определить, удалась ли переадресация, поэтому, если у вас переадресация раньше в списке, это всегда будет выбранный вариант.

Замена пользовательских директорий по умолчанию не активна в версиях 2.1.4 и более поздних. В более ранних версиях UserDir public_html предполагалось, если директива UserDir отсутствовала.

Объединение данных

Списки конкретных разрешенных и запрещенных пользователей замещаются, а не объединяются, от глобального до уровня виртуального хоста

См. также

  • Руководство по веб-директориям на пользователя

© 2018 The Apache Software Foundation
Licensed under the Apache License, Version 2.0.
https://httpd.apache.org/docs/2.4/en/mod/mod_userdir.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API