必须以root权限查看/etc/shadow文件,普通用户直接cat会提示permission denied;正确方式是sudo cat /etc/shadow或su -c 'cat /etc/shadow';密码字段为不可逆哈希值,*、!!或!表示账户锁定或无密码;推荐用sudo passwd -s username安全查看密码状态。

要查看 /etc/shadow 文件,必须拥有 root 权限,因为该文件默认仅对 root 用户可读(权限通常是 -r--------)。
直接执行以下命令会失败(普通用户):
cat /etc/shadow
会提示:Permission denied
✅ 正确做法是:
-
使用
sudo提升权限(前提是你有 sudo 权限):sudo cat /etc/shadow
-
或切换为 root 用户后查看:
su -c 'cat /etc/shadow' # 或先 su -,再 cat /etc/shadow
-
查看某特定用户的 shadow 条目(例如用户
alice):sudo grep '^alice:' /etc/shadow
⚠️ 注意事项:
-
/etc/shadow中的密码字段是单向哈希值(如$6$salt$hash表示 SHA-512),不是明文密码,也无法逆向还原; - 若密码字段为
*、!!或!,表示该账户被锁定或未设置密码,禁止登录; - 不建议随意导出或传播该文件内容,因其涉及系统核心安全凭证;
- 某些加固系统可能禁用
sudo cat /etc/shadow(如通过 sudoers 限制),此时需使用sudo vipw -s安全编辑器间接查看(只读模式也可浏览)。
如果你只是想确认某个用户的密码状态(比如是否过期、是否锁定),更安全的方式是用 passwd -S <username></username>,它会以易读格式输出 /etc/shadow 中对应字段的含义:
sudo passwd -S alice # 输出示例:alice PS 2024-03-15 0 99999 7 -1 (Password set, MD5 crypt.)
不复杂但容易忽略。











