<-
Apache > HTTP 服务器 > 文档 > 版本 2.4 > 模块

Apache 模块 mod_authz_owner

可用语言:  en  |  fr  |  ja  |  ko 

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

摘要

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

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

注意

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

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

Support Apache!

主题

指令

此模块不提供任何指令。

错误修复清单

另请参阅

top

配置示例

Require file-owner

考虑一个运行 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>

Require file-group

考虑一个类似于上面描述的系统,但有些用户在 ~/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>

可用语言:  en  |  fr  |  ja  |  ko 

top

评论

注意
这不是一个问答区。此处发布的评论应指向有关改进文档或服务器的建议,如果这些建议已被实施或被认为无效/主题不相关,则可能会被我们的版主删除。有关如何管理 Apache HTTP 服务器的问题应发送到我们的 IRC 频道 #httpd(在 Libera.chat 上)或发送到我们的 邮件列表