mur*_*uru 15
主要组是当您使用常用方法(TTY、GUI、SSH 等)登录时应用到您的组。
由于进程通常继承父进程的组,并且您的初始进程或 shell 会将您的主要组作为组,因此您所做的任何事情通常都会对主要组产生影响(例如,创建文件)。
次要组是您可以在不使用组密码的情况下启动进程的组,通过sg或通过newgrp命令登录。
所以如果你有一个主要组x和一个次要组y,
touch foo
Run Code Online (Sandbox Code Playgroud)
通常会创建一个x作为组所有者的文件(除非父目录是另一个组的 SETGID)。但是,您可以这样做:
sg y 'touch bar'
# or
newgrp y
touch baz
Run Code Online (Sandbox Code Playgroud)
然后bar和baz将被创建y为组。
但是,如果你没有在你的次级群体(比如一组z),将sg和newgroup命令会要求组密码,如果你使用它们z。
如果您在谈论文件系统组,那么在Cyberciti 文章中对它们进行了很好的解释。该主组创建一个新文件时默认使用。你可以测试这个
touch foo
ls -la foo
Run Code Online (Sandbox Code Playgroud)
该文件将由您拥有并在您的主要组中。同样在您的主要组中的用户将对这些文件拥有组级权限。
您可以检查您的次要组
groups $(whoami)
Run Code Online (Sandbox Code Playgroud)
还可以通过在目录上设置设置组 ID与不在您的主要组中的人共享文件。这在这里解释:共享文件夹与 SetGID。