-perm 002 查不到全局可写文件,因其严格匹配“其他用户仅有写权限(-w-)、所有者与组均无任何权限”的极罕见情况;正确方式是用 -perm -o=w 或 -perm -002,表示其他用户至少有写权限,覆盖如666、777等真实高危场景。

直接用 find -type f -perm 002 是**查不到**全局可写文件的,这个命令实际匹配的是“其他用户(others)只有写权限、且无读无执行”的极特殊文件——几乎不存在,也完全不符合安全排查目标。
为什么 -perm 002 不是查全局可写文件的正确方式
-perm 002 表示:权限值**严格等于**八进制 002(即二进制 000 000 010),也就是:
- 所有者:无任何权限(---)
- 所属组:无任何权限(---)
- 其他用户:仅有写权限(-w-)
这种文件既不能读也不能执行,连 ls 都列不出来(除非你有属主或组权限),现实中极少出现,更不是安全审计关注的“高危全局可写文件”。
真正该用的权限匹配模式:-perm -o=w 或 -perm -002
安全运维中要定位**存在风险的全局可写文件**(即 anyone can write to it),必须使用“任意位满足”语义:
-
-perm -o=w:other 用户**至少有写权限**(如 642、666、777、602 等都匹配) -
-perm -002:等价写法,八进制形式,“-”前缀表示“所有指定位置都必须置位”
推荐命令(加排除和错误过滤,生产可用):
find / -xdev -type f -perm -o=w 2>/dev/null | head -20
-
-xdev:不跨文件系统,避免进入 /proc /sys /dev 等虚拟文件系统报错 -
2>/dev/null:屏蔽“Permission denied”等干扰信息 -
| head -20:先看前20个,确认结果合理再全量分析
进一步缩小范围,提高实用性
全盘扫效率低且噪音大。建议按场景聚焦:
- 查 Web 目录下可写配置文件:
find /var/www -type f -name "*.conf" -perm -o=w 2>/dev/null - 查日志目录里被误设为全局写的日志:
find /var/log -type f -perm -o=w 2>/dev/null - 查临时目录中的可写脚本(高危):
find /tmp /var/tmp -type f -name "*.sh" -perm -o=w 2>/dev/null
发现后怎么办?别直接删,先评估再加固
找到文件后,不要立即 -delete。先检查:
-
ls -l 文件路径:看属主、属组、完整权限 -
stat 文件路径:确认是否被恶意修改过时间戳 -
file 文件路径:判断是否是二进制、脚本、空文件等
常见加固方式:
- 移除其他用户写权限:
chmod o-w 文件名 - 改属主为服务用户(如 www-data):
chown www-data: 文件名 - 若确为废弃文件,再删除:
rm -f 文件名


















