我必须对 DAV SVN 使用 PAM 身份验证,但是当所有配置都按照 mod_auth_pam 文档中指定的方式进行时,身份验证不起作用。经过一番研究,我意识到,要使此功能正常工作,httpd 应该在 root 用户下运行(我不喜欢并且不会实现)或 apache 用户(默认情况下 httpd 在该用户下运行)应该具有读取 /etc/shadow 文件的权限。因此,我想问一对相互关联的问题:
- 从安全角度来看,给予 apache 用户此许可是明智的决定吗?
- 如果第一个问题的答案是“是”,那么正确的方法是什么?
目前我已经完成以下工作:
groupadd shadow
usermod -G shadow apache
chmod g+r /etc/shadow
我能想到的另一种方法是使用 acl:
setfacl -m u:apache:r /etc/shadow
笔记: 操作系统是 Fedora 14 x86_64(内核:2.6.35.11)
httpd v2.2.17
mod_auth_pam v1.1.1
答案1
不,您永远不应该让 Apache 等可公开访问的服务访问 /etc/shadow。
除了 mod_auth_pam,您还可以尝试使用mod_auth_external和这个结合验证码。