Linux中用find查找权限异常文件的核心是结合-perm选项按安全策略筛查风险点:世界可写文件(如/tmp下-o+w)、可疑SUID/SGID文件(如/usr/bin下/6000或非root拥有的-u+s)、用户目录权限过宽(如/home下非750)、无主文件(-nouser)及临时目录缺失粘滞位(!-perm -1777)。

Linux 中用 find 查找权限异常的文件,核心是结合 -perm 选项识别不符合安全规范的权限设置,比如世界可写、SUID/SGID 滥用、或用户目录权限过宽。这不是“找错”,而是按策略筛查风险点。
查世界可写文件(高危)
这类文件容易被未授权修改,尤其在 /tmp、/var/tmp 或用户家目录下:
-
find /tmp -type f -perm -o+w 2>/dev/null—— 找所有其他用户(others)有写权限的普通文件 -
find /home -type d -perm -o+w 2>/dev/null—— 找用户主目录下其他用户可写的目录(应禁止) - 加
2>/dev/null是为屏蔽 Permission denied 提示,避免干扰结果
查可疑 SUID/SGID 文件
SUID(4000)和 SGID(2000)位若出现在非系统关键程序上,可能被提权利用:
-
find /usr/bin /bin /usr/sbin /sbin -type f -perm /6000 2>/dev/null—— 找任意位置设置了 SUID(4000)或 SGID(2000)的可执行文件 -
find / -type f -perm -u+s ! -user root 2>/dev/null—— 找非 root 用户拥有的 SUID 文件(极少见且需核查) - 注意:
/6000表示“匹配任一特殊权限位”,比-perm 6000(精确匹配)更实用
查用户目录权限过松
用户家目录不应被组或其他人读写,否则泄露敏感信息:
-
find /home -maxdepth 1 -type d ! -perm 750 -uid +999 2>/dev/null—— 找 UID 大于 999 的普通用户主目录,且权限不是严格的 750(即:用户全权、组只读执行、其他人无权) -
find ~/.ssh -type f ! \( -perm 600 -o -perm 644 \) 2>/dev/null—— 检查 ~/.ssh 下密钥文件权限是否合规(私钥必须 600,known_hosts 可 644)
查无主文件与粘滞位异常
无有效属主的文件可能是入侵残留;目录缺失粘滞位(+t)则 /tmp 类目录易被删改:
-
find / -nouser -o -nogroup 2>/dev/null—— 找既无有效用户、也无有效组的文件(常见于误删用户后) -
find /tmp /var/tmp -type d ! -perm -1777 2>/dev/null—— 找未设置粘滞位(1777 = rwxrwxrwt)的临时目录(应强制启用)


















