Como remover um usuário de um grupo?

108

Adicionei uma conta de usuário ao admingrupo e descobri que adicionei um usuário errado. Então agora eu tenho que remover a conta do admingrupo.

Como posso remover uma conta de um grupo sem excluir o usuário?

Eonil
fonte

Respostas:

144

A resposta do Portablejim é precisa, mas perigosa - se você digitar algo, seu sistema poderá ser inutilizado, especialmente se você alterar o grupo de administradores de maneira inadequada. Se você precisar editar o arquivo de grupos, use os comandos vipw -gou vigr, que verificam a sintaxe antes de salvar. Mesmo assim, existem maneiras melhores.

Em uma linha de comando, a que você provavelmente deseja usar é a seguinte (como root):

deluser <username> <groupname>

Isso removerá o usuário especificado do grupo especificado. Você deve se conectar novamente para ver o efeito. Não excluirá o usuário, ou o grupo, apenas a associação. Também existem maneiras de fazer isso com o usermodcomando, mas é mais difícil de usar, pois você precisa substituir a lista inteira de grupos de um usuário para remover um único grupo. O gpasswdcomando também é capaz de fazer isso (como aponta a sagarchalise), mas é principalmente preterido. Como sempre, consulte as páginas do manual para mais detalhes.

zanfur
fonte
9
gpasswdnão está obsoleto. Seu objetivo é administrar / etc / group e / etc / gshadow. Além disso, embora seu método funcione e seja mencionado na página do manual deluser, é um pouco arriscado. Se você pressionar Enter acidentalmente antes de digitar o nome do grupo, removerá o usuário. Espero que você se lembre do seu UID para poder adicioná-lo rapidamente. Seria mais seguro usar o gpasswd, projetado para esse fim.
Starfish
1
Eu pensei sobre esse risco também. Eu acho que você sempre pode iniciar esse comando com um '#', pressionar enter e executá-lo novamente, removendo o primeiro caractere.
ezequiel-garzon
"Você deve se conectar novamente para ver o efeito." ... ou você pode simplesmente escrever: 'cat / etc / group'
josh.thomson 5/14
Eu encontrei deluserao pesquisar as páginas de manual (aqui com o Ubuntu 18 em 2018), mas a primeira linha da página de manual afirma: "remover um usuário ou grupo do sistema", então segui em frente na minha pesquisa. Claramente, a página de manual precisa ser redigida melhor.
tim.rohrer
Encontrei essa resposta em um artigo e imediatamente os pelos da minha nuca se levantaram. Não sei por que tantas pessoas gostam e aceitam essa resposta, mas é um IMHO perigoso; esp como raiz. A resposta de Anthony Geoghegan é a solução adequada; assim como Starfish diz também.
46

Você consegue fazer isso:

sudo gpasswd -d username group

Você também deve verificar o manual do gpasswd

sagarchalise
fonte
4
Uma vantagem gpasswdé que é mais multiplataforma e também funciona em distribuições baseadas na Red Hat.
Anthony Geoghegan
Esta é a resposta certa. Se ao menos chegasse ao topo.
Você pode editar sua resposta para explicar o que a bandeira -d faz? (De qualquer forma, votei nela como a melhor resposta! Obrigado!)
Aerendir
2

A maneira mais fácil e segura:

sudo -H gedit /etc/group

e exclua-o manualmente.

vanbran
fonte
Eu vejo esse aqui enfurecido. ssh:x:118: Qual é o significado do número 118aqui?
precisa saber é o seguinte
definitivamente NÃO é a maneira mais segura!
callmebob
2

Veja a resposta de zanfur.

Edite o /etc/grouparquivo como root (ou seja gksudo gedit /etc/group) e remova o nome de usuário da linha que começa com 'admin'

ie

...
admin:x:120:adminuser,adminuser2,userthatshouldnotbeadmin
...

torna-se

...
admin:x:120:adminuser,adminuser2
...

Esteja avisado, erros de digitação no arquivo podem danificar seu sistema.

Portablejim
fonte
11
Não aconselhe editar esses arquivos do sistema manualmente. Caso você estrague seu sistema, pode ficar inacessível.
Gdvdijk
Ou pelo menos faça backup deles primeiro. ( Informações relacionadas. )
Eliah Kagan
2
Eu acho que você deve postar isso, pois é uma visão valiosa sobre como o Linux funciona. No entanto, deve incluir um aviso de que há uma maneira muito mais segura
Freedom_Ben