服务器安全体检需重点排查SUID/SGID普通可执行文件:用find定位,file验证ELF类型,聚焦非标路径、非root属主及异常属组,并人工复核权限、属主、属组和白名单状态。

权限管理中,通过查找含特殊权限位的程序做服务器安全体检,核心是定位那些可能被滥用提权的可执行文件。SUID 和 SGID 是关键风险点,Sticky 位对单个二进制文件无实际提权意义,可忽略。
重点查 SUID/SGID 的普通可执行文件
只扫描普通文件(-type f),排除目录和符号链接,避免误报:
- 找所有 SUID 文件:find / -type f -perm -4000 -ls 2>/dev/null
- 找所有 SGID 文件:find / -type f -perm -2000 -ls 2>/dev/null
- 同时查两者:find / -type f \( -perm -4000 -o -perm -2000 \) -ls 2>/dev/null
确认是否为真实 ELF 可执行文件
仅看权限不够——脚本设 SUID 多数无效,必须验证文件类型:
- 结合 file 命令筛选 ELF 可执行体:find / -type f -perm -4000 -exec file {} \; 2>/dev/null | grep -i 'ELF.*executable'
- 一行输出路径(更简洁):find / -type f -perm -4000 -exec sh -c 'file "$1" | grep -q "ELF.*executable" && echo "$1"' _ {} \; 2>/dev/null
聚焦高危路径与可疑属主
不是所有 SUID 文件都危险,但以下情况需立即人工核查:
- 出现在非标准路径:/usr/local/bin、/opt、/home/*/.local/bin 等
- 属主不是 root(如属主为普通用户或 nobody)
- 属组为非系统组(如 staff、users、wheel 以外的自定义组)
- 示例命令(查 /usr 下非 root 属主的 SUID ELF):find /usr -type f -perm -4000 ! -user root -exec file {} \; 2>/dev/null | grep -i 'ELF.*executable'
交叉验证比单次扫描更可靠
每条结果都应人工复核,不能只信 find 输出:
- 用 ls -l 路径 看完整权限、属主、属组和时间戳
- 用 file 路径 再确认是否为真实可执行二进制
- 检查该文件是否在发行版白名单内(如 /usr/bin/sudo、/usr/bin/passwd 是合法 SUID)
- 若路径陌生、属主异常、修改时间近期,优先隔离并逆向分析











