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 命令passwd -S 命令可以显示账户状态信息。

    passwd -S testuser

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

  • 使用 faillock 命令:这是专门用于 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)
热舞的头像热舞
虚拟主机ip改了网站打不开怎么办?
上一篇 2025-10-13 11:09
CentOS系统下如何使用旧命令添加静态路由并生效?
下一篇 2025-10-13 11:11

相关推荐

  • 服务器地图文件_地图文件 Logic file

    服务器地图文件和地图文件逻辑文件是用于描述和管理游戏或应用程序中虚拟环境的重要组件。它们定义了空间布局、交互逻辑和视觉元素,以提供沉浸式的用户体验。

    2024-07-20
    0010
  • 福州仓山区网站建设服务包含哪些创建设备选项?

    福州仓山区提供专业的网站建设服务,帮助客户创建和定制各类网站,满足不同行业的需求。我们的团队拥有丰富的经验和技术,致力于为客户提供高质量的网站设计和开发解决方案。

    2024-07-29
    0016
  • 访问虚拟机ftp服务器_FTP

    要访问虚拟机上的FTP服务器,首先需确保虚拟机内运行有FTP服务,如vsftpd,并已进行相应配置。虚拟机网络应设为桥接模式,确保与宿主机处于同一网络。使用FTP客户端或命令行工具,通过虚拟机的IP地址、用户名和密码进行连接。

    2024-07-16
    0013
  • CentOS 7如何设置php-fpm服务开机自启?

    在CentOS系统中,实现PHP的开机自启动,通常并非指PHP解释器本身,而是指运行PHP的服务,最常见的就是PHP-FPM(FastCGI Process Manager),PHP-FPM作为一个独立的守护进程,负责处理来自Web服务器(如Nginx或Apache)的PHP请求,配置PHP开机启动的核心,就是……

    2025-10-19
    0016

发表回复

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

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

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

关注微信