首页/安全/安全加固速查/全局可写文件核查(-0002)
主机加固基线90 条

全局可写文件核查(-0002)

任何用户可写的关键文件都可能导致提权或篡改;排除 /tmp、/var/tmp 等预期目录后,全局可写文件应清零,配置文件与服务脚本尤须优先排查。

安全加固速查安全更新于 2026-10-13

全局可写意味着什么

文件带全局可写位(其他用户可写)时,任何本地账号都能修改它。放在普通数据目录里影响面有限,但一旦落在配置、脚本或服务相关路径上,普通用户就能通过替换内容间接影响以 root 身份运行的程序,进而提权。目录的全局可写同样危险:它决定别人能不能往里塞文件。核查的目标很明确,排除 /tmp、/var/tmp 这类预期目录后,全局可写项应该清零。

基本信息

加固项消除非预期的全局可写文件与目录
适用平台Linux(RHEL/CentOS/Debian/Ubuntu)
风险等级高
检查点排除预期路径后无 -perm -0002 结果
检查范围文件与目录分开检查,口径不同

典型使用场景

  • 基线核查:给出「无非预期全局可写文件」的结论与输出
  • 部署事故排查:部署脚本用宽松 umask 跑过之后,权限常被写宽
  • 入侵排查:攻击者在可写目录落马或替换脚本是常见手法
  • 临时目录治理:确认 /tmp 与 /var/tmp 有正确的粘滞位保护
  • 文件服务器加固:共享目录的写权限范围需要按业务核对

核查命令

核查命令
find / -xdev -type f -perm -0002 -print 2>/dev/null | grep -vE '^/(tmp|var/tmp)/' | head -50
find / -xdev -type d -perm -0002 ! -perm -1000 -print 2>/dev/null | head -50
find /var /etc /usr /opt -type f -perm -0002 -print 2>/dev/null | head -30   # 重点目录
ls -ld /tmp /var/tmp                        # 确认粘滞位存在

两类检查对照

对象写法要点说明
全局可写文件-type f 配合 -perm -0002命中即可被任意账号改写内容
全局可写目录-type d 配合 ! -perm -1000无粘滞位的可写目录可被任意账号增删文件
预期目录grep 排除 /tmp 与 /var/tmp这些目录本身需要可写,重点是确认有粘滞位
扫描范围先加 -xdev 限定本分区避免扫进网络挂载拖慢执行,多分区要分别跑
在 /etc、/usr、/var/spool 下出现全局可写文件要立即排查,这类路径上的可写文件几乎都能与提权建立联系。修复用 chmod o-w 去掉写位,但动手前先确认属主与业务用途,避免把共享文件服务所需的写权限一并砍掉。
粘滞位(-perm -1000)的含义是:目录虽可写,但只有文件属主、目录属主或 root 能删除其中的文件。所以 /tmp 通常同时具备全局可写与粘滞位,这是正常设计;缺少粘滞位才是问题,它会让任意账号能够删除他人的临时文件。

判定与处置顺序

先按路径分类再决定动作:/tmp 与 /var/tmp 属预期,重点看粘滞位;/etc、/usr、/var/spool 属重点,逐项核实;业务数据目录按用途判断。处置顺序建议是从配置与服务脚本开始,再到普通数据文件。改完重跑同一条命令确认结果收敛,并把两份输出一起归档,形成「发现到整改」的完整记录。

易错点

  • 文件与目录用同一套写法:目录检查漏掉粘滞位过滤会把 /tmp 这类正常目录也报成问题,误报会稀释结论
  • 不加 -xdev 全盘扫描:网络挂载会显著拉长执行时间,甚至因挂载卡住而中断,多分区要按挂载点分别执行
  • 直接 chmod o-w 批量修复:共享目录与协作文件可能依赖写权限,先确认用途再改
  • 只看 /tmp 就下结论:真正的问题往往在业务目录与部署脚本产生的文件上,检查范围要覆盖关键系统路径
  • 修复后不复核并留档:缺少改动前后的输出对比,无法证明整改确实生效

数据来源与参考

  • CIS Linux Benchmark:Ensure no world writable files exist
  • find(1) 手册

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌