我目前让我的 apache 服务器通过从 htpasswd 创建的密码文件进行身份验证。配置如下:
AuthType Basic
AuthName "Secured Site"
AuthUserFile "/etc/apache2/users.passwd"
如何将其更改为通过本地系统帐户进行身份验证,并额外限制为指定组中本地系统帐户的子集?
我目前让我的 apache 服务器通过从 htpasswd 创建的密码文件进行身份验证。配置如下:
AuthType Basic
AuthName "Secured Site"
AuthUserFile "/etc/apache2/users.passwd"
如何将其更改为通过本地系统帐户进行身份验证,并额外限制为指定组中本地系统帐户的子集?
正如 David Z 所建议的,您可以使用 mod-authnz-external。例如,将它与pwauth一起使用。
如果您正在运行 Debian 或衍生产品:
在您的配置中,添加
在目录部分或您的 .htaccess 文件中:
apache2ctl restart
最后用or重新加载配置service apache2 reload
。另请参阅本文档。
您可能想研究类似
mod_auth_pam
. PAM 是“Pluggable Authentication Module”系统,标准的 Linux(我假设这是 Linux)系统登录机制依赖 PAM 进行身份验证。另一个选项是
mod_authnz_external
,它将直接查看/etc/shadow
文件以验证帐户。编辑:显然
mod_auth_pam
不再维护(不幸的是),所以也许mod_authnz_external
是一个更好的选择......Apache 模块
mod_auth_pam
将为您完成此任务。您启用模块,配置文件应类似于你都准备好了。
我刚刚遇到了同样的问题。这是我的解决方案,因为
mod_auth_pam
已经死了,没有人解决最初的问题,我使用的是 Ubuntu 18.04,因此请根据您自己的系统调整软件包安装。对于此示例,我正在托管一个目录
/var/www/data
,并且只希望data
组中的用户具有访问权限。我假设您正在运行 Apache 安装并且data
已经创建了组。如前所述,您需要抓取
pwauth
和authnz
软件。此外,您将需要mod-authz-unixgroup
进行组身份验证。您可以使用安装它们,接下来,使用以下方法更改 pwauth 的权限(此问题已在 2020-06-02 修复,但对于旧版本,我将在此处保留),
然后,写下你的 apache2 VirtualHost 配置。这是一个非常简单的例子,
最后,您需要重新加载、重新启动并检查 Apache 的状态是否有错误。