我在使用PAM时遇到了一些麻烦。我有一个使用PAM进行身份验证的tomcat webapp。在安装过程中,我们在/etc/pam.d中为/etc/pam.d/sshd文件创建了一个符号链接。这一直有效。
最近,我为用户添加了一种方法来验证每个请求(而不是使用JSESSIONID cookie)。这是因为我们需要定期将一些数据批量加载到监视应用程序中,并且使用Basic Auth很容易。
如果我反复卷曲我的网络服务(例如每秒10次),那么每隔一段时间PAM就会失败。这种情况大约每500次发生一次,尽管我的客户声称它每隔几次发生一次(注意它们是远程运行的,但我不明白为什么这很重要)。
我已将sym链接的pam配置替换为最小配置:
#%PAM-1.0
auth sufficient pam_unix.so audit
auth required pam_deny.so
我还将此添加到我的/etc/syslog.conf
*.debug /var/log/debug.log
可以在debug.log中找到唯一适用的日志消息:
Mar 12 09:49:32 arques java: pam_unix(foo:auth): unable to obtain a password
Mar 12 09:49:32 arques java: pam_unix(foo:auth): auth could not identify password for [root]
如何进一步调试?我尝试过:
答案 0 :(得分:0)
我在使用PAM进行身份验证的Java应用程序中遇到了类似的问题。目前,我猜这个问题是在CentOS 6.4上的分布式Java PAM绑定实现中。我不再有权访问该系统(但我仍然试图解决这个问题)所以我无法提供JDK版本等细节。
我的解决方案最终是严厉地对付PAM:
#%PAM-
auth sufficient pam_debug.so
为了使其更加明确,您可以使用“pam_permit.so”代替。 就是这样,基本上。然后,无论是否有密码,都将对任何有效用户进行身份验证。啊。
我正在继续研究更好的答案。