Qual é a diferença entre as opções -g e -G no useradd

7

Perdoe-me, não sou strong no Linux. Como o título dizia. Alguém poderia dizer se há alguma diferença entre eles?

Depois de examinar a ajuda . Eu não encontrei muita diferença entre eles.

-g, --gid GROUP

The group name or number of the user's initial login group. The group name must exist. A group number must refer to an already existing group.

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

A list of supplementary groups which the user is also a member of. Each group is separated from the next by a comma, with no intervening whitespace. The groups are subject to the same restrictions as the group given with the -g option. The default is for the user to belong only to the initial group.

Se eles são os mesmos. Por que ambos existem?

Por favor, me diga se eu perdi alguma coisa. Muitos agradecimentos.

    
por Joe.wang 29.06.2016 / 13:18

3 respostas

13

-g define o grupo inicial ou principal. Isso é o que aparece no campo de grupo em /etc/passwd . Em muitas distribuições, o nome do grupo primário é o mesmo que o nome do usuário.

-G define os grupos suplementares ou adicionais. Estes são os grupos em /etc/group que listam sua conta de usuário. Isso pode incluir grupos como sudo , staff , etc.

    
por 29.06.2016 / 13:23
7

Eles não são iguais. A opção -g especifica o grupo "principal" ao qual um usuário deve pertencer, enquanto a opção -G especifica um ou vários grupos suplementares ("secundários").

Em uma máquina de trabalho, tenho acesso a

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

Isso mostra que meu grupo "principal" é me (o mesmo que meu nome de usuário). No entanto, também sou membro de vários grupos secundários.

A associação do grupo sudo , por exemplo, permite que eu use o comando sudo para fazer coisas assustadoras com o sistema, devido à maneira como isso é configurado para sudo in /etc/sudoers nessa máquina específica .

A associação do grupo theproject permite modificar arquivos legíveis por grupo / graváveis em um projeto em que estou trabalhando com outros.

O arquivo criado será (normalmente) automaticamente atribuído ao grupo primário.

    
por 29.06.2016 / 13:28
1

O grupo aplicado via -g é o grupo primário, portanto, por exemplo, quando você cria um arquivo, ele assumirá como padrão o grupo principal como o grupo associado ao arquivo. No entanto, você pode alterar temporariamente o grupo que usa como padrão com os comandos sg ou newgrp . Todos os grupos no -G são grupos secundários. Mais sobre isso aqui

    
por 29.06.2016 / 13:24