我们使用的是 CentOS 6.5。我们有一个用于自动化测试的 perl 脚本。其中脚本之一以非 root 用户身份登录用户并测试“su -”命令。该测试用例大多数情况下都会通过,但在少数情况下会失败。
/var/log/secure 中的错误消息:
localhost su: pam_unix(su-l:auth): authentication failure; logname=test_user uid=500 euid=0 tty=pts/0 ruser=test_user rhost= user=root
“test_user”是非root用户。
因此,出于调试目的,我们希望了解脚本是否发出正确的密码,或者由于任何缓冲区问题,脚本发送了一些额外的字符。
是否有配置可以让 PAM 模块记录用户输入的密码?
以下是/etc/pam.d/su的配置
#%PAM-1.0
auth sufficient pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth sufficient pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth required pam_wheel.so use_uid
auth include system-auth
account sufficient pam_succeed_if.so uid = 0 use_uid quiet
account include system-auth
password include system-auth
session include system-auth
session optional pam_xauth.so
以下是/etc/pam.d/system-auth中的配置
#%PAM-1.0
auth required pam_env.so
auth sufficient pam_unix.so
auth sufficient pam_ldap.so try_first_pass
auth required pam_deny.so
account sufficient pam_succeed_if.so uid < 100 quiet
account sufficient pam_unix.so
account sufficient pam_ldap.so
account required pam_permit.so
password requisite pam_cracklib.so retry=3
password sufficient pam_unix.so use_authtok
password sufficient pam_ldap.so use_authtok
password required pam_deny.so
session required pam_limits.so
session optional pam_unix.so
session optional pam_ldap.so
session required pam_mkhomedir.so
有人可以给我一些指导来调试这个问题。我还尝试在文件中添加debug
和warn
选项,但如果身份验证失败,我仍然无法获得额外的登录信息。pam_unix.so
system-auth
/var/log/secure