核心是遵循最小权限原则并精准识别风险路径:优先加固/etc/shadow(640)、/etc/sudoers(440)、/root/.ssh(700)等高危路径,结合find扫描、基线比对与acl检查,通过备份、服务验证及ci/cd嵌入实现可持续管控。

系统文件权限基线检查与敏感目录加固,核心在于“最小权限原则”+“精准识别风险路径”。不是所有目录都需要777,也不是所有root属主都合理——关键看谁在用、怎么用、是否可被滥用。
一、快速定位高危目录和文件
以下路径是攻击者常利用的入口点,需优先检查:
- /etc/shadow、/etc/passwd:必须为640(root:root),禁止组/其他用户读取;shadow若为644或更宽松,立即修复
- /etc/sudoers 及 /etc/sudoers.d/ 目录:应为440(root:root),任何写权限(如644、600)都可能导致提权
- /root/.bash_history、/root/.ssh/:属主必须为root,权限建议600(私钥)或700(.ssh目录)
- /var/log/ 下关键日志(如auth.log、secure):应为640,避免普通用户窥探登录行为
- /tmp 和 /var/tmp:需启用sticky bit(1777),防止用户删改他人临时文件
二、自动化基线检查三步法
不用逐条ls -l,用脚本+标准清单提升效率:
- 用 find 扫描异常权限:
find /etc -type f \( -perm -4000 -o -perm -2000 \) 2>/dev/null —— 查找SUID/SGID文件
find /etc -type f -perm /o+w 2>/dev/null —— 查找其他用户可写的配置文件 - 比对CIS或等保2.0基线模板(如CIS Ubuntu 22.04 v1.0.0第5.1节),导出差异项
- 用 aclget 或 getfacl 检查是否存在隐藏ACL规则绕过传统权限控制
三、加固操作不踩坑的实操要点
改权限不是chmod 600完事,要注意上下文一致性:
- 修改前先备份原权限:
getfacl /etc/shadow > /root/acl_shadow.bak - 服务类文件(如nginx.conf、sshd_config)修改权限后,务必重启对应服务验证是否仍可加载
- 容器环境需注意:宿主机chmod可能不生效于挂载卷,应在镜像构建层(Dockerfile)用USER指令+RUN chmod联合控制
- 避免递归硬改目录权限(如chmod -R 755 /etc)——会破坏systemd、dbus等依赖特定权限的子目录结构
四、建立可持续的权限管控机制
一次加固≠长期安全,需嵌入运维流程:
- 将关键路径权限检查加入CI/CD流水线(如Ansible playbook执行前校验/etc/sudoers权限)
- 用inotifywait监控敏感目录变更,触发告警(例如检测到/etc/passwd被非root用户修改)
- 定期(建议每月)运行Lynis进行深度权限审计,生成可追溯报告
- 对开发测试环境统一部署权限模板,避免“本地能跑就行”导致生产环境带病上线










