mod_authz_owner
描述: | 基于文件所有权的授权 |
状态: | 延期 |
模块标识符: | authz_owner_module |
源文件: | mod_authz_owner.c |
兼容性: | 可在 Apache 2.1 及更高版本中使用 |
摘要
此模块通过将用于 HTTP 身份验证的用户标识(web 用户标识)与所请求文件的 file-system 所有者或 group 进行比较来授权访问 files。提供的用户名和密码必须已由身份验证模块正确验证,例如mod_auth_basic或mod_auth_digest。mod_authz_owner识别要求指令的两个 arguments,file-owner
和file-group
,如下所示:
file-owner
提供的 web-username 必须匹配所请求文件的所有者的系统 name。也就是说,如果操作系统说请求的文件由 jones 拥有,那么用于通过 web 访问它的用户名也必须是 jones。file-group
拥有该文件的系统 group 的 name 必须存在于 group 数据库中,例如,由 mod_authz_groupfile 或 mod_authz_dbm 提供,web-username 必须是该 group 的成员。例如,如果操作系统说所请求的文件归(系统)group 帐户所有,则 group 帐户必须出现在 group 数据库中,并且请求中使用的 web-username 必须是该 group 的成员。
注意
如果在 order 中使用mod_authz_owner来授权文件系统中实际不存在的资源(i.e.虚拟资源),则它将拒绝访问。
特别是它永远不会授权内容协商“MultiViews”资源。
Configuration 示例
要求 file-owner
考虑系统运行 Apache Web 服务器,每个用户在~/public_html/private
中拥有自己的 files。假设有一个AuthDBMUserFile数据库列出所有 web-usernames,并且这些用户名匹配系统的实际拥有服务器上 files 的用户名,那么下面的节只允许用户自己访问他自己的 files。不允许用户jones
访问/home/smith/public_html/private
中的 files,除非它们由jones
而不是smith
拥有。
<Directory "/home/*/public_html/private"> AuthType Basic AuthName MyPrivateFiles AuthBasicProvider dbm AuthDBMUserFile "/usr/local/apache2/etc/.htdbm-all" Require file-owner </Directory>
要求 file-group
考虑一个类似于上述系统的系统,但有些用户在~/public_html/project-foo
中共享他们的项目 files。 files 归系统 group foo
所有,并且只有一个AuthDBMGroupFile数据库包含所有 web-usernames 及其 group 成员资格 i.e。它们必须至少是名为foo
的 group 的成员。因此,如果jones
和smith
都是 group 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>