这类问题我又碰上了一次。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 上,重启即失效这一点也要算进等保说明。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。
