Apache 模块 mod_authz_dbm
Description: | 使用 DBM 文件的组授权 |
---|---|
Status: | Extension |
Module Identifier: | authz_dbm_module |
Source File: | mod_authz_dbm.c |
Compatibility: | 在 Apache 2.1 及更高版本中可用 |
Summary
此模块提供授权功能,以便可以通过组成员身份来允许或拒绝经过身份验证的用户访问网站的某些部分。 mod_authz_groupfile提供了类似的功能。
要求指令
在授权阶段使用 Apache 的Require指令来确保允许用户访问资源。 mod_authz_dbm 使用dbm-group
扩展授权类型。
从 v2.4.8 开始,DBM require 指令支持expressions。
Require dbm-group
该指令指定用户获得访问权限所需的组成员身份。
Require dbm-group admin
Require dbm-file-group
指定此伪指令后,用户必须是分配给正在访问的文件的组的成员。
Require dbm-file-group
Example usage
请注意,使用 mod_authz_dbm 需要您使用dbm-group
而不是group
:
<Directory "/foo/bar">
AuthType Basic
AuthName "Secure Area"
AuthBasicProvider dbm
AuthDBMUserFile "site/data/users"
AuthDBMGroupFile "site/data/users"
Require dbm-group admin
</Directory>
AuthDBMGroupFile Directive
Description: | 设置包含授权用户列表的数据库文件的名称 |
---|---|
Syntax: | AuthDBMGroupFile file-path |
Context: | directory, .htaccess |
Override: | AuthConfig |
Status: | Extension |
Module: | mod_authz_dbm |
AuthDBMGroupFile
伪指令设置 DBM 文件的名称,该文件包含用于用户授权的用户组列表。文件路径是组文件的绝对路径。
组文件键入用户名。用户的值是用户所属的组的逗号分隔列表。值内不能有空格,并且绝不能包含任何冒号。
Security
确保AuthDBMGroupFile
存储在 Web 服务器的文档树之外。请勿将其放在受保护的目录中。否则,除非受到其他保护,否则 Client 端将能够下载AuthDBMGroupFile
。
组合组和密码 DBM 文件:在某些情况下,Management 包含每个用户的密码和组详细信息的单个数据库会更容易。这简化了所有需要编写的支持程序:它们现在只需要处理写入和锁定单个 DBM 文件的问题。这可以通过首先将组和密码文件设置为指向相同的 DBM 来完成:
AuthDBMGroupFile "/www/userbase"
AuthDBMUserFile "/www/userbase"
单个 DBM 的密钥是用户名。该值包括
Encrypted Password : List of Groups [ : (ignored) ]
密码部分包含以前的加密密码。其次是冒号和逗号分隔的组列表。其他数据可以选择在另一个冒号之后留在 DBM 文件中;授权模块将忽略它。这就是 www.telescope.org 用于组合的密码和组数据库的内容。
AuthzDBMType Directive
Description: | 设置用于存储用户组列表的数据库文件的类型 |
---|---|
Syntax: | AuthzDBMType default|SDBM|GDBM|NDBM|DB |
Default: | AuthzDBMType default |
Context: | directory, .htaccess |
Override: | AuthConfig |
Status: | Extension |
Module: | mod_authz_dbm |
设置用于存储用户组列表的数据库文件的类型。默认数据库类型在编译时确定。其他类型的数据库文件的可用性还取决于compile-time settings。
至关重要的是,将用于创建组文件的任何程序配置为使用相同类型的数据库。