Ubuntu 中的主要组和次要组有什么区别?

Nem*_*nin 24 groups

Ubuntu 中的主要组和次要组有什么区别?

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)

然后barbaz将被创建y为组。

但是,如果你没有在你的次级群体(比如一组z),将sgnewgroup命令会要求组密码,如果你使用它们z


Eer*_*nen 5

如果您在谈论文件系统组,那么在Cyber​​citi 文章中对它们进行了很好的解释。该主组创建一个新文件时默认使用。你可以测试这个

touch foo
ls -la foo
Run Code Online (Sandbox Code Playgroud)

该文件将由您拥有并在您的主要组中。同样在您的主要组中的用户将对这些文件拥有组级权限。

您可以检查您的次要组

groups $(whoami)
Run Code Online (Sandbox Code Playgroud)

还可以通过在目录上设置设置组 ID与不在您的主要组中的人共享文件。这在这里解释:共享文件夹与 SetGID