Linux密码输错被锁,如何解锁账户?

当Linux系统用户连续输错密码次数过多时,系统会基于安全策略自动锁定该用户账户,防止暴力破解,这种锁定通常由PAM(Pluggable Authentication Modules)模块实现,如pam_tally2或pam_faillock,解决密码输错锁住的问题,需根据系统配置和发行版选择对应方法,以下是详细步骤:

linux密码输错锁住如何解决

查看账户锁定状态

解锁前需确认账户是否真的被锁定,避免误判,不同发行版使用的工具不同:

  • CentOS/RHEL系统(使用pam_tally2模块):
    执行命令 pam_tally2 --user=用户名,若返回“Login failures”大于0,则说明账户被锁定。

    pam_tally2 --user=test

    输出示例:Login Failures Latest failure From test 3 2023-10-01 10:30:00 pts/0,表示test账户因3次失败被锁定。

  • Ubuntu/Debian系统(使用pam_faillock模块):
    执行命令 faillog -u 用户名,若显示“Lock time”或“Failures”大于0,则被锁定。

    faillog -u=test

    输出示例:Login Failures Latest failure Maximum test 2 2023-10-01 11:00:00 pts/1 3,表示test账户因2次失败触发锁定(最大失败次数为3)。

解锁账户的方法

方法1:使用pam_tally2解锁(CentOS/RHEL默认)

需root权限,通过重置登录失败次数解锁:

sudo pam_tally2 --user=用户名 --reset

执行后再次查看 pam_tally2 --user=用户名,若“Login Failures”变为0,则解锁成功。

注意:若系统使用 pam_tally2.so 模块但上述命令无效,可能是模块路径问题,可尝试完整路径:

linux密码输错锁住如何解决

sudo /usr/sbin/pam_tally2 --user=用户名 --reset

方法2:使用pam_faillock解锁(Ubuntu/Debian默认)

需root权限,通过重置失败计数解锁:

sudo faillock --user=用户名 --reset

执行后通过 faillog -u=用户名 确认“Failures”是否归零。

注意:若系统中无 faillock 命令,可能是未安装 libpam-modules 包,需先安装:

sudo apt update && sudo apt install libpam-modules

方法3:直接修改用户密码(适用于已知root密码)

若能通过root或其他管理员账户登录,可直接重置目标用户密码,部分系统会自动解除锁定:

sudo passwd 用户名
# 按提示输入新密码两次

例如重置test用户密码后,再次登录即可,无需手动解锁。

调整密码错误锁定策略(避免频繁锁定)

若希望修改系统默认的锁定规则(如最大失败次数、锁定时间),需编辑PAM配置文件。

CentOS/RHEL(修改/etc/pam.d/system-auth)

找到包含 pam_tally2.so 的行,调整参数:

auth required pam_tally2.so onerr=fail deny=5 unlock_time=300
  • deny=5:最大允许5次失败,超过则锁定;
  • unlock_time=300:锁定5分钟后自动解锁(单位:秒,设为0则需手动解锁)。

修改后保存,重启sshd服务(若为远程登录):sudo systemctl restart sshd

linux密码输错锁住如何解决

Ubuntu/Debian(修改/etc/pam.d/common-auth)

找到包含 pam_faillock.so 的行,调整参数:

auth [success=1 default=ignore] pam_unix.so
auth [default=die] pam_faillock.so preauth audit silent deny=3 unlock_time=600 fail_interval=300
  • deny=3:最大允许3次失败;
  • unlock_time=600:锁定10分钟后自动解锁;
  • fail_interval=300:5分钟内连续失败才触发锁定。

修改后保存,重启sshd服务:sudo systemctl restart sshd

参数说明表
| 参数 | 含义 | 示例值 |
|—————|——————————-|——–|
| deny | 最大失败次数 | 3 |
| unlock_time| 锁定时间(秒),0为手动解锁 | 300 |
| fail_interval| 触发锁定的失败时间窗口(秒)| 300 |

FAQs

Q1:忘记root密码,如何解锁被锁定的普通用户账户?
A:可通过进入单用户模式或恢复模式解决:

  1. 重启系统,在GRUB引导界面按e进入编辑模式;
  2. 找到以linuxlinux16开头的行,在行尾添加init=/bin/bash(CentOS)或systemd.unit=rescue.target(Ubuntu);
  3. 按Ctrl+X启动,进入root shell(可能需要输入root密码,若忘记则需通过其他方式重置root密码,如chroot修复);
  4. 执行解锁命令(如pam_tally2 --user=用户名 --reset);
  5. 执行exec /sbin/initreboot重启系统,即可正常登录。

Q2:为什么解锁后很快又被锁住?
A:通常有两种原因:

  1. 策略配置过严格:例如deny值设为1(1次失败即锁定),或fail_interval时间过短(如1分钟内2次失败就锁定),需检查PAM配置文件(如/etc/pam.d/system-auth),适当调整denyunlock_time等参数;
  2. 其他服务触发锁定:如SSH、图形登录等不同模块均配置了锁定策略,可能导致重复锁定,需检查所有PAM配置文件(如/etc/pam.d/sshd/etc/pam.d/gdm-password),确保锁定逻辑一致,避免重复计数。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/22216.html

(0)
酷番叔酷番叔
上一篇 6小时前
下一篇 6小时前

相关推荐

  • 如何查看U盘设备标识?

    如何用U盘启动Linux?详细操作指南为什么需要U盘启动Linux?U盘启动Linux是体验或安装Linux系统的核心方式,适合以下场景:零风险试用:不修改硬盘数据,直接在U盘运行Linux(Live模式)系统安装/修复:为新电脑安装Linux或修复崩溃的系统便携工作环境:随身携带个性化Linux系统安全检测……

    2025年6月15日
    3500
  • Linux查看网页,哪种方式更适合你?

    命令行工具(适合服务器/无图形界面环境)Lynx – 纯文本浏览器安装:sudo apt install lynx(Debian/Ubuntu)或 sudo yum install lynx(CentOS/RHEL)使用: lynx https://example.com # 打开网页方向键导航,Q键退出,支持……

    2025年7月1日
    3400
  • linux如何运行命令提示符

    Linux 中,打开终端即可运行命令提示符,可按快捷键组合(如 Ctrl

    2025年8月17日
    1700
  • 如何快速将文件从本地传到远程服务器?

    命令行工具(高效精准)SCP(安全加密传输)适用场景:远程服务器文件传输(跨网络)步骤:# 从远程服务器下载到本地scp 用户名@远程IP:/远程文件路径 /本地保存路径注意:需提前安装OpenSSH(sudo apt install openssh-client)默认使用22端口,如需修改:scp -P 端口……

    2025年6月13日
    3800
  • 10秒解决手机卡顿?

    核心诊断工具ping 命令(基础检测)ping -c 10 example.com # 发送10个ICMP包丢包判断:输出末尾的统计信息(如 10 packets transmitted, 8 received, 20% packet loss)直接显示丢包率,关键参数:-i 0.2:缩短发包间隔(默认1秒……

    2025年7月21日
    2900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信