Como 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 agora john ao grupo de Keith?

Eu tentei:

sudo usermod -aG Keith john

Mas eu entendo:

usermod: group 'Keith' does not exist

O que preciso fazer para resolver esse problema?

Respostas:


17

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

Como é muito menos óbvio do que eu pensava por que -a -G está ok, enquanto -aG não está, tentarei explicar:

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á requisito para ter um espaço entre a opção e o valor. Esta é apenas uma prática comum.

Se você tiver um grupo chamado a em seu sistema, a chamada -Ga se tornará ambígua. Deseja que o usuário tenha apenas um grupo a? Você está chamando -a e -G? Então "a" é um valor para -G? Onde está o restante do valor (para -G)? Também é prática comum que qualquer opção de letra única possa 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.

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

De man usermod:

Nome

usermod - modifica uma conta de usuário

Sinopse

usermod [opções] LOGIN

Descrição

O comando usermod modifica os arquivos da conta do sistema para refletir as alterações especificadas na linha de comandos.

Opções

As opções que se aplicam ao comando usermod são:

  • -a, --append

    Adicione o usuário ao (s) grupo (s) suplementar (es). Use apenas com a opção -G .

  • ...

  • -G, --grupos GRUPO1 [, GRUPO2, ... [, GRUPO]]]]

    Uma lista de grupos suplementares dos quais o usuário também é membro. Cada grupo é separado do próximo por uma vírgula, sem espaços em branco. Os grupos estão sujeitos às mesmas restrições que o grupo fornecido com a opção -g .

    Se o usuário é atualmente um membro de um grupo que não está listado, o usuário será removido do grupo. Esse comportamento pode ser alterado através da opção -a , que anexa o usuário à lista de grupos suplementares atual.

  • ...


Pode ajudar a explicar por que a divisão das opções funcionaria e quais são elas.
Journeyman Geek

@JourneymanGeek: Feito! Executa ...
Tamara Wijsman

superusuários deve saber como homem, imho ...
Ярослав Рахматуллин

@ ЯрославРахматуллин, superusers deveriam de fato. No entanto, a maioria das perguntas é feita por "não usuários" e respondidas por "usuários". Alguém que é novo no linux não tem motivos para conhecer o comando man. De qualquer forma, o comando que você deu é o mesmo que o executado pelo OP, sua resposta não explica por que não funcionou para ela. Pelo menos no meu sistema, dividir as opções não faz diferença.
terdon

Bem, antes de tudo, você não pode executar o nome do sudo adduser sudo adduser name2 porque essa é uma sintaxe inválida para o useradd . useradd usa um argumento de nome de usuário. Para adicionar dois usuários, você deve executar o comando duas vezes. IE useradd arne; useradd kari. Em seguida, você pode adicionar kari ao grupo arnes e vice-versa. Vou ter mais paciência depois de assistir mais algumas dessas perguntas e responder adequadamente. promessa!
Ярослав Рахматуллин

0

Se você executou os comandos exatamente como mostrou na sua pergunta, 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, você precisa 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ê os executou 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

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.