Linux 安全加固:检查并去除 SUID/SGID 特权文件
2026/6/25 16:53:49 网站建设 项目流程

在日常运维和安全加固中,SUID/SGID 特权文件是一个常见的风险点。攻击者可能利用这些文件进行权限提升,因此我们需要定期检查并处理。


🔎 什么是 SUID 和 SGID

  • SUID (Set User ID):程序运行时会以文件所有者的身份执行,而不是当前用户。例如passwd命令允许普通用户修改密码,因为它以 root 身份运行。
  • SGID (Set Group ID):程序运行时会以文件所属组的身份执行,而不是当前用户所属组。

这些机制本身是为了方便用户执行某些管理操作,但如果程序存在漏洞,就可能被攻击者利用。


⚠️ 风险描述

在安全检查中发现以下文件存在特权位:

  • SUID 文件
    /usr/bin/chage/usr/bin/gpasswd/usr/bin/chfn/usr/bin/chsh/usr/bin/newgrp/bin/mount/bin/umount

  • SGID 文件
    /usr/bin/write

这些文件如果被利用,可能导致权限提升系统被入侵


🛠️ 解决方案

1. 去除 SUID 权限

chmodu-s /usr/bin/chagechmodu-s /usr/bin/gpasswdchmodu-s /usr/bin/chfnchmodu-s /usr/bin/chshchmodu-s /usr/bin/newgrpchmodu-s /bin/mountchmodu-s /bin/umount

2. 去除 SGID 权限

chmodg-s /usr/bin/write

📌 注意事项

  • 去除这些权限后,普通用户可能无法执行某些操作,例如:
    • 修改自己的 shell (chsh)
    • 挂载/卸载设备 (mount,umount)
  • 服务器环境(尤其是生产环境),通常推荐去掉这些权限,减少被利用的风险。
  • 桌面环境,如果需要这些功能,可以保留,但务必保持系统更新。

✅ 最佳实践

  1. 定期扫描系统中的 SUID/SGID 文件:
    find/ -perm -4000 -type f2>/dev/nullfind/ -perm -2000 -type f2>/dev/null
  2. 保留必要的特权文件(如passwd),其他尽量去掉。
  3. 在团队中建立安全基线检查脚本,自动化发现并处理风险。

📝 总结

通过去除不必要的 SUID/SGID 特权文件,可以有效降低系统被攻击者利用的风险。这是Linux 安全加固的重要一环,建议纳入日常运维流程。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询