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)
酷番叔酷番叔
上一篇 2025年9月9日 11:44
下一篇 2025年9月9日 11:54

相关推荐

  • linux如何找到www目录

    在Linux系统中,“www目录”通常指的是Web服务器(如Apache、Nginx等)存放网站文件的根目录,也可能是用户自定义的网站开发或托管目录,找到www目录的方法因服务器配置和用户需求而异,以下从默认路径、配置文件查找、命令行搜索等角度详细说明,帮助快速定位目标目录,通过Web服务器默认路径查找主流Li……

    2025年9月25日
    4400
  • 在配置虚拟机安装Linux的过程中,有哪些关键步骤和注意事项需要掌握?

    配置虚拟机安装Linux是许多开发者和系统管理员常用的技术,既能避免破坏物理系统,又能灵活进行环境测试,以下是详细的配置步骤,从准备工作到系统安装及优化,涵盖关键操作细节,帮助顺利完成Linux虚拟机的搭建,准备工作在开始配置前,需确保硬件和软件满足基本要求,这是虚拟机稳定运行的基础,硬件要求:CPU:支持虚拟……

    2025年10月4日
    3300
  • Linux系统如何通过视频教程一步步完成建站搭建?

    在Linux系统上搭建网站是许多开发者和运维人员的必备技能,通过视频教程学习可以更直观地掌握每个操作步骤,视频教程通常会从环境准备开始,逐步讲解服务器配置、服务搭建、网站部署及安全优化等关键环节,帮助新手快速上手,以下结合视频教程的核心内容,详细拆解Linux建站的完整流程,第一步:环境准备与系统初始化视频教程……

    2025年10月1日
    3100
  • Linux如何修改文件扩展名?

    在Linux操作系统中,文件的扩展名(后缀)虽然不直接影响系统的文件识别机制(Linux更依赖文件权限、元数据等),但为了方便用户理解、程序调用或满足特定场景需求(如将文本文件改名为.jpg以适配某些工具),修改文件扩展名是一项常见操作,本文将详细介绍Linux下修改文件扩展名的多种方法,包括基础命令、批量处理……

    2025年9月17日
    4800
  • Linux系统下查找挂死线程的具体有效方法、步骤及命令有哪些?

    在Linux系统中,线程“挂死”通常指线程处于不可中断睡眠状态(D状态),此时线程无法被信号唤醒(如kill -9),也无法被操作系统调度,常见于等待硬件资源、文件锁、网络I/O或死锁场景,挂死线程会导致进程或系统响应缓慢,甚至引发服务不可用,因此快速定位并解决挂死线程至关重要,以下从基础到进阶,详细说明Lin……

    2025年8月24日
    6400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信