文件夹权限中大写的S

文件夹权限中大写的S

S下面这个字母是什么意思?有问题的文件是一个文件夹。

                                                                在此输入图像描述

我读这里大写字母S可以表示该setgid位在某个时间内处于活动状态二进制可执行文件。但这是一个文件夹。这是否仍然意味着该setgid位已被激活?如果是这样,那意味着什么?

答案1

这意味着放入该文件夹中的任何文件都将属于该文件夹的所属组。

例如:假设您有一个名为“shared”的文件夹,属于用户“intrpc”和组“users”,并且您(作为用户“initrpc”)将一个文件放入其中。因此,该文件将属于用户“intrpc”和组“users”,而不管“initrpc”的主要组如何。

在大多数系统上,如果设置了目录的 set-group-ID 位,则新创建的子文件将继承与该目录相同的组,并且新创建的子目录将继承父目录的 set-group-ID 位。

你可以阅读相关内容这里

为什么该字母是大写的(来自您提供的链接)?

如果组没有执行权限,则 setgid 无效。 setgid 在 ls 的输出中用小写“s”表示。如果没有影响,则用大写“S”表示。

答案2

大写的S是因为该目录没有该组的执行权限。在某种程度上,这表明一个“错误”,正如您所说:

新创建的子文件继承与目录相同的组,新创建的子目录继承父目录的set-group-ID位。

(来源:https://www.gnu.org/software/coreutils/manual/html_node/Directory-Setuid-and-Setgid.html

但是,您拒绝组成员进入该目录的权限。

答案3

https://en.wikipedia.org/wiki/Setuid#When_set_on_a_directory

在目录上设置 setgid 权限(“chmod g+s”)会导致在该目录中创建的新文件和子目录继承其组 ID,而不是创建该文件的用户的主组 ID(所有者 ID 永远不会受到影响,仅组 ID)。

https://www.gnu.org/software/coreutils/manual/html_node/What-information-is-listed.html#What-information-is-listed

's' 如果设置用户 ID 或设置组 ID 位以及相应的可执行位均已设置。

'S' 如果设置了设置用户 ID 或设置组 ID 位,但未设置相应的可执行位。

相关内容