/etc/shadow权限必须为000或400(仅root可读),禁用group/other读权限;异常时执行chmod 400 /etc/shadow修复,并验证普通用户访问被拒、root仍可读,同步检查自动化工具覆盖及PAM配置。

直接修复:/etc/shadow 文件权限必须是 000 或 0400(即仅 root 可读),任何其他权限(如 0444、0644)都属于非法配置,会极大增加本地离线破解风险。
检查当前 shadow 文件权限是否异常
运行以下命令确认实际权限:
ls -l /etc/shadow正常输出应类似:
----------. 1 root root 1234 May 18 10:22 /etc/shadow或(更常见):
-rw-------. 1 root root 1234 May 18 10:22 /etc/shadow若出现 group 或 other 位有 r 权限(例如 -rw-r--r--、-rw-r-----),说明已被误设为全局可读,需立即修正。
一键修复权限的正确操作
执行以下命令重置为安全权限:
chmod 000 /etc/shadow或更通用且兼容性更好的写法:
chmod 400 /etc/shadow二者效果一致:仅 root 用户可读,无执行、无写入、非 root 用户完全不可访问。不建议使用 600(允许 root 写),因 shadow 文件本不该被手动编辑;000 更严格,但部分老旧工具可能依赖读权限,故 400 是生产环境推荐值。
验证修复是否生效并防止回退
修复后务必验证:
- 普通用户执行 cat /etc/shadow 应提示 "Permission denied"
- 确认 root 仍可正常读取:sudo cat /etc/shadow | head -1
- 检查是否有定时任务、配置管理工具(如 Ansible、Puppet)或脚本在重启后自动覆盖权限——这类自动化行为是权限反复异常的主因
- 排查是否启用了非标准认证模块(如某些 LDAP/PAM 插件)错误地放宽了 shadow 访问控制
配套加固建议
单改权限只是基础项,还需同步落实:
- 确保系统启用阴影口令机制(检查 pwconv 是否已运行,/etc/passwd 中密码字段应为 x)
- 禁用弱哈希算法:通过 authconfig --test | grep hashing 确认使用 SHA-512($6$)或更高强度算法,避免 MD5($1$)
- 定期审计账户:用 awk -F: '$2 !~ /^[*!]/ {print $1}' /etc/shadow 列出有效密码账户,及时清理无用账号
- 限制 root 登录方式,避免仅靠密码认证;优先配置 SSH 密钥+sudo 分权

















