You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04配置common-auth文件后pam_tally2导致所有用户被锁定的问题求助

Ubuntu 20.04配置common-auth文件后pam_tally2导致所有用户被锁定的问题求助

嘿,我太懂你这种改完PAM配置直接全锁死、还得拆硬盘去别的机器救场的崩溃感了😅 咱们先理清楚问题出在哪,再给你靠谱的解决方案:

问题根源:你的pam_tally2配置顺序和控制逻辑错了

你当前的规则顺序和控制标志设置有问题,导致不管用户密码输入正确与否,都会触发锁定逻辑,直接把所有用户都锁死了。而且要提醒你:pam_tally2在Ubuntu 20.04里已经是被废弃的模块了,官方现在更推荐用pam_faillock来实现用户锁定功能。

方案1:修复pam_tally2的配置(临时救急)

如果你非要用pam_tally2,先记得备份原文件:sudo cp /etc/pam.d/common-auth /etc/pam.d/common-auth.bak,再把/etc/pam.d/common-auth改成下面的内容:

# here are the per-package modules (the "Primary" block)
auth    required                        pam_tally2.so onerr=fail deny=3 unlock_time=1200
auth    [success=1 default=ignore]      pam_unix.so nullok_secure

同时还要在/etc/pam.d/common-account里添加一行:

account    required    pam_tally2.so

这样配置的逻辑是:

  • 先检查用户是否已经达到锁定阈值,要是已经锁了直接拒绝认证
  • 密码验证成功后,跳过后续模块(success=1),同时pam_tally2会自动重置该用户的失败计数
  • 验证失败的话,pam_tally2会累加失败次数,到3次就锁定1200秒

方案2:改用官方推荐的pam_faillock(更稳定)

因为pam_tally2已经被废弃,长期来看更建议用pam_faillock,配置步骤如下:

  1. 备份common-auth文件:sudo cp /etc/pam.d/common-auth /etc/pam.d/common-auth.bak
  2. 修改/etc/pam.d/common-auth为:
# here are the per-package modules (the "Primary" block)
auth    required    pam_faillock.so preauth silent deny=3 unlock_time=1200
auth    [success=1 default=ignore]    pam_unix.so nullok_secure
auth    [default=die]    pam_faillock.so authfail deny=3 unlock_time=1200
  1. 在/etc/pam.d/common-account里添加一行:
account    required    pam_faillock.so

这个配置的优势是逻辑更清晰,而且是Ubuntu新版本的标准方案,不容易出问题。

下次锁死不用拆硬盘的救急方法

要是再不小心锁死了,不用拆硬盘这么麻烦:

  1. 重启系统,在GRUB菜单选择「Advanced options for Ubuntu」
  2. 选择带「recovery mode」的内核版本
  3. 在恢复菜单里选择「root - Drop to root shell prompt」
  4. 执行命令重置失败计数:
    • 用pam_tally2的话:pam_tally2 --reset
    • 用pam_faillock的话:faillock --reset
  5. 然后修改common-auth文件恢复配置,重启系统就行

备注:内容来源于stack exchange,提问作者A R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 13:55:30