结论:find / -type f -perm /6000 匹配的是至少含 suid 或 sgid 之一的文件,而非两者兼具;精准查找同时具备 suid 和 sgid 的文件须用 -perm -6000,因 - 表示“所有指定权限位必须置位”,/ 表示“任意一位置位即可”。

直接说结论:find / -type f -perm /6000 并不能准确检索出同时具备 SUID 和 SGID 的文件,它找的是“至少设置了 SUID 或 SGID 其中之一”的文件。要精准定位双重特权位(SUID 且 SGID 同时存在)的文件,必须用 -perm -6000。
下面分三块讲清楚怎么用、为什么这样用、以及实际操作要点:
先搞懂 6000 的含义
八进制 6000 对应二进制 110 000 000 000,其中前三位(110)代表特殊权限位:
• 第1位(4000)= SUID
• 第2位(2000)= SGID
• 第3位(1000)= sticky bit
所以 6000 = 4000 + 2000,即“SUID 和 SGID 都被要求”——但是否“都必须存在”,取决于你用的是 / 还是 - 前缀。
三种写法的区别和适用场景
-
-perm 6000:只匹配权限 恰好等于 6000 的文件(普通权限全为 0,无 r/w/x),现实中几乎不存在,不用。 -
-perm /6000:只要 SUID 或 SGID 中任意一个被设置就命中。例如权限为 4000、2000、6000、6755、2755 等都会被找到。这是“或”逻辑,适合排查“有潜在提权风险”的文件。 -
-perm -6000:要求 SUID 和 SGID 都必须被设置。只有权限包含 4000 且 2000 才会匹配,比如 6000、6444、6755、6777 等。这才是你要的“双重特权位”精确筛选。
推荐执行命令与注意事项
搜索整个系统中同时带 SUID 和 SGID 的普通文件:
find / -xdev -type f -perm -6000 2>/dev/null
-
-xdev:不跨文件系统,避免搜到 /proc、/sys、NFS 挂载点等导致报错或卡顿; -
2>/dev/null:屏蔽“Permission denied”类提示,让结果更干净; - 若想同时看到权限数字和路径,加
-ls:
find / -xdev -type f -perm -6000 -ls 2>/dev/null - 注意:目录也可能设 SGID(用于继承组),如需包含目录,去掉
-type f或改用-type f -o -type d。
不复杂但容易忽略。











