В чем разница между параметрами -g и -G в useradd

Простите меня, я не силен в Linux. Как говорится в названии. Может ли кто-нибудь рассказать, есть ли разница между ними?

После того, как я просмотрю помощь . Я не нашел большой разницы между ними.

-g, –gid GROUP

Имя группы или номер начальной группы входа пользователя. Имя группы должно существовать. Номер группы должен относиться к уже существующей группе.

-G, –группы GROUP1 [, GROUP2, … [, GROUPN]]]

Список дополнительных групп, членом которых также является пользователь. Каждая группа отделена от следующей запятой, без промежуточных пробелов. Группы подвержены тем же ограничениям, что и группа, заданная с опцией -g. По умолчанию пользователь должен принадлежать только исходной группе.

Если они одинаковы. Почему оба они существуют?

Скажите, пожалуйста, если я что-то пропустил. Большое спасибо.

-g устанавливает начальную или первичную группу. Это то, что появляется в поле группы в /etc/passwd . Во многих дистрибутивах имя первичной группы совпадает с именем пользователя.

-G устанавливает дополнительные или дополнительные группы. Это группы в /etc/group которые перечисляют вашу учетную запись пользователя. Сюда могут входить такие группы, как sudo , staff и т. Д.

Они не одинаковы. Параметр -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 позволяет мне изменять файлы, доступные для записи / записи, в проекте, над которым я работаю с другими.

Созданный файл (обычно) автоматически присваивается первичной группе.

Группа, применяемая через -g является основной группой, поэтому, например, когда вы создаете файл, она по умолчанию делает ее своей основной группой как группу, связанную с этим файлом. Тем не менее, вы можете временно изменить, какую группу он использует по умолчанию, с командами sg или newgrp . Все группы в -G являются вторичными группами. Подробнее об этом здесь