欢迎 on it road

目录的特殊权限:SGID

如果对目录设置了 SGID 权限,则在该目录中创建的文件或者子目录将继承 SGID 目录的组所有权。
在目录中创建的子目录也将继承 SGID 特殊权限,进一步传播此行为。
请注意,尽管继承了组所有权和特殊的 SGID 位,但新创建的目录的所有其他权限都是使用 umask 值以通常的方式确定的。

文件的特殊权限:SGID

当设置了 SGID 位的可执行文件运行时,它们将使用拥有可执行文件的组(而不是执行文件的用户的主要组)的有效组 ID (EGID) 运行。

下面的命令 sdds setgid 位,这样,如果可执行,该文件将以其组的权限执行。
当在目录上设置此项时,在该目录中创建的所有文件都将与该目录具有相同的组。

$ chmod g+s file_name

目录的特殊权限:粘滞位

基于标准的 Unix 文件系统权限行为,对目录具有写访问权限的用户将能够删除该目录中的文件(即使该文件的权限未授予他们访问权限)。
在目录上设置粘滞位后,此行为将被覆盖,只有至少对文件具有写入权限的用户才能删除它。

/tmp 目录是设置了粘滞位的目录示例。
所有用户都能够写入 /tmp 目录非常重要,但是如果任何用户可以删除任何其他用户的文件,这可能会导致重大问题。
下面的命令 sdds 粘滞位,以便用户只能从他们创建的这个目录中删除文件。

$ chmod o+t directory_name
Solaris 中的特殊权

除了标准的读、写和执行权限之外,Solaris 和 UNIX/LINUX 通常还有一些可以设置到文件和目录的特殊权限。
它们是 setuid 位、setgid 位和粘性位。

文件的特殊权限:SUID

Linux 新用户常常想知道为什么有人想要使用 SUID 位。
拥有一个可以为任何用户使用 root 权限运行的程序听起来像是一个危险的提议。
事实证明,在某些程序上设置 SUID 位不仅有帮助,而且是必需的。

以 passwd 命令为例。
系统上的任何用户都可以使用 passwd 命令来更改他们的密码。
用户的密码存储在文件 /etc/shadow 中。
快速检查此文件的权限将显示它仅对 root 用户具有读/写权限。
为了更新他们的密码条目,用户必须具有对文件的根级别访问权限。
这种访问是通过设置 passwd 程序上的 SUID 位来提供的。
passwd 程序将只允许用户更改自己的密码。
此限制是基于运行程序的用户的 UID 强加的,而不是基于用户的安全上下文。

以下示例显示在文件上设置 setuid 权限。
这样,如果文件是可执行的,它将以其所有者的权限执行。

$ chmod u+s file_name
日期:2020-09-17 00:15:27 来源:oir作者:oir