我在 hpw 上找不到使用 pam_exec 运行外部程序的示例,该程序将在用户登录时对其进行身份验证。
我的 pam.d 文件中有以下内容
auth required pam_exec.so debug log=/tmp/aa /path/to/myscript
我的脚本应该包含什么来允许或禁止身份验证?
pam_exec 将只检查脚本的退出代码。如果它不等于零,您将拒绝授权。
针对上述评论:在我的情况下,身份验证脚本还可以,但 PAM 在该account
阶段失败:
authentication: pam_unix(postgresql:account): could not identify user (from getpwnam(myuser))
这将记录到 syslog 中(如果您在 docker 中修改 PAM,请传递-v /dev/log:/dev/log
到docker run
以查看主机的 syslog 中的 PAM syslog 消息)。
解决方案是将以下内容添加到 pam.d 文件中:
account sufficient pam_permit.so