Como eu removo um usuário de um grupo?

289

Qual comando devo usar para remover um usuário de um grupo no Debian?

Ao adicionar um usuário a um grupo, isso pode ser feito com:

usermod -a -G group user

No entanto, não consegui encontrar um comando semelhante (aceitando um grupo e um usuário como argumentos) para remover o usuário do grupo. O mais perto que consegui é:

usermod -G all,existing,groups,except,for,group user

Existe um comando como usermod OPTION group user com OPTION uma opção para fazer com que usermod (ou um programa semelhante) remova o usuário do grupo?

    
por Lekensteyn 20.01.2012 / 17:29

11 respostas

337

Você pode usar gpasswd :

# gpasswd -d user group

então a nova configuração do grupo será atribuída no próximo login, pelo menos no Debian. Se o usuário estiver logado, os efeitos do comando não são vistos imediatamente.

    
por 20.01.2012 / 17:40
148

No Debian, o pacote adduser contém um programa deluser que remove um usuário de um grupo se você passar ambos como argumentos:

deluser user group

Se a sua distribuição não tiver adduser , você poderá editar /etc/group e /etc/gshadow manualmente.

vigr
vigr -s
    
por 20.01.2012 / 17:44
56
usermod -G "" username

remove todos os grupos secundários / suplementares do nome de usuário , deixando-os como membros apenas do grupo principal. isso funcionou no Solaris 5.9

    
por 05.05.2013 / 01:56
10

Esta é a abordagem da "velha escola" ...

A maioria dos sistemas * nix mantêm as informações do grupo em um arquivo de texto simples /etc/group , onde

  • cada linha contém os campos

    • group_name
    • senha
    • GID e
    • user_list

    delimitado pelo caractere : .

  • o campo user_list é uma lista de nomes de usuários, separados por vírgulas.

Agora, suponha que você queira remover um usuário chamado thisuser de um grupo chamado thatgroup . Comece fazendo o backup de /etc/group , então use o editor de sua preferência com su privilégios para editar o arquivo /etc/group e remova a referência thisuser da entrada de linha thatgroup , por exemplo,

a linha original é algo assim:

thatgroup:x:1274:someuser,thisuser,anotheruser

após a edição deve ser deixado assim:

thatgroup:x:1274:someuser,anotheruser

Como com todas as outras respostas, isso não afetará a (s) sessão (ões) atual (ais) do usuário, se houver (ou seja, se o usuário estiver logado no momento). A alteração entrará em vigor na próxima vez que o usuário fizer login.

    
por 10.12.2014 / 11:59
3

Você pode usar o comando abaixo nas distribuições do SUSE (e, aparentemente, nenhum outro ).

usermod -R group user_name

em que group é o grupo do qual você deseja remover o usuário e user_name o usuário que você deseja remover do grupo. Por exemplo,

usermod -R root imnottheroot
    
por 17.10.2013 / 10:58
1

Considere:

  • nome de usuário: abc2
  • nome do grupo: newgroup11

  • Tarefa: remover o usuário abc2 do grupo newgroup11

[root@home1 ~]# groups abc2
abc2 : abc2
[root@home1 ~]# usermod -G newgroup11 abc2
[root@home1 ~]# groups abc2
abc2 : abc2 newgroup11
[root@home1 ~]# usermod -G newgroup11 abc2
[root@home1 ~]# usermod -G abc2 abc2
[root@home1 ~]# groups abc2
abc2 : abc2

** Por favor, corrija-me se eu estiver errado. **

    
por 17.01.2015 / 22:19
1

Suponha que username = student e groupname = research , portanto, para remover student user de research group, é necessário fazer o seguinte:

gpasswd -d student research
    
por 11.04.2018 / 10:11
0

Para continuar usando o usermod em uma distro (como o Fedora) que não possui uma opção remove, onde user = bob e group = deletethisgroup, o comando seria:

usermod -G 'cat /etc/group |  grep bob | grep -v deletethisgroup | cut -d ':' -f 1 | tr '\n' ',' | sed 's/,$//'' bob

Os pipes (1) obtêm todas as entradas do grupo a que o usuário pertence, (2) retira aquele que precisa ser removido, (3) retorna a primeira coluna (nome do grupo), substitui a nova por vírgula e remove a vírgula final.

Claro, você poderia colocar tudo isso em um script bash que leva o usuário e o grupo a serem excluídos como parâmetros. awk poderia ser usado para encurtar o final, mas eu queria ficar com grep, cut, tr e sed.

    
por 25.03.2016 / 22:02
0

Você pode remover o usuário do grupo executando o comando usermod sem uma opção. Exemplo, executando "usermod -G group1 username" adicionará o usuário ao group1 e o removerá de qualquer outro grupo onde ele estiver. Lembre-se, você pode manter o usuário em vários grupos, listando os nomes dos grupos, separados por vírgula.

    
por 21.11.2018 / 18:56
-1
pw groupmod "groupname|gid" -d "username|uid"

Uma solução se você estiver usando o CSH, por qualquer motivo.

    
por 15.01.2014 / 10:06
-1

Para remover um usuário de um grupo, o gpasswd é o melhor utilitário para este IMO.

Exemplo de comando

:

sudo gpasswd -d group user

* Ajuda Info *

Usage: gpasswd [option] GROUP

Options:
  -a, --add USER                add USER to GROUP
  -d, --delete USER             remove USER from GROUP
  -h, --help                    display this help message and exit
  -Q, --root CHROOT_DIR         directory to chroot into
  -r, --delete-password         remove the GROUP's password
  -R, --restrict                restrict access to GROUP to its members
  -M, --members USER,...        set the list of members of GROUP
  -A, --administrators ADMIN,...
                                set the list of administrators for GROUP
Except for the -A and -M options, the options cannot be combined.
    
por 19.01.2018 / 20:40

Tags