如何通过Find-Type-F-Perm-002在Linux中查找拥有全局写权限的不安全文件?
- 内容介绍
- 文章标签
- 相关推荐
本文共计826个文字,预计阅读时间需要4分钟。
直接使用命令 `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 文件名
本文共计826个文字,预计阅读时间需要4分钟。
直接使用命令 `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 文件名

