“同时具备SUID和SGID”的文件在标准Linux中不存在;实际需分项审计三类高风险项:SUID文件、SGID文件、SGID目录,并通过find分项精准查找、stat结构化导出、人工复核与专用工具交叉验证完成合规盘点。

直接用 find -perm /6000 查找“同时具备 SUID 和 SGID”的文件,是常见误解——/6000 表示“包含 SUID 或 SGID 中任意一个”,不是“两者都具备”。Linux 权限位中,SUID(4000)和 SGID(2000)是独立位,不可能在同一文件上以“标准方式”同时生效并被常规工具识别为双重特权。真正需要关注的是:哪些文件分别拥有 SUID、SGID、或二者之一,再结合文件路径、属主、用途做人工研判。所谓“深度盘点”,重在分项筛查 + 结构化归档 + 合规比对。
明确目标:查什么才算“双重特权相关”?
所谓“双重特权位文件”,实际指以下三类需统一纳入审计范围的高风险项:
-
SUID 文件:权限含
4000位(如-rwsr-xr-x),进程以文件属主身份运行(典型如/bin/passwd) -
SGID 文件:权限含
2000位(如-rwxr-sr-x),进程以文件属组身份运行(典型如/usr/bin/crontab) -
SGID 目录:权限含
2000位的目录(如drwxr-sr-x),其下新建文件自动继承该目录属组——这是协作场景的合规基线,但若出现在非授权路径(如/tmp下)则属风险
分项精准查找:避免误报与漏报
使用 -xdev 排除挂载点,加 2>/dev/null 屏蔽无权访问提示,输出带详细属性:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 查所有 SUID 可执行文件(排除常见合法项后复核):
find / -xdev -type f -perm -4000 -ls 2>/dev/null - 查所有 SGID 可执行文件:
find / -xdev -type f -perm -2000 -ls 2>/dev/null - 查所有 SGID 目录(重点关注
/tmp、/var/tmp、用户家目录):find / -xdev -type d -perm -2000 -ls 2>/dev/null - 查所有含 SUID 或 SGID 的文件/目录(即传统
/6000含义,用于初筛):find / -xdev \( -perm -4000 -o -perm -2000 \) -ls 2>/dev/null
生成结构化合规报告
不要只存路径。用 stat 补全关键字段,导出为制表符分隔文本,便于 Excel 或脚本分析:
- 创建报告目录:
mkdir -p /var/log/audit/suid-sgid-$(date +%F) - 导出 SUID 文件详情:
find / -xdev -type f -perm -4000 2>/dev/null | xargs -r stat -c "%n\t%U\t%G\t%a\t%y" > /var/log/audit/suid-sgid-$(date +%F)/suid_files.tsv - 同理导出 SGID 文件与 SGID 目录:
find / -xdev -type f -perm -2000 2>/dev/null | xargs -r stat -c "%n\t%U\t%G\t%a\t%y" > /var/log/audit/suid-sgid-$(date +%F)/sgid_files.tsvfind / -xdev -type d -perm -2000 2>/dev/null | xargs -r stat -c "%n\t%U\t%G\t%a\t%y" > /var/log/audit/suid-sgid-$(date +%F)/sgid_dirs.tsv
每份 TSV 包含:路径、属主、属组、八进制权限、最后修改时间——这正是等保、ISO27001 审计要求的最小字段集。
后续动作:不能只靠 find
find 是起点,不是终点:
-
人工复核必须做:对比
/etc/shadow属主是否为 root、/usr/bin/sudo是否在白名单、/tmp/myapp的 SGID 是否合理 -
用专用工具交叉验证:运行
linpeas.sh或suid3num,看是否发现 find 漏掉的硬链接或特殊文件系统对象 -
修复不等于 chmod 乱打:确认风险后,仅对非必要项执行最小权限修正,例如:
chmod u-s /path/to/risky-binary(去 SUID)chmod g-s /path/to/risky-dir(去 SGID 目录)

















