Spec-Zone.ru › Apache HTTP Server

Модуль Apache mod_authz_owner

Описание: Авторизация на основе владения файлом
Статус: Расширение
Идентификатор модуля: authz_owner_module
Исходный файл: mod_authz_owner.c
Совместимость: Доступен в Apache 2.1 и более поздних версиях

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

Этот модуль разрешает доступ к файлам, сравнивая идентификатор пользователя, используемый для HTTP-аутентификации (веб-идентификатор пользователя), с владельцем или группой запрашиваемого файла в файловой системе. Переданное имя пользователя и пароль должны быть предварительно проверены модулем аутентификации, например mod_auth_basic или mod_auth_digest. mod_authz_owner распознаёт два аргумента директивы Require: file-owner и file-group, описанные ниже:

file-owner
Переданное веб-имя пользователя должно совпадать с системным именем владельца запрашиваемого файла. То есть, если операционная система сообщает, что запрашиваемый файл принадлежит jones, то имя пользователя, используемое для доступа к нему через веб, также должно быть jones.
file-group
Имя системной группы, которой принадлежит файл, должно присутствовать в базе данных групп, предоставляемой, например, mod_authz_groupfile или mod_authz_dbm, а веб-имя пользователя должно входить в эту группу. Например, если операционная система сообщает, что запрашиваемый файл принадлежит системной группе accounts, группа accounts должна присутствовать в базе данных групп, а веб-имя пользователя, указанное в запросе, должно входить в эту группу.

Примечание

Если mod_authz_owner используется для авторизации ресурса, который фактически отсутствует в файловой системе (то есть виртуального ресурса), доступ будет запрещён.

В частности, авторизация никогда не будет предоставлена для ресурсов «MultiViews» с согласованием содержимого.

Примеры конфигурации

Require file-owner

Рассмотрим многопользовательскую систему, на которой работает веб-сервер Apache, и у каждого пользователя есть собственные файлы в ~/public_html/private. Предположим, что существует единая база данных AuthDBMUserFile со списком веб-имён пользователей, и эти имена совпадают с системными именами пользователей, которым фактически принадлежат файлы на сервере. В таком случае следующий блок конфигурации разрешит каждому пользователю доступ только к собственным файлам. Пользователь jones не сможет получить доступ к файлам в /home/smith/public_html/private, если они принадлежат не smith, а jones.

<Directory "/home/*/public_html/private">
    AuthType Basic
    AuthName MyPrivateFiles
    AuthBasicProvider dbm
    AuthDBMUserFile "/usr/local/apache2/etc/.htdbm-all"
    Require file-owner
</Directory>

Require file-group

Рассмотрим систему, подобную описанной выше, но с некоторыми пользователями, которые совместно используют файлы проектов в ~/public_html/project-foo. Файлы принадлежат системной группе foo, а единая база данных AuthDBMGroupFile содержит все веб-имена пользователей и сведения об их членстве в группах; то есть они должны как минимум входить в группу с именем foo. Поэтому, если jones и smith оба входят в группу foo, им обоим будет разрешён доступ к каталогам project-foo друг друга.

<Directory "/home/*/public_html/project-foo">
    AuthType Basic
    AuthName "Project Foo Files"
    AuthBasicProvider dbm
    
    # combined user/group database
    AuthDBMUserFile  "/usr/local/apache2/etc/.htdbm-all"
    AuthDBMGroupFile "/usr/local/apache2/etc/.htdbm-all"
    
    Satisfy All
    Require file-group
</Directory>

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

Spec-Zone.ru

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