Linux 文件管理之特殊权限

💡 原文中文,约1300字,阅读约需4分钟。
📝

内容提要

Linux 除了基本的读取、写入和执行权限外,还有特殊权限设置,包括 SUID、SGID 和粘滞位。SUID 允许普通用户以超级用户权限执行程序,SGID 影响新文件的属组,而粘滞位则防止用户删除共享目录中的文件。

🎯

关键要点

  • Linux 除了基本的读取、写入和执行权限外,还有特殊权限设置,包括 SUID、SGID 和粘滞位。

  • SUID 允许普通用户以超级用户权限执行程序,改变有效用户ID。

  • setuid 位的八进制表示为 4000,设置后程序以属主的有效用户ID执行。

  • SGID 影响新文件的属组,设置后新文件由目录的属组所有。

  • setgid 位的八进制表示为 2000,设置后目录下新创建的文件属组为目录的属组。

  • 粘滞位用于防止用户删除共享目录中的文件,只有属主或超级用户可以删除。

  • 粘滞位的八进制表示为 1000,常用于控制对共享目录的访问。

🔎

延伸解读

SUID 的安全隐患

SUID 允许普通用户以超级用户权限执行程序,这虽然提供了便利,但也带来了安全风险。若不加控制,恶意用户可能利用此权限执行未授权操作。因此,系统管理员应谨慎设置 SUID 权限,仅对必要的程序进行配置,以降低潜在的安全威胁。

SGID 的应用场景

SGID 位在共享目录中尤为重要,它确保新创建的文件继承目录的属组。这对于团队协作非常有用,能够简化文件管理,避免因属组不一致导致的访问问题。使用 SGID 时,需确保目录的属组设置合理,以维护文件的安全性和可访问性。

粘滞位的使用注意事项

粘滞位主要用于控制共享目录的访问,防止用户随意删除或重命名文件。设置粘滞位后,只有文件的属主或超级用户才能进行这些操作。这在公共目录(如 /tmp)中尤为重要,确保了文件的安全性,避免了不必要的误删。

延伸问答

什么是 SUID 权限,它的作用是什么?

SUID(Set User ID)允许普通用户以超级用户权限执行程序,改变有效用户ID。

如何设置 SUID 权限?

可以使用命令 chmod u+s <程序文件名> 来设置 SUID 权限,八进制表示为 chmod 4755 <程序文件名>。

SGID 权限的作用是什么?

SGID(Set Group ID)会将新创建文件的属组设置为目录的属组,而非文件创建者的属组。

如何设置 SGID 权限?

可以使用命令 chmod g+s <目录名> 来设置 SGID 权限,八进制表示为 chmod 2775 <目录名>。

粘滞位的作用是什么?

粘滞位用于防止用户删除共享目录中的文件,只有属主或超级用户可以删除。

如何设置粘滞位?

可以使用命令 chmod +t <目录名> 来设置粘滞位,八进制表示为 chmod 1777 <目录名>。

🏷️

标签

➡️

继续阅读