PAM身份验证问题

5 投票
3 回答
4276 浏览
提问于 2025-04-15 22:13

我正在使用这个模块通过 PAM 进行身份验证:http://code.google.com/p/web2py/source/browse/gluon/contrib/pam.py

我可以调用 authenticate('用户名','密码'),它会返回 True 或 False。对于任何 '用户名' 都可以使用,但 'root' 除外。我猜这是因为 PAM 有安全限制,不允许检查 root 用户的密码。

我需要能够检查 root 密码。我可以在 pam.conf 或其他地方做什么来去掉这个限制吗?

3 个回答

0

如果你的系统上运行着SSH服务器,你可以使用sshd的配置,这样就可以让root用户正常工作。

用这个命令来验证:authenticate('root','password',service='sshd')

3

我之前也遇到过同样的问题,root用户无法认证。这里有个解决办法。

如果你使用的是'login'这个服务,它对root用户是无效的。你可以试试这个:

#authenticate('username','password',service='system-auth')
4

我找到了你问题的答案,问题出在默认的服务上。

当你调用函数 authenticate('用户名','密码') 时,确保你也传入一个合适的服务。比如可以这样调用:authenticate('用户名','密码', 'passwd'),或者你可以在 /etc/pam.d/ 下面添加你自己的配置。

这里有一个来自 webmin 项目的例子:

#%PAM-1.0
auth    required    pam_unix.so nullok
account required    pam_unix.so
session required    pam_unix.so

把前面的内容写到 /etc/pam.d/ 下的一个文件里,给它起个名字,比如叫 'myconfig',然后把这个名字传给函数,它就能正常工作了(对我来说是这样:D)

撰写回答