Questão Como adicionar usuário existente a um grupo existente?


Eu quero adicionar o usuário do Apache (www-data) ao audio grupo. Eu li a man page para useraddmas eu não estou tendo sorte. Estou executando o xubuntu 11.10. Veja o que estou fazendo:

$ sudo useradd -G audio www-data
useradd: user 'www-data' already exists

Se eu deixar de fora -G opção, bash, imprime as informações de ajuda para useradd:

$ sudo useradd  audio www-data
Usage: useradd [options] LOGIN
Options: -b, --base-dir BASE_DIR       base directory for the home directory...

Não está claro para mim na man page quais opções devo usar para fazer esse trabalho.


579
2017-11-15 18:21


origem




Respostas:


o useradd comando tentará adicionar um novo usuário. Como o seu usuário já existe, não é isso que você quer.

Em vez disso: para modificar um usuário existente, como adicionar esse usuário a um novo grupo, use o usermod comando.

Tente isto:

sudo usermod -a -G groupName userName

O usuário precisará sair e entrar novamente para ver o novo grupo adicionado.

  • o -a (anexar) é essencial. Caso contrário, o usuário será removido de todos os grupos, não da lista.

  • o -G switch pega uma lista (separada por vírgulas) de grupos adicionais para atribuir o usuário.


891
2017-11-15 18:33



sudo usermod -a -G [group-name] [user-name] : Apenas uma rapidinha para aqueles que apenas olham para a resposta depois de ler a manchete - Programster
Eu acho que o caminho preferido agora é sudo adduser user group. É uma sintaxe mais simples e mais limpa. Veja a resposta de @Bai. - ctbrown
@wilhil: man usermod: "-a, --append - Adicione o usuário ao (s) grupo (s) suplementar (es). Use somente com a opção -G; -G, --groups GROUP1 [, GROUP2, ... [, GROUPN]]] [...] Se o usuário for atualmente um membro de um grupo que não esteja listado, o usuário será removido do grupo. Esse comportamento pode ser alterado por meio da opção -a, que anexa o usuário à lista de grupos suplementares atual. " - Adam Michalik
Existe uma maneira de contornar a parte "logout e back in"? Algum tipo de comando update-groups, talvez? - con-f-use
@ con-f-use, se você puder executar sudo login -f YOURUSERNAME, iniciará uma nova sessão de shell. Use o id comando para verificar se a nova sessão está no conjunto correto de grupos. No entanto, isso não é "global" - não se aplica a terminais que já estão abertos. Então, realmente, sair é a melhor opção, quando possível - Aaron McDaid


Adicionando um usuário a um grupo:

sudo adduser user group

Removendo um usuário de um grupo:

sudo deluser user group

192
2018-01-12 13:09



não exatamente o que esta pergunta sendo pedida - Tejendra
@ O comentário de Tejendra parece pressupor que usar useradd é desejável / obrigatório para responder à pergunta do OP; Talvez esta resposta esteja faltando palavras para indicar que o adduser / deluser é uma alternativa melhor. - sage
Para mim interface mais simples é melhor, é por isso que eu gosto dessa. - Betlista
Isto é exatamente a pergunta que está sendo feita. @knocte, sim, eu acho que é específico do Debian - Auspex
@Auspex Eu posso confirmar que não funciona no Red Hat. - Stibu


Depois de adicionar a um usuário existente:

usermod -a -G group user  

Você pode precisar logout e login para obter as permissões de grupos de /etc/group.


47
2018-02-22 17:16



Por favor, faça a parte "precisa fazer logout e login" em negrito. - Jin Kwon
FYI: Eu acho que o id comando deve indicar que você foi adicionado ao grupo sem precisar sair. id myuser - ficuscr
Logout e back in foram necessários para mim no Ubuntu 14.10. - A.Danischewski


Eu normalmente uso

sudo gpasswd -a myuser mygroup

24
2017-11-15 18:47



usermod não estava disponível no meu sistema ubuntu 14.04. Isso funcionou muito bem! - Drew


No Ubuntu, desde logando como root não está ativado, usuários no sudo grupo pode elevar privilégios para determinados comandos restritos. Qualquer comando restrito deve ser prefixado com sudo para elevar o privilégio.

sudo usermod -a -G grupo do utilizador

irá adicionar o usuário existente user para um grupo suplementar chamado group. O grupo principal do usuário permanecerá inalterado.


4
2018-02-25 21:58





Estou postando isso como uma resposta porque não tenho reputação suficiente para comentar. Como mencionado no @dpendolino, para os efeitos deste comando persistirem:

sudo usermod -a -G groupName userName

... você precisa fazer logout / login novamente.

No entanto, se você precisar de um atalho para começar a usar sua nova associação ao grupo imediatamente (e você tem o correto sudo privilégios) Eu encontrei esta solução alternativa:

$ sudo su -
# su [userName]
$ groups

Explicação:

  • sudo su - lhe dará uma casca de raiz
  • su [userName] retorna você para um shell com seu usuário
  • groups quando executado agora mostrará o grupo que você adicionou com o usermod -aG comando

No meu caso, eu estava tentando adicionar o grupo "docker" ao meu usuário

Antes:

$ groups
userName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd

Depois de:

$ groups
userName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd docker

2
2018-03-25 17:49