Como eu adiciono usuários a outro grupo de usuários?

9

Eu tenho um usuário john e um usuário keith no servidor Ubuntu

Eu adicionei esses usuários usando

sudo adduser John 
sudo adduser Keith

Como posso adicionar john ao grupo de Keith?

Eu tentei:

sudo usermod -aG Keith john

Mas eu recebo:

usermod: group 'Keith' does not exist

O que preciso fazer para resolver esse problema?

    
por Natasha Thapa 13.10.2012 / 16:20

3 respostas

17

Você pode usar: usermod -a -G grouptoadd username

Desde que é muito menos óbvio do que eu pensava porque -a -G é ok enquanto -AG não é, eu vou tentar explicá-lo:

As opções -G usam um valor ou uma lista de valores. No caso de um valor, o valor pode ser dado como: -GVALUE, pois não há necessidade de ter um espaço entre a opção e o valor. Esta é apenas uma prática comum.

Se você tem um grupo chamado a no seu sistema, então chamar -Ga se torna ambíguo. Você quer que o usuário tenha apenas um grupo? Você está chamando -a e -G? Então é "a" um valor para -G? Onde está o resto do valor (para -G)? Também é prática comum que qualquer opção de uma única letra possa ser feita antes de qualquer outra opção de letra única. então tat -xy == -yz. Mas isso é ambíguo quando uma das opções pode ter um único valor como VALUE ou muitos valores como VAL1, Val2, val4, etc.

Então, para tornar o comando FAILSAFE e funcionar corretamente para todas as entradas, você deve separar -a de -G

Em man usermod :

Name

usermod - modify a user account

Synopsis

usermod [options] LOGIN

Description

The usermod command modifies the system account files to reflect the changes that are specified on the command line.

Options

The options which apply to the usermod command are:

  • -a, --append

    Add the user to the supplementary group(s). Use only with the -G option.

  • ...

  • -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.

    If the user is currently a member of a group which is not listed, the user will be removed from the group. This behaviour can be changed via the -a option, which appends the user to the current supplementary group list.

  • ...

    
por 13.10.2012 / 16:33
0

Se você executou os comandos exatamente como mostrou na sua pergunta, você não criou o usuário Keith, mas apenas o usuário John. Para executar comandos um após o outro na linha de comando, é necessário separá-los usando ; ou && . Caso contrário, apenas o primeiro comando será executado:

sudo adduser John sudo adduser Keith
adduser: Only one or two names allowed.

Se você fez executá-los corretamente, tenha cuidado com letras maiúsculas. Na sua pergunta, você menciona "John" e "john". Isso deve funcionar:

sudo adduser keith
sudo adduser john
sudo usermod -aG keith john
    
por 13.10.2012 / 16:55
0

Você também pode editar os arquivos de configuração manualmente:

sudo nano /etc/password
sudo nano /etc/group

Atribua o ID e outros campos.

    
por 13.10.2012 / 16:59