/etc/passwd权限应为644且属主root,/etc/shadow权限应为600或640且属组shadow;需用chmod、chown加固并验证非root用户无法读取shadow,同步selinux上下文。

Linux系统中,/etc/passwd 和 /etc/shadow 是核心身份认证文件,权限配置不当会导致敏感信息泄露或提权风险。必须严格限制访问权限,仅允许特权用户读取。
确认当前权限状态
执行以下命令检查文件当前权限:
-
ls -l /etc/passwd—— 正常应为-rw-r--r--(644) -
ls -l /etc/shadow—— 正常应为-rw-r-----(640)或更严格(如600),且属组为shadow
若发现 /etc/shadow 权限宽松(如644、666)、属主非 root,或被普通用户可读,需立即修正。
修复 /etc/passwd 权限
该文件需全局可读(含普通用户),用于解析用户名、UID等基本信息,但禁止写入和执行:
- 设置标准权限:
sudo chmod 644 /etc/passwd - 确保属主属组为 root:
sudo chown root:root /etc/passwd - 禁止 setuid/setgid 位:
sudo chmod u-s,g-s /etc/passwd
加固 /etc/shadow 权限
该文件存储加密口令哈希,必须严格限制访问:
- 推荐权限为
600(仅 root 可读写):sudo chmod 600 /etc/shadow - 若系统依赖
shadow组(如某些 PAM 模块),可设为640并确保属组正确:sudo chown root:shadow /etc/shadow && sudo chmod 640 /etc/shadow - 禁用所有特殊权限:
sudo chmod u-s,g-s,o-t /etc/shadow
验证与持续防护
加固后务必验证功能正常,并纳入基线检查:
- 用非 root 用户尝试读取:
cat /etc/shadow应提示Permission denied - 检查关键服务(如
login、su、sshd)是否仍能正常认证 - 将权限检查加入安全巡检脚本,例如:
[ "$(stat -c "%a %U:%G" /etc/shadow)" = "600 root:root" ]
不复杂但容易忽略:权限改完后记得同步 SELinux 上下文(如启用 SELinux),运行 sudo restorecon /etc/passwd /etc/shadow。










