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".

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

Требование владения файлом

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

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

Требование принадлежности к группе файла

Рассмотрим систему, аналогичную описанной выше, но с пользователями, которые совместно используют свои файлы проекта в ~/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