系统文件权限基线检查的核心是确保关键文件和目录符合最小权限原则,并对/tmp等敏感目录设置Sticky位;/etc/passwd应为644、/etc/shadow为600、/etc/sudoers为440或640、/root为700、/boot为755,/tmp和/var/tmp应设为1777。

系统文件权限基线检查的核心是确保关键系统文件和目录的访问控制符合最小权限原则,防止未授权读写或执行;而对敏感目录(如 /tmp、/var/tmp)设置 Sticky 位(即 t 权限),可有效阻止用户删除或重命名他人创建的文件,是多用户环境中基础的安全防护手段。
一、关键系统文件与目录权限基线要求
以下为常见 Linux 系统中需重点检查的路径及其推荐权限(以 CentOS/RHEL/Ubuntu 通用场景为准):
- /etc/passwd:644(属主 root,组 root,其他只读)——禁止其他用户写入,避免伪造账户信息
- /etc/shadow:600(仅 root 可读写)——必须严格限制,防止密码哈希泄露
- /etc/sudoers:440 或 640(root:root,组可读)——写权限仅限 root,避免提权配置被篡改
- /root:700(仅 root 访问)——防止普通用户窥探管理员家目录内容
- /boot:755(root:root)——内核与引导文件需可被 GRUB 读取,但不应允许写入
二、Sticky 位的作用与适用场景
Sticky 位(权限字段末位显示为 t 或 T)作用于目录时,表示“只有文件所有者、目录所有者或 root 才能删除或重命名该目录下的文件”,即使其他用户对该目录有写权限也不例外。典型应用场景包括:
- /tmp:默认应设为 1777(drwxrwxrwt),保障临时文件隔离
- /var/tmp:同样建议设为 1777,用于跨重启保留的临时数据
- 共享协作目录(如开发团队共用的上传目录):可按需启用,避免误删他人文件
三、检查与修复操作命令
快速验证与修正权限及 Sticky 位:
- 检查 Sticky 位是否生效:ls -ld /tmp → 正常输出应含 rwxrwxrwt(末位 t 表示 sticky 且执行位已设)
- 设置 Sticky 位:chmod 1777 /tmp(1 表示 Sticky 位,777 是常规权限)
- 批量检查高危文件权限:find /etc -type f \( -name "shadow" -o -name "sudoers" \) -not -perm 600 -ls
- 修复 /etc/shadow 权限:chmod 600 /etc/shadow && chown root:root /etc/shadow
四、自动化基线校验建议
将权限检查纳入日常运维流程,可借助简单脚本或合规工具持续跟踪:
- 编写 shell 脚本定期比对预设权限清单(如用 stat -c "%a %n" /etc/shadow 提取八进制权限)
- 使用 AIDE(Advanced Intrusion Detection Environment)做文件完整性监控,捕获权限异常变更
- 在 Ansible/Chef/Puppet 中定义权限策略,实现配置即代码(IaC)式统一管控










