如何在CentOS中查看被锁定的用户?

CentOS 系统锁定用户状态查看指南

在日常的 CentOS 服务器管理中,用户账户管理是安全运维的核心环节之一,账户被锁定通常意味着潜在的安全事件或配置调整,及时识别锁定状态对维护系统安全至关重要,以下介绍几种有效查看锁定用户状态的方法:

检查 /etc/passwd/etc/shadow 文件(基础方法)

  • 锁定机制: CentOS 系统中,用户账户的锁定状态通常记录在 /etc/shadow 文件内,该文件储存用户密码的加密散列值及账户状态信息。
  • 查看步骤:
    1. 使用 sudo 权限查看 /etc/shadow 文件:
      sudo cat /etc/shadow
    2. 定位目标用户行(例如用户 testuser):
      testuser:$6$Tr2e...:19640:0:99999:7:::
    3. 关键字段解析(以冒号 分隔):
      • 第二字段:密码散列值,若以 或 开头,表明密码被锁定或账户未设置密码。
      • 第二字段为空:账户无密码(极度危险,应立即处理)。
      • 第二字段为 或 :密码被锁定,用户无法使用密码登录。
      • 第八字段:账户过期日期(自 1970-1-1 的天数),若值非空且小于当前天数,账户已过期并失效。
      • 第九字段:保留字段,通常为空。

使用 passwd 命令(便捷查询)

passwd 命令提供简洁的用户状态摘要:

sudo passwd -S testuser

输出示例与解读:

  • testuser LK 2024-08-01 0 99999 7 -1 (Password locked.)
    • LK:明确指示账户处于 Locked (锁定) 状态。
  • testuser PS 2024-08-01 0 99999 7 -1 (Password set, SHA512 crypt.)
    • PS:表示账户 Password Set (密码已设置),状态正常。
  • testuser NP 2024-08-01 0 99999 7 -1 (Empty password.)
    • NP:表示 No Password (无密码),属于高风险状态。

检查登录失败记录(faillockpam_tally2

账户锁定常由多次登录失败触发(通过 PAM 模块 pam_faillock 实现),查看失败记录有助于判断锁定原因:

  • 使用 faillock 工具(现代 CentOS 推荐):

    sudo faillock

    输出显示所有用户近期的失败尝试、时间戳及锁定状态:

    testuser:
    When                Type  Source                                           Valid
    2024-08-01 10:15:14 RHOST 192.168.1.100                                       V
    2024-08-01 10:15:18 RHOST 192.168.1.100                                       V
    ... (更多记录)
  • 使用 pam_tally2 命令(旧版兼容):

    sudo pam_tally2 --user testuser

    输出显示该用户失败次数及是否锁定:

    Login           Failures Latest failure     From
    testuser            5    2024-08-01 10:15  sshd:192.168.1.100

检查账户过期状态

账户过期等同于功能锁定,使用 chage 命令查看:

sudo chage -l testuser

关键输出行:

Account eXpires                 : Aug 31, 2024  <--- 账户过期日
Password inactive                   : never       <--- 密码过期后宽限期

若 "Account expires" 日期已过,账户即被系统锁定。

不同锁定状态检测方法对比

检测目标 推荐方法 关键标识/输出特征
密码锁定 sudo passwd -S username 状态字段显示 LK
检查 /etc/shadow 密码字段以 或 开头
账户过期锁定 sudo chage -l username "Account expires" 日期 已过
登录失败锁定 sudo faillock 用户条目下显示多次失败记录
sudo pam_tally2 --user user 高 "Failures" 计数
无密码 (危险) sudo passwd -S username 状态字段显示 NP
检查 /etc/shadow 密码字段为

案例:处理 webadmin 账户被锁定

  1. 确认状态:
    sudo passwd -S webadmin
    # 输出: webadmin LK ... (Password locked.)
  2. 检查锁定原因:
    sudo faillock --user webadmin
    # 显示大量来自某IP的失败SSH记录
  3. 解锁账户:
    sudo passwd -u webadmin  # 解锁密码
    sudo faillock --user webadmin --reset  # 清除失败记录
  4. 加强安全:
    • 分析攻击源 IP,考虑防火墙封锁。
    • 检查 webadmin 密码强度,强制更新。
    • 评估是否需要限制 SSH 来源 IP。

重要安全提示:

  • 最小权限原则: 执行查看或解锁操作务必使用 sudo,避免直接 root 登录。
  • 谨慎解锁: 在解锁账户前,务必查明锁定原因,若是恶意攻击导致,盲目解锁可能带来持续风险。
  • 日志审计: 定期检查 /var/log/secure 日志,监控认证事件。
  • 密码策略: 配置强密码策略 (/etc/login.defs, pam_pwquality) 和合理的失败锁定阈值 (/etc/security/faillock.conf)。
  • 密钥认证: 对重要服务账户(如 SSH),优先使用 SSH 密钥认证,禁用密码登录。

清晰掌握用户账户的锁定状态与原因,是 Linux 系统管理员维护环境安全、快速响应异常的基础能力,养成定期审计账户状态和认证日志的习惯,能极大提升对潜在威胁的感知和防御水平,服务器安全无小事,账户管理是第一道防线。

发布于 2025-07-02 15:42:43
分享
海报
226
上一篇:如何在CentOS 6.9系统中添加新网卡? 下一篇:如何在CentOS中为PHP设置文件写权限?
目录

    忘记密码?

    图形验证码