查看密码存储文件(仅限root权限)
Linux用户密码的加密哈希值存储在 /etc/shadow
文件中:
sudo cat /etc/shadow
输出示例(关键字段说明):
username:$6$TrnQz2d...$Vj5Xb2...:19485:0:99999:7:::
- 字段1: 用户名
- 字段2: 加密后的密码(格式:
$加密算法$盐值$哈希值
)$6$
表示SHA-512加密(常见值:$1$
=MD5,$5$
=SHA-256)- 若显示 或 表示账户被锁定/无密码
- 字段3: 上次修改密码的天数(从1970-1-1起)
- 字段5: 密码有效期(天数)
- 字段7: 密码过期前的警告天数
⚠️ 注意:
/etc/shadow
仅 root用户 可读,且密码哈希无法逆向解密。
检查密码状态与有效期
使用 chage
命令查看详细密码策略:
sudo chage -l username # 替换username为目标用户名
输出示例:
Last password change : May 15, 2025
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
验证用户密码是否设置
-
检查用户是否可登录:
sudo passwd -S username
输出状态说明:
PS
:密码已设置LK
:账户被锁定NP
:无密码
-
检查用户是否在
/etc/passwd
中禁用密码:grep username /etc/passwd
若第二个字段为
x
,表示密码在/etc/shadow
中;若为空,则无密码。
安全注意事项
- 禁止尝试破解密码:
获取他人密码违反法律和道德规范,且加密哈希无法逆向破解。 - 密码重置合法操作:
管理员需重置用户密码时,使用:sudo passwd username # 按提示设置新密码
- 审计密码策略:
定期用chage
或passwd -S
检查账户状态,确保符合安全策略。
常见问题
- Q:能否查看历史密码?
不能,系统仅存储当前密码的哈希值。 - Q:普通用户如何改密码?
执行passwd
命令(无需sudo),输入原密码后修改。 - Q:忘记root密码怎么办?
需通过GRUB引导进入恢复模式重置(需物理服务器访问权限)。
引用说明基于Linux核心文档(
man 5 shadow
,man 1 passwd
,man 1 chage
)及OpenWeb应用安全项目(OWASP)密码管理规范,操作需遵守《网络安全法》及相关法律法规。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8388.html