难以理解 GID 和 chmod g+s

难以理解 GID 和 chmod g+s

我无法理解 GID 和命令chmod g+s

我将其理解为为组设置传递的文件或目录的权限,如 +s(假设是粘性?) +s 是否表示粘性,这是否意味着它复制该文件/目录的当前组权限并将其设置为用于该原始目录中所有新创建的文件和目录?

如果希望确保目录 /test/ 中所有新添加的文件应自动属于“finance”组,那么 chmod g+s 是执行此操作的正确命令吗(假设测试的主要组是finance)?

chmod 的手册页没有对该命令的功能给出明确的解释,至少对我来说是这样。

答案1

短:“s”的意思

长的:

如应用于 文件,chmod g+s用于 setgid。也就是说,如果文件是可执行的并且设置了 group-s 位,则它将以其团体设置为匹配文件的组所有权。该功能在 Unix 中已经存在一段时间了(例如,参见第 6 版)手册页)。

目录更难记录,因为行为可能取决于系统。

POSIX没有指定行为,只说

符合要求的应用程序决不应该假设它们知道如何解释目录上的 set-user-ID 和 set-group-ID 位。

为了AIX高性能用户体验系统,没有提及任何内容目录

为了索拉里斯

对于目录,文件是使用 BSD 语义创建的,用于传播组 ID。使用此选项,在目录中创建的文件和子目录将继承目录的组 ID,而不是当前进程的组 ID。它只能通过使用符号模式来清除。

虽然(注意到《BSD 语义》),这种行为没有在太阳操作系统4手册页。

在现代系统中,自由BSD,操作系统XLinux提供“BSD语义”,但是网络BSD开放BSD不要客气。

进一步阅读(有趣的是,没有接受的答案):

相关内容