我无法找到有关如何使用
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))
这会记录到系统日志中(如果您在 docker 中修改 PAM,请将
-v /dev/log:/dev/log
传递到 docker run
以查看主机系统日志中的 PAM 系统日志消息)。
解决方案是将以下内容添加到 pam.d 文件中:
account sufficient pam_permit.so