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

至关重要的是,将用于创建组文件的任何程序配置为使用相同类型的数据库。