应查找“其他人可写”(-o=w)的文件和目录,而非仅匹配严格777;重点关注/tmp、/var/www、/etc及用户家目录;目录需同时满足-o=wx才构成真实风险;还需检查SELinux和ACL是否引入隐性权限。

直接用 find 查 777 权限文件并不难,但关键是要查得准、查得全,同时避免误判或漏掉真正有风险的文件。
明确目标:找的是“全局可写”,不是“严格等于 777”
很多人误用 find -perm 777,它只匹配权限**恰好是 777** 的文件(即所有者、组、其他人都有 rwx)。但安全风险不仅来自 777,还包括 666、775、646 等——只要“其他人(others)有写权限(w)”,就属于高危范围。
- ✅ 正确命令(查所有“其他人可写”的普通文件):
find /path -type f -perm -o=w 2>/dev/null - ✅ 查“其他人可写”的目录(目录可写意味着可在其中创建/删除文件):
find /path -type d -perm -o=w 2>/dev/null - ❌ 错误示例:
find /path -perm 002—— 这匹配的是“仅 others 有 w、owner 和 group 全无权限”的极罕见情况,几乎不存在,也不代表风险
聚焦敏感路径,提高排查效率
全盘扫描耗时且噪音大。优先检查以下位置,这些地方出现 777 或 others-w 权限最可能引发问题:
-
/tmp和/var/tmp:临时目录本应有 sticky bit(如 1777),若变成 777 就失去保护 -
/var/www及网站根目录下:缓存、上传、日志目录若设为 777,易被上传 Webshell -
/etc下的配置文件(如/etc/shadow、/etc/passwd):绝不能被 others 写 - 用户家目录中可执行脚本或配置文件(如
~/.bashrc、~/scripts/)
区分文件与目录,x 权限对目录很关键
对目录来说,“可写(w)”必须配合“可执行(x)”才有实际意义——没有 x,别人连进入目录都做不到,w 就形同虚设。所以真正危险的是:
- 目录权限含
o=wx(如 777、757、677)→ 别人既能进又能删改文件 - 目录权限含
o=w但缺x(如 222、622)→ 实际无法利用,可暂不优先处理 - 推荐筛查命令:
find /var/www -type d -perm -o=wx 2>/dev/null
别忘了 SELinux 或 ACL 可能覆盖传统权限
即使看到权限是 777,也可能因 SELinux 限制而实际无法写入;反过来,权限看似正常,但若有宽松的 ACL 规则(如 setfacl -m o::rw),也会造成等效的全局可写。
- 检查 SELinux 是否启用:
getenforce或sestatus -v - 查看文件是否有额外 ACL:
getfacl filename | grep "other::" - ACL 中出现
other::rw-或other::rwx,同样需警惕


















