当我看完之后帮助。我没发现它们之间有什么太大的区别。
-g, --gid 组
用户初始登录组的组名或组号。组名必须存在。组编号必须引用已存在的组。
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
用户也是其成员的补充组的列表。每个组与下一个组之间用逗号分隔,中间没有空格。这些组受到与 -g 选项指定的组相同的限制。默认情况下,用户仅属于初始组。
如果它们是相同的。为什么它们都存在?
答案1
-g
设置初始组或主要组。这是出现在 中的组字段中的内容/etc/passwd
。在许多发行版上,主组名称与用户名相同。
-G
设置补充组或附加组。这些是/etc/group
列出您的用户帐户的组。这可能包括诸如sudo
、staff
等组。
答案2
他们不一样。该-g
选项指定用户应属于的“主要”组,而该-G
选项指定一个或多个补充(“次要”)组。
在我可以访问的工作机器上
$ id
uid=1001(me) gid=1001(me) groups=1001(me),27(sudo),110(lxd),1005(theproject)
这表明我的“主要”组是me
(与我的用户名相同)。然而,我也是一些次要团体的成员。
例如,由于该特定计算机上的配置方式,该sudo
组的成员身份允许我使用该命令对系统执行可怕的操作。sudo
sudo
/etc/sudoers
该组的成员资格theproject
允许我修改我正在与其他人一起处理的项目中的组可读/可写文件。
创建的文件(通常)将自动分配给主要组。
答案3
通过应用的组-g
是主要组,因此例如当您创建文件时,它将默认将其与您的主要组一起作为与该文件关联的组。不过,您可以使用sg
或命令临时更改默认使用的组newgrp
。中的所有组-G
都是次要组。有关此的更多信息这里