这封信S
在下面是什么意思?有问题的文件是一个文件夹。
我在这里阅读到一个大写字母S
可以表示该setgid
位对于二进制可执行文件是活动的。但这是一个文件夹。这是否仍然意味着该setgid
位已激活?如果是这样,那意味着什么?
这封信S
在下面是什么意思?有问题的文件是一个文件夹。
我在这里阅读到一个大写字母S
可以表示该setgid
位对于二进制可执行文件是活动的。但这是一个文件夹。这是否仍然意味着该setgid
位已激活?如果是这样,那意味着什么?
Answers:
这意味着放到该文件夹中的任何文件都将成为该文件夹的所属组。
例如:假设您有一个名为“ shared”的文件夹,该文件夹属于用户“ intrpc”和组“ users”,并且您(作为用户“ initrpc”)将文件拖放到该文件夹中。结果,该文件将属于用户“ intrpc”和组“ users”,而与“ initrpc”的主要组无关。
在大多数系统上,如果设置了目录的set-group-ID位,则新创建的子文件将继承与该目录相同的组,而新创建的子目录将继承父目录的set-group-ID位。
你可以在这里阅读。
为什么字母大写(从您提供的链接中)?
如果该组没有执行权限,则setgid无效。setgid在ls的输出中用小写的“ s”表示。如果无效,则用大写字母“ S”表示。
setgid has no effect if the group does not have execute permissions
这是一种误导,因为它确实有效果。只需将文件作为目录的所有者添加到目录中即可:该文件将具有目录的组,而不是所有者的主要组。
大写S是因为目录没有该组的执行权限。正如您所说的那样,这表示“错误”:
新创建的子文件继承与目录相同的组,新创建的子目录继承父目录的set-group-ID位。
(来源:https : //www.gnu.org/software/coreutils/manual/html_node/Directory-Setuid-and-Setgid.html)
但是,您拒绝组成员进入目录的权限。