useradd 中的 -g 和 -G 选项有什么区别

Joe*_*ang 7 linux permissions useradd

经过我的帮助看。我没有发现它们之间有太大区别。

-g, --gid 组

用户初始登录组的组名或编号。组名必须存在。组号必须指代已经存在的组。

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]

用户也是其成员的补充组列表。每个组之间用逗号分隔,中间没有空格。这些组受到与使用 -g 选项给出的组相同的限制。默认情况下,用户只属于初始组。

如果它们相同。为什么两者都存在?

roa*_*ima 14

-g设置初始或主要组。这是出现在 中的组字段中的内容/etc/passwd。在许多发行版中,主要组名与用户名相同。

-G设置补充或附加组。这些是/etc/group您的用户帐户列表中的组。这可能包括诸如sudostaff等等。


Kus*_*nda 7

她们不一样。该-g选项指定用户应属于的“主要”组,而该-G选项指定一个或多个补充(“次要”)组。

在我可以访问的工作机器上,我有

$ id
uid=1001(me) gid=1001(me) groups=1001(me),27(sudo),110(lxd),1005(theproject)
Run Code Online (Sandbox Code Playgroud)

这表明我的“主要”组是me(与我的用户名相同)。但是,我也是许多次要团体的成员。

该成员sudo组,例如,允许我使用的sudo命令做可怕的东西与系统,由于这种配置的方式sudo/etc/sudoers这个特定的机器上。

theproject组的成员身份允许我在与其他人合作的项目中修改组可读/可写文件。

创建的文件将(通常)自动分配给主要组。