我正在使用此模块使用 pam 进行身份验证: http ://code.google.com/p/web2py/source/browse/gluon/contrib/pam.py
我可以调用 authenticate('username','password') 并返回 True/False。它适用于除“root”以外的任何“用户名”。我的猜测是 PAM 中有一个安全限制,不允许检查 root 密码。
我需要能够检查root密码。我可以在 pam.conf 或其他地方更改什么以消除此限制吗?
我正在使用此模块使用 pam 进行身份验证: http ://code.google.com/p/web2py/source/browse/gluon/contrib/pam.py
我可以调用 authenticate('username','password') 并返回 True/False。它适用于除“root”以外的任何“用户名”。我的猜测是 PAM 中有一个安全限制,不允许检查 root 密码。
我需要能够检查root密码。我可以在 pam.conf 或其他地方更改什么以消除此限制吗?
我找到了您问题的答案,问题出在默认服务中。
当您调用函数 authenticate('username','password') 时,请确保您也传递了适当的服务。比如 authenticate('username','password', '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
我有同样的问题根没有得到验证。这是修复。
如果您使用“登录”服务,它不适用于 root。利用,
#authenticate('username','password',service='system-auth')
如果它是一个运行 ssh 服务器的系统并且应该为 root 工作,则可以使用 sshd 配置。
验证('root','密码',服务='sshd')