译自: Sticky Bits, UID's and GID's
Sticky Bits, UID's and GID's
文件权限中的特殊设置-如何理解和管理它们
Understanding File Permissions
How do I use chmod to manage file permissions?
Sticky Bits, UID's and GID's
概述
您可以使用3位数字表示任何文件许可权值,或使用chmod对其进行管理。 但是,实际上,您可以使用4位数字来达到相同的结果,例如777等于0777,依此类推。 这个附加的八进制值代表一些特殊功能,称为“粘滞位”,“ UID” 和 “GID”。
了解特殊的八进制值
在常规文件权限内,未设置特殊选项。 范围从0到7的八进制值表示用于读取,写入和执行文件等的选项。 但是,如上所述,当使用此附加八进制时,值(仍在0-7范围内)表示以下选项:
特殊选项八进制分解备忘单 0 - No options set |
其分别代表的8进制数值为:
SUID:4 SGID:2 Sticky Bit: 1 |
什么是粘性位?
粘滞位是文件权限中的一种特殊设置,有助于限制访问权限,超出普通文件权限所能提供的范围。 简而言之,粘滞位可确保只有文件/目录的所有者才能删除或重命名文件。 但是,应注意,root用户也可以编辑和删除文件。
如何设置粘性位
在很大程度上,使用chmod时,设置“粘滞位”就像任何普通文件权限一样。 例如,通常,如果您想将文件设置为777权限,则可以执行以下操作。
通常更改权限 $ chmod 777 myfile.txt Confirming the change using ls -l output being: |
为了使用粘滞位将文件更改为具有777的相同权限,可以使用八进制1777,如下所示:
粘滞位更改权限 $ chmod 1777 myfile.txt Confirming the change using ls -l output being: |
注意不同之处,其中777的常规文件许可权的符号值为“ -rwxrwxrwx”,而带有“粘滞位”的则为“ -rwxrwxrwxt”。 粘滞位在其符号值的末尾附加了“ t”。 该字母“ t”表示已设置“粘性位”。
检测粘滞位
运行ls -l 命令查看文件权限 $ ls –l |
请注意输出,对于文件和目录,其文件许可权的符号值分别为 -rwxrwxrwxt 和 drwxrwxrwxt。 如上所述,权限符号值上的附加字母 “t” 表示已设置“粘滞位”。
什么是SGID(SETGUID)-什么是SUID(SETUID)
在某些情况下,用户需要执行或操作文件或程序,因此需要提升的特权。 在这种情况下,可以设置SUID或SGID,以提供执行所需的权限。 SETUID或SETGID二进制文件分别在有关文档中执行命令的同时执行。 通常,在用户需要提升的权限并且没有管理员或root用户访问权限的情况下,需要SUID或SGID。
设置和检测SGID
$ chmod 2777 myfile.txt Confirming the change using ls -l output being: |
请注意,符号许可权值为 -rwxrwsrwx,第二个三元组 “rws” 从该名称后附加一个 “s” 而不是一个 “x”。 字母 “s” 表示已为相关文件或目录设置了SGID。
设置和检测SUID
$ chmod 4777 myfile.txt Confirming the change using ls -l output being: |
请注意,符号许可权值为 -rwsrwxrwx,在第一个三元组 “rws” 的后面附加了 “s” 而不是 “x”。 该字母 “s” 表示已为所讨论的文件或目录设置了SUID。
为什么有大写字母?
在某些文件权限内,在某些情况下,您可能会看到大写字母“ S”或“ T”代替普通的小写字母。 以下是这些情况,参考文献及其含义的细分:
-属主权限三元组大写 S 例如,许可4236在其符号值 "--wS-wxrw-" 内包含一个大写 "S" 。 这表示已设置 SUID,但是属主没有执行权限。 - 属组权限三元组大写 S 例如,许可2767在其符号值 "-rwxrwSrwx" 内包含一个大写 "S"。 这表示已设置了 SGID,但是属组没有执行权限。 - 大写 T 大写字母 T 表示已设置 "粘滞位",但是其他组没有执行权限。 有关示例,请参见许可权1774,其符号值为 "-rwxrwxr-T "。 |