这类问题我又碰上了一次。CentOS 8 按等保配了 pam_faillock deny=5 unlock_time=1800,同事敲错五次密码后登录提示 Account locked due to 5 failed logins,等了半小时也没自动解开,控制台同样进不去。

排查方向其实有限,先把可能性排一排。计数落在 /var/run/faillock 下,unlock_time 只在计数存在时按时间窗判断,重启或清理才归零;su 的 PAM 栈也接了 faillock,运维用 su 反复试同样累加;root 账号没有 except 例外,被一起锁在门外。

上来先看账号的失败计数

faillock --user ops

接着清掉计数解锁

faillock --user ops --reset

给 root 留一条例外路径

在 /etc/pam.d/system-auth 的 auth 段用 [success=1 default=ignore] 跳过 root

缩短锁定时长

在 /etc/security/faillock.conf 写 unlock_time = 300

中途换过一次思路,把范围缩到最小的那一层,反而快了。

中间停过一次,把已经改的东西回滚干净,再重新来一遍。

怎么算真的好了,看的是同一批现象。faillock –user ops 的输出全为 0 且没有 V 标记,ssh 与 su 都能正常登录,auth.log 里出现 pam_faillock 的 reset 记录。

锁定策略一定要给 root 留例外,否则远端把自己锁死只能进带外;faillock 计数存在 tmpfs 上,重启即失效这一点也要算进等保说明。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。

作者 9823189