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

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

当我看完之后帮助。我没发现它们之间有什么太大的区别。

-g, --gid 组

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

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

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

如果它们是相同的。为什么它们都存在?

答案1

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

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

答案2

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

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

$ id
uid=1001(me) gid=1001(me) groups=1001(me),27(sudo),110(lxd),1005(theproject)

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

例如,由于该特定计算机上的配置方式,该sudo组的成员身份允许我使用该命令对系统执行可怕的操作。sudosudo/etc/sudoers

该组的成员资格theproject允许我修改我正在与其他人一起处理的项目中的组可读/可写文件。

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

答案3

通过应用的组-g是主要组,因此例如当您创建文件时,它将默认将其与您的主要组一起作为与该文件关联的组。不过,您可以使用sg或命令临时更改默认使用的组newgrp。中的所有组-G都是次要组。有关此的更多信息这里

相关内容