首页/系统/信创系统运维速查/关键系统文件权限核查
安全加固65 条

关键系统文件权限核查

口令与认证文件权限错误属高风险项:/etc/passwd 644、/etc/shadow 000 或 600、sshd_config 600 等;逐项核对,必要时用 chattr 加不可变位防篡改。

信创系统运维速查系统更新于 2026-10-13

关键系统文件权限核查是做什么的

口令与认证相关文件的权限属于安全基线的必查项:/etc/passwd 需要所有人可读以便解析账户,口令哈希所在的 /etc/shadow 必须只允许 root 读取,/etc/gshadow、/etc/ssh/sshd_config、/etc/sudoers 同样不能被普通用户读取或写入。除权限位外,还要确认属主属组正确;对极少变更的文件可以加不可变位进一步防篡改。

基本信息

核查命令stat -c '%a %U:%G %n' 文件,或 ls -l
passwd 基线644,属主 root:root
shadow 基线000 或 600,属主 root:root,非 root 不可读
sudoers440 或 400,必须用 visudo 编辑
不可变位chattr +i,改动前需 chattr -i 解除

典型使用场景

  • 安全基线核查与等保测评:逐项核对认证文件权限是否被放宽
  • 安全事件后确认是否有人改动过账户文件,配合完整性检查交叉验证
  • 装完第三方软件后巡检:部分安装包会顺手改权限或归属,需要及时发现
  • 批量基线脚本上线前核对误报:了解各发行版对 shadow 权限的传统差异
  • 对高价值文件加不可变位,降低被批量替换账户信息的风险
  • 审计变更:确认 sudoers 修改走的是 visudo 而非直接编辑

核查与修正

核查与修正
stat -c '%a %U:%G %n' /etc/passwd /etc/shadow /etc/sudoers   # 一律核对权限与属主
ls -l /etc/group /etc/gshadow /etc/ssh/sshd_config
chmod 644 /etc/passwd            # 所有人可读,仅 root 可写
chmod 000 /etc/shadow            # 部分发行版用 000,600 亦被接受
chmod 640 /etc/gshadow
chmod 600 /etc/ssh/sshd_config
chattr +i /etc/passwd /etc/shadow   # 加不可变位,变更前先解除
lsattr /etc/passwd /etc/shadow      # 确认不可变位已生效

关键文件权限基线

文件建议权限说明
/etc/passwd644所有用户可读,仅 root 可写
/etc/shadow000 或 600口令哈希,非 root 绝不可读
/etc/group644组信息,可读不可随意写
/etc/gshadow640 或 000组口令,仅管理员可读
/etc/ssh/sshd_config600含安全配置,禁止普通用户读取
/etc/sudoers440必须用 visudo 编辑并做语法检查
shadow 使用 000 还是 600 各发行版传统不同,通行核查口径只要求「非 root 用户不可读取」;核查脚本不要把某一数值写成硬性判据,避免产生大量误报。
加不可变位后,改口令、加用户、改 sudoers 等常规运维操作都会失败,属常见「权限正常但操作被拒」问题;交接文档必须写明解除命令与恢复流程。

易错点

  • 只改权限不校验属主,文件被改成非 root 拥有时同样存在越权风险
  • chattr +i 后未在交接文档中登记,后续运维改密失败却查不出原因,白白浪费排查时间
  • 直接编辑 /etc/sudoers 而未用 visudo,语法错误可能锁死 sudo 通道,需要救援模式恢复
  • 把某一发行版的 shadow 权限数值当作通用标准,基线脚本产生大量误报,掩盖真实问题

数据来源与参考

  • man 1 chmod
  • man 1 chattr
  • 等保 2.0 访问控制与完整性要求
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌