一个用户名的 PAM 身份验证错误。所有其他用户名都可以正确登录

一个用户名的 PAM 身份验证错误。所有其他用户名都可以正确登录

VMWare 虚拟机中的 Red Hat Enterprise Linux 6.10。我们定义了多个用户帐户。一个用户帐户 (user3) 无法通过 SSH 或 VMWare 控制台登录。以前曾登录过,但最近两天无法登录。其他用户帐户可以正常登录。

用户的帐户列在 /etc/passwd 和 /etc/shadow 中,并且未被锁定。我们创建了一个新用户,该用户登录没有任何问题。 /etc/passwd 条目显示有效的 shell 路径 (/bin/bash)。

我们删除了 user3 并重新创建了该帐户。它仍然无法登录。使用任何其他名称(usr3、user33 等)的新帐户都可以登录。名为 user3 的帐户无法登录。

如果新帐户获得 user3 拥有的 UID,则它可以登录。如果名为 user3 的新帐户具有不同的 UID,它仍然无法登录。显示名称“user3”在某处被锁定。

以 root 身份运行“passwd user3”会在 /var/log/secure 中提供以下条目:

passwd: pam_unix(passwd:chauthtok): password changed for user3
passwd: gkr-pam: couldn't update the 'login' keyring password: no old password was entered

当我们以 user3 身份 SSH 登录时,/var/log/secure 显示:

sshd[21420]: error: PAM: Authentication failure for user3 from computer1

就是这样。没有其他错误。有趣的是,当我们故意输入不正确的密码时,我们会看到一组不同的错误:

unix_chkpwd[21903]: password check failed for user (user3)
sshs[21745]pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=computer1 user=user3
sshd[21718]: error: PAM: Authentication failure for user3 from computer1
sshd[22121]: error: PAM: Authentication failure for illegal user user3 from computer3

在我看来,PAM 在某处有一个“user3”的损坏条目。我对 PAM 不太了解,无法进一步排除故障。

我需要避免任何擦除/重置整个 PAM 配置的解决方案,因为我不想影响其他用户帐户。如何精确定位“user3”名称?

答案1

我遇到了同样的问题 - 一名用户无法通过 Putty 或本地 ssh 登录,但 pam_tally2 中没有使用有效或无效密码的新条目。

其他症状:

  • su - (提示输入密码并返回“su:身份验证失败”)
  • /var/log/secure 中的条目显示“sshd[] 错误:PAM:身份验证失败”,没有身份验证/帐户/会话信息
  • 使用“sudo passwd”重置密码清楚地重置了密码,指示令牌已成功更改,并且 /etc/shadow 中的时间戳已正确更新,但身份验证问题仍然存在
  • 用户帐号未过期

所有其他用户都能够正确登录,因此这不是一般的 PAM 配置问题。

解决方案:

faillock --user <username> (showed 5 valid failures)
faillock --user <username> --reset 
faillock --user <username> (now has 0 valid failures)

之后我就可以通过 Putty 登录并成功使用“su - ”

答案2

pam_tally2模块会记录尝试访问的次数,如果尝试失败次数过多,则可以拒绝访问。该模块的联机帮助页有更多信息。

该模块的规范如下/etc/pam.d/login,例如:

auth  required  pam_tally2.so deny=6 

您可以通过以下方式确定用户的错误计数:

pam_tally2 --user=<username>

您可以通过以下方式重置计数:

pam_tally2 --user=<username> --reset

相关内容