<-
Apache HTTP 服务器 2.4 > Apache模块mod_authz_owner

Apache模块mod_authz_owner

描述:基于文件所有权的授权
状态:延期
模块标识符:authz_owner_module
源文件:mod_authz_owner.c
兼容性:在Apache 2.1和更高版本中可用

摘要

该模块通过将用于HTTP身份验证的用户ID(Web用户ID)与文件系统所有者或请求文件的组进行比较,授权对文件的访问。提供的用户名和密码必须已经由身份验证模块(例如mod_auth_basic或) 正确验证mod_auth_digestmod_authz_owner 识别Require指令file-owner和的 两个参数file-group,如下所示:

file-owner
提供的Web用户名必须与所请求文件的所有者的系统名称匹配。也就是说,如果操作系统说所请求的文件由拥有jones,那么用于通过Web访问文件的用户名也必须是jones
file-group
拥有文件的系统组的名称必须存在于组数据库中(例如,由mod_authz_groupfile或提供)mod_authz_dbm,并且Web用户名必须是该组的成员。例如,如果操作系统说所请求的文件归(system)组所有accounts,则该组accounts必须出现在组数据库中,并且请求中使用的Web用户名必须是该组的成员。

注意

如果mod_authz_owner使用来授权文件系统中实际上不存在的资源(虚拟资源),它将拒绝访问。

特别是,它永远不会授权内容协商的“ MultiViews”资源。

支持Apache!

主题

指令

该模块不提供指令。

错误修正清单

也可以看看

最佳

配置实例

需要文件所有者

考虑一个运行Apache Web服务器的多用户系统,每个用户在中都有自己的文件~/public_html/private。假设有一个 AuthDBMUserFile列出所有Web用户名的数据库,并且这些用户名与实际拥有服务器上文件的系统用户名匹配,则以下节将仅允许用户本人访问自己的文件。用户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包含所有Web用户名及其组成员身份的数据库, 它们必须至少是名为的组的成员 foo。因此,如果jonessmith 都是组的成员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>

可用语言: zh  |  fr  |  ja  |  KO 

最佳

注释

注意:
这不是“问答”部分。此处放置的评论应指向有关改进文档或服务器的建议,如果实施或被认为无效/偏离主题,我们的主持人可以将其删除。有关如何管理Apache HTTP Server的问题,应直接指向我们的IRC频道#httpd(位于Freenode上),或发送至我们的邮件列表
目前,此页面已禁用评论。