我正在尝试使用 PAM 和 libpam_exec 在登录过程中运行脚本;
我已将这一行添加到 /etc/pam.d/ 下的所需文件中:
auth required pam_exec.so debug log=/var/log/debug /usr/local/bin/test.sh
为了测试它是否有效,脚本如下所示:
#!/bin/bash
## do nothing, except return success (allow login..)
exit 0;
但是,客户端却因“严重错误”而被拒绝,并且调试日志报告了这个奇怪的错误:
bash: xmalloc: ../bash/locale.c:73: cannot allocate 2 bytes (0 bytes allocated)
我到处都找过了,却没能找到关于这个特定问题的任何有用信息。调试日志非常模糊,我根本不知道下一步该怎么做?
我考虑过(作为最后的手段)挖掘 bash 的源代码来查看 locale.c 第 73 行的内容...或者只是使用另一个模块......但我对 pam_exec 有多个计划,并且我并不特别喜欢(例如)pam_script 的实现。
有人有什么建议吗?
注意:运行 Ubuntu 12.04 lts