如何在CentOS中查看被锁定的用户?
CentOS 系统锁定用户状态查看指南
在日常的 CentOS 服务器管理中,用户账户管理是安全运维的核心环节之一,账户被锁定通常意味着潜在的安全事件或配置调整,及时识别锁定状态对维护系统安全至关重要,以下介绍几种有效查看锁定用户状态的方法:
检查 /etc/passwd 与 /etc/shadow 文件(基础方法)
- 锁定机制: CentOS 系统中,用户账户的锁定状态通常记录在
/etc/shadow文件内,该文件储存用户密码的加密散列值及账户状态信息。 - 查看步骤:
- 使用
sudo权限查看/etc/shadow文件:sudo cat /etc/shadow
- 定位目标用户行(例如用户
testuser):testuser:$6$Tr2e...:19640:0:99999:7::: - 关键字段解析(以冒号 分隔):
- 第二字段:密码散列值,若以 或 开头,表明密码被锁定或账户未设置密码。
- 第二字段为空:账户无密码(极度危险,应立即处理)。
- 第二字段为 或 :密码被锁定,用户无法使用密码登录。
- 第八字段:账户过期日期(自 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 (无密码),属于高风险状态。
检查登录失败记录(faillock 或 pam_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 账户被锁定
- 确认状态:
sudo passwd -S webadmin # 输出: webadmin LK ... (Password locked.)
- 检查锁定原因:
sudo faillock --user webadmin # 显示大量来自某IP的失败SSH记录
- 解锁账户:
sudo passwd -u webadmin # 解锁密码 sudo faillock --user webadmin --reset # 清除失败记录
- 加强安全:
- 分析攻击源 IP,考虑防火墙封锁。
- 检查
webadmin密码强度,强制更新。 - 评估是否需要限制 SSH 来源 IP。
重要安全提示:
- 最小权限原则: 执行查看或解锁操作务必使用
sudo,避免直接 root 登录。 - 谨慎解锁: 在解锁账户前,务必查明锁定原因,若是恶意攻击导致,盲目解锁可能带来持续风险。
- 日志审计: 定期检查
/var/log/secure日志,监控认证事件。 - 密码策略: 配置强密码策略 (
/etc/login.defs,pam_pwquality) 和合理的失败锁定阈值 (/etc/security/faillock.conf)。 - 密钥认证: 对重要服务账户(如 SSH),优先使用 SSH 密钥认证,禁用密码登录。
清晰掌握用户账户的锁定状态与原因,是 Linux 系统管理员维护环境安全、快速响应异常的基础能力,养成定期审计账户状态和认证日志的习惯,能极大提升对潜在威胁的感知和防御水平,服务器安全无小事,账户管理是第一道防线。
推荐阅读
-
qqmailplugin是什么文件夹?qqmailplugin文件夹可以删除吗?
在Windows系统文件资源管理器中,qqmailplugin文件夹常出现在用户目录或程序安装路径下,其名称中的"qqmail...
-
GPT-5版本有哪些?GPT-5标准版/Mini/Nano/Chat版的区别与使用场景详解
-
Win11激活码与产品密钥的区别及使用技巧解析
-
NAS和云盘有什么区别?家用NAS是否值得入手?
-
什么是公有云?初学者必须了解的云计算基础知识
-
Linux系统下查看和管理物理内存的命令汇总
-
NAS硬盘怎么选?机械盘、NAS盘、企业盘有何区别?
-
什么是电源时序器?电源时序器的基本原理与工作方式详解
-
windows.edb是什么文件?可以删除吗?有什么后果?
-
阿里云盾是什么?卸载阿里云盾有什么影响?



