CentOS登录密码错误次数过多被锁定,要怎么重置解锁账户?

手动锁定与解锁用户账户

对于特定情况,例如当员工离职或某个账户出现异常活动时,管理员可能需要立即手动锁定一个账户,CentOS 提供了两种简单直接的手动锁定方式。

CentOS登录密码错误次数过多被锁定,要怎么重置解锁账户?

使用 passwd 命令

passwd 命令不仅可以用于修改密码,其 -l (lock) 选项可以快速锁定用户,执行该命令后,系统会在 /etc/shadow 文件中对应账户的加密密码字段前添加一个感叹号 ,从而使其密码失效。

# 锁定用户 'testuser'
sudo passwd -l testuser

锁定的账户无法再通过密码登录系统,但其家目录和其他系统资源仍然存在。

要解锁账户,只需使用 -u (unlock) 选项:

# 解锁用户 'testuser'
sudo passwd -u testuser

使用 usermod 命令

usermod 命令是用于修改用户账户属性的强大工具,同样提供了锁定功能,其 -L (lock) 选项与 passwd -l 的效果完全相同,都是在密码字段前添加 。

# 锁定用户 'testuser'
sudo usermod -L testuser

相应地,解锁则使用 -U (unlock) 选项:

# 解锁用户 'testuser'
sudo usermod -U testuser

虽然手动锁定操作简单,但它缺乏自动化能力,无法应对持续的、隐蔽的暴力破解攻击,在生产环境中,更推荐配置自动锁定策略。


配置自动密码锁定策略(推荐方案)

CentOS 通过 PAM(Pluggable Authentication Modules,可插拔认证模块)机制实现了灵活的自动锁定功能,最常用的模块是 pam_faillock.so,它能够记录失败登录尝试并在达到阈值后锁定账户。

在现代的 CentOS 7/8/9 版本中,推荐通过 /etc/security/faillock.conf 文件进行配置,这种方式更为清晰和易于管理。

CentOS登录密码错误次数过多被锁定,要怎么重置解锁账户?

核心配置参数

以下是 faillock.conf 中几个关键参数的说明:

参数 示例值 描述
deny 3 允许的连续失败登录次数,达到此次数后账户将被锁定。
fail_interval 900 计算失败登录次数的时间窗口(单位:秒),900秒内失败3次则锁定。
unlock_time 600 账户被锁定的时间(单位:秒),设置为 0 表示永久锁定,直到管理员手动解锁。
even_deny_root (无值) 如果添加此行,表示锁定策略同样适用于 root 账户,请谨慎使用。
root_unlock_time 60 even_deny_root 启用时,为 root 账户设置一个较短的解锁时间。

激活配置

仅仅编辑 faillock.conf 文件是不够的,还需要确保 PAM 的认证配置文件(通常是 /etc/pam.d/system-auth/etc/pam.d/password-auth)正确地调用了 pam_faillock.so 模块,这些文件中已经包含了相关配置行,你只需要取消注释或确认其存在即可,关键行如下:

auth        required      pam_faillock.so preauth
auth        sufficient    pam_unix.so nullok try_first_pass
auth        [default=die] pam_faillock.so authfail
account     required      pam_faillock.so

这些行确保了在登录认证的各个阶段都会调用 pam_faillock 模块进行检查和记录,修改 PAM 配置文件后,策略会立即生效,无需重启任何服务。


管理与查询锁定状态

配置了自动锁定策略后,管理员需要知道如何查询哪些账户被锁定,以及如何进行干预。

查询账户锁定状态

  • passwd -S 命令可以显示账户状态信息。

    passwd -S testuser

    输出可能为 testuser LK 2025-10-27 0 99999 7 -1 (Password locked.)LK 表示账户被锁定。

  • :这是专门用于 pam_faillock 的管理工具,可以提供更详细的信息。

    CentOS登录密码错误次数过多被锁定,要怎么重置解锁账户?

    # 查看特定用户的失败登录记录
    sudo faillock --user testuser
    # 查看所有被锁定的用户
    sudo faillock

    该命令会显示失败登录的来源、时间和次数。

手动解锁账户

当一个合法用户被意外锁定时,管理员可以使用 faillock 命令手动解锁,解锁操作的本质是清除该用户的失败登录计数记录。

# 清除 'testuser' 的失败记录,从而解锁账户
sudo faillock --user testuser --reset

执行此命令后,用户 testuser 便可以立即尝试重新登录。


相关问答 (FAQs)

问题1:如果管理员账户(如 root)被意外锁定,无法登录怎么办?

解答: 这确实是一个棘手的情况,但仍有解决方案,尝试通过物理控制台或云服务提供商的 VNC (Virtual Network Console) 访问系统,如果仍然无法登录,您需要重启服务器并进入“单用户模式”或“紧急模式”,在此模式下,系统会以 root 权限启动一个最小化的 shell,且不要求密码,进入后,您可以直接使用 faillock --user root --reset 命令来清除 root 账户的失败记录,或者编辑 /etc/shadow 文件手动移除密码前的 号,然后重启系统即可恢复正常访问。

问题2:密码锁定与账户禁用有何区别?

解答: 两者都能阻止用户登录,但原理和应用场景不同,密码锁定(通过 passwd -lpam_faillock)是针对认证凭证的操作,它使现有密码失效,但账户本身及其配置(如用户 ID、主目录、登录 Shell)仍然存在,解锁后,账户可立即恢复使用,而账户禁用通常是指修改用户的登录 Shell,例如将其设置为 /sbin/nologin/bin/false,这样即使用户提供了正确的密码,系统在完成认证后也会因为无法启动有效的 Shell 而立即断开连接,账户禁用是一种更彻底的访问阻断,常用于长期停用但保留其文件和所有权的账户(如服务账户),简言之,锁定是“暂时的封印”,禁用是“永久的驱逐”。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-13 11:09
下一篇 2025-10-13 11:11

相关推荐

  • 如何在Linux系统中快速配置FTP的被动模式?

    本文主要介绍了如何在Linux系统中快速构建FTP站点,并详细讲解了如何设置FTP被动模式。通过这篇文章,读者可以了解到在Linux环境下搭建FTP站点的具体步骤和注意事项,以及如何进行FTP的被动模式设置。

    2024-08-07
    008
  • centos 搜文件

    在CentOS系统中,搜索文件是一项常见且重要的操作,以下是一篇详细介绍如何在CentOS中搜索文件的文章,包括使用命令行工具和图形界面方法,使用命令行搜索文件使用 find 命令find 是Linux系统中用于搜索文件的强大工具,以下是一些基本的 find 命令用法:基本用法:find /path/to/se……

    2026-01-24
    003
  • 如何在CentOS系统上从零开始搭建PPTP VPN?

    在CentOS系统上搭建PPTP(Point-to-Point Tunneling Protocol)VPN服务,可以为远程用户提供一个便捷的网络接入方案,尽管PPTP在安全性上已不再是首选,但其配置简单、客户端兼容性好的特点,使其在一些对安全要求不高的场景下仍有应用价值,本文将详细介绍在CentOS 7/8上……

    2025-10-29
    009
  • 服务器 本地建设 云托管_托管云账户

    服务器托管涉及在数据中心安置服务器,本地建设指在公司自有设施内部署IT资源。云托管是利用第三方云服务商提供的基础设施进行服务器管理,而托管云账户则是在云平台上创建和管理用户账户。

    2024-07-01
    002

发表回复

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

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信