直接用find定位suid文件需加sudo,优先扫描/usr/bin等关键路径并过滤passwd等合法程序,再结合路径异常、非root属主、功能敏感三特征人工识别高危项。

直接用 find 找出带 SUID 权限的可执行文件很简单,但“不安全”不能靠命令自动判断——得人工结合路径、所有者、功能来识别。核心是先精准定位,再快速筛掉常见合法项,留下可疑目标。
基础查找命令(必须加 sudo)
普通用户没权限遍历全系统,所以要用 sudo:
sudo find / -type f -perm -4000 2>/dev/null- 等价写法:
sudo find / -type f -perm -u=s 2>/dev/null
说明:-type f 只查普通文件,排除目录;-perm -4000 匹配设置了 SUID 位的文件(不管其他权限);2>/dev/null 屏蔽“拒绝访问”类报错,让结果干净。
缩小范围,提高效率
全盘扫描慢且干扰多,优先查关键路径:
sudo find /usr/bin /bin /sbin /usr/sbin -type f -perm -4000 2>/dev/null- 如果想只看 root 所有的 SUID 文件(最危险的一类):
sudo find /usr/bin -type f -uid 0 -perm -4000 2>/dev/null
这些路径覆盖了绝大多数系统命令,像 passwd、sudo、ping 都在这里,合法 SUID 文件基本集中于此。
识别“不安全”的关键特征
光有 SUID 不等于危险,重点看这三点:
-
路径异常:出现在
/tmp、/var/tmp、/dev/shm或用户家目录(如/home/xxx)里的 SUID 文件,几乎肯定是后门或误配置。 - 所有者非 root:比如属主是普通用户或 nobody,却有 SUID 权限,极易被利用提权。
-
功能敏感:像
find、vim、nmap、bash这类本身能执行命令的工具,一旦被设 SUID 就非常危险——它们可能被用来 spawn shell。
查到结果后,用 ls -l 看一眼权限和属主,例如:-rwsr-xr-x 1 root root ... /usr/bin/find 就要警惕;而 -rwsr-xr-x 1 root root ... /usr/bin/passwd 是正常的。
快速过滤常见合法项(减少人工判断)
把已知安全的命令从结果里剔除,聚焦异常:
sudo find / -type f -perm -4000 2>/dev/null | grep -vE "(passwd|sudo|su|ping|mount|umount|chsh|chfn|newgrp|crontab)"
这个命令会排除掉大多数系统自带的合法 SUID 程序,剩下的就值得一条条 inspect。注意别盲目删掉,有些定制环境可能依赖特定 SUID 工具。











