首页/系统/信创系统运维速查/账号被锁定的解锁处理
常见问题65 条

账号被锁定的解锁处理

多次输错密码后账号被锁(faillock/pam_tally2):查看失败记录与来源,确认非攻击后按需解锁,并审视锁定策略参数。

信创系统运维速查系统更新于 2026-10-13

账号为什么会被锁定

Linux 的认证模块可以配置连续失败次数上限与锁定时长,达到阈值后账号在一段时间内拒绝登录,这是抵御口令爆破的基础手段。被锁定的判断依据通常写在失败记录里,可以通过查询工具看到失败次数、最近一次失败时间与来源地址。

解锁之前先看来源

锁定的成因有两类:运维自己输错口令,或外部在使用字典大规模尝试。前者直接清空失败计数即可;后者如果只解锁不处理来源,解锁后的账号会立刻被继续爆破,甚至产生一批重复的锁定与解锁记录。因此先看失败来源分布,再决定是否同时做访问控制。

基本信息

常见机制认证模块的失败计数与新老版本对应工具
策略文件/etc/security 下的模块配置或全局策略文件
查询范围失败次数、锁定状态、失败来源
权限要求root

典型使用场景

  • 运维连续输错口令导致账号被临时锁定,需要立即恢复
  • 多台服务器同时收到登录失败告警,需要确认是否为爆破
  • 安全加固后首次出现锁定,验证策略参数是否符合预期
  • 服务账号因来源地址变更被锁定,需要排查原因
  • 制定失败锁定策略时评估锁定时间与阈值是否合理

查看状态

查看状态
faillock --user <用户名>                     # 失败记录与是否处于锁定状态
faillock                                   # 不加参数可查看全部记录
pam_tally2 --user <用户名> 2>/dev/null        # 老版本发行版的对应工具
lastb | head                               # 失败登录来源概览
grep -r 'deny\|unlock_time' /etc/security/ 2>/dev/null | head

解锁与策略调整

解锁与策略调整
faillock --user <用户名> --reset             # 清空该用户的失败计数
# 老版本:pam_tally2 --user <用户名> --reset
# 策略示例(具体文件按发行版与模块版本确定):
# deny=5              连续失败 5 次锁定
# unlock_time=900      锁定 900 秒后自动解锁
# 修改后在目标环境验证一次,避免只改文档不改生效配置

判断与处置

判断项现象处置方向
失败来源单个来源地址反复失败考虑对该来源做访问限制
失败来源大量分散来源尝试判定为爆破,纳入安全事件流程
失败时间集中在几秒内自动化尝试特征明显
锁定状态计数达到阈值且未过期确认非攻击后重置计数
策略参数锁定时间过长影响运维在安全要求范围内调整参数
解锁前先查看失败来源,批量失败很可能来自外部爆破,只解锁不处置来源会立刻再次被锁。把锁定时间改成零相当于允许无限尝试,调整前先确认安全要求是否允许。

易错点

  • 各发行版启用的认证模块不同,照搬某一种解锁命令在另一系统上找不到记录
  • 只解锁不看来源,账号恢复后马上被继续尝试,问题反复出现
  • 把锁定时间设为永久或极长,运维输错口令后长时间无法登录,影响故障处理
  • 调整策略后没有在目标系统验证生效,文档与实际行为不一致

数据来源与参考

  • man 8 pam_faillock
  • man 8 pam_tally2
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌