Como Adicionar usuário existente a um grupo existente?

Eu quero adicionar o Usuário Apache (www-data) para o audio grupo. Eu li a página do homem para useradd, mas não estou tendo sorte. Estou executando o xubuntu 11.10. Aqui está o que estou fazendo:

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

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

$ sudo useradd  audio www-dataUsage: useradd [options] LOGINOptions: -b, --base-dir BASE_DIR       base directory for the home directory...

Não está claro para mim na página de manual quais opções devo usar para fazer isso funcionar.

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

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

Experimentar:

sudo usermod -a -G groupName userName
  • O -a (acrescentar) switch é essencial. Caso contrário, o Usuário será removido de qualquer grupo, não na lista.

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

Em geral (para a GUI ou para processos já em execução, etc.), usuario será necessário sair e fazer login novamente para ver seu novo grupo adicionado. Para a sessão shell atual, você pode usar newgrp:

newgrp groupName
  • newgrp adiciona o grupo à sessão shell atual.

Adicionar um usuário a um grupo:

sudo adduser user group

Removendo um usuário de um grupo:

sudo deluser user group

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.

Eu normalmente uso

sudo gpasswd -a myuser mygroup

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

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 este work-around:

$ sudo su -# su [userName]$ groups

Explicacao:

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

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

Antes:

$ groupsuserName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd

Apos:

$ groupsuserName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd docker
sudo usermod -a -G groupName userName

vai funcionar muito bem, mas eu tive que reiniciar inteiramente, basta sair e fazer login novamente não fez o trabalho...

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

sudo usermod -a -G grupo usuario

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

Para adicionar permanentemente um usuário a um grupo, execute este comando:

sudo usermod -a -G <groupname> <username>

Em seguida, faça logout e faça login novamente (ou reinicie, se necessário).

Explicacao:

O usermod comando irá modificar o /etc/group arquivo para listar o nome de usuário especificado na linha relevante para esse grupo. Se você correr grep <groupname> /etc/group, você deve ver seu nome de usuário na saída.

No Linux, cada processo é atribuído a um usuário e grupos, e todos os processos filhos herdam o Usuário e os grupos do processo pai. Portanto, para que essa alteração entre em vigor e propogate, você precisa fazer logout e fazer login novamente (em que ponto /etc/group é lido e usado). No Wayland, descobri que uma reinicialização completa é necessária.

Se você executar o comando groups, você pode ver se o processo atual tem os grupos esperados ou não.