/etc/passwd 应为644权限,/etc/shadow 必须为600或640;空密码(shadow第二字段为空)、异常UID账户、错误shell及shadow被非授权读取均属高危风险。

直接检查 /etc/passwd 和 /etc/shadow 的权限与内容,是 Linux 系统基础安全审计的关键一步。这两个文件分别存储用户账户信息和加密密码,权限配置不当会极大增加提权或信息泄露风险。
确认文件权限是否合规
标准权限应严格遵循最小权限原则:
-
/etc/passwd:应为-rw-r--r--(644),即所有用户可读(用于解析用户名、UID 等),但仅 root 可写; -
/etc/shadow:必须为-rw-------(600)或-rw-r-----(640,仅限 root 和 shadow 组),普通用户不可读不可写。
执行命令快速验证:
ls -l /etc/passwd /etc/shadow
若发现 /etc/shadow 权限宽松(如 644、666 或出现 world-writable),需立即修复:sudo chmod 600 /etc/shadowsudo chown root:root /etc/shadow
检查是否存在异常账户或空密码用户
打开 /etc/passwd 查看是否有非预期账户(如无意义用户名、UID 小于 1000 的自建高权限账户);重点关注 /etc/shadow 中第二字段(密码字段):
-
*或!:表示账户被锁定或禁用,属正常; -
!!或!后跟内容:通常表示密码已过期或被 lock; -
空字符串(""):代表空密码,极度危险,任何用户可无需密码登录; -
$6$...类似哈希值:表示使用 SHA-512 加密,较安全; - 纯
x:说明密码存于/etc/shadow,符合常规设计。
快速筛查空密码账户:sudo awk -F: '$2 == "" {print $1}' /etc/shadow
核对 UID/GID 分配与账户类型是否合理
系统账户(如 daemon、sys、sync)应满足:
- UID 通常 ≤ 999(具体范围依发行版而异,如 RHEL/CentOS 为 0–999,Debian/Ubuntu 为 0–999);
- 登录 Shell 应为
/usr/sbin/nologin或/bin/false,禁止交互式登录; - 家目录不应为
/root或可写路径(如/tmp)。
检查疑似问题账户:sudo awk -F: '$3
验证 shadow 文件是否被非授权进程访问
即使权限正确,也要排查是否存在异常读取行为:
- 检查最近的审计日志(若启用 auditd):
sudo ausearch -m avc -ts recent | grep shadow - 查看是否有进程以非 root 身份打开该文件(需在运行时捕获):
sudo lsof +D /etc/ 2>/dev/null | grep shadow - 确认没有定时任务或脚本误读
/etc/shadow(如备份脚本、监控工具硬编码路径)。
特别注意:某些老旧管理工具或自研脚本可能因兼容性绕过权限检查,需结合进程行为与日志综合判断。
不复杂但容易忽略——权限只是起点,真正风险常藏在账户逻辑、密码策略和访问行为中。

















