Exclua todos os usuários de um grupo

2

Eu pesquiso uma maneira limpa para excluir todos os usuários do grupo 'sudo'. Em várias distribuições o usuário criado durante o processo de instalação tem direitos de sudo, eu não quero isso. Eu procuro por um método automatizado trabalhando para (quase) todas as situações.

Basicamente, quero esvaziar um grupo.

Para remover todos os usuários: GROUP=my_group; for u in $(getent group $GROUP | sed -e 's/^.*:.*:.*://' -e 's/,/ /g'); do echo gpasswd --delete $u $GROUP; done
Esta linha de comando funciona:
 1. se o grupo não existe  2. se o grupo estiver vazio
 3. se o grupo contiver um usuário
 4. se o grupo contiver vários usuários
Então está tudo bem. Mas é algo mais simples?

Outra maneira é excluir o grupo e recriá-lo. Feio?

    
por Gregory MOUSSAT 18.12.2012 / 20:16

2 respostas

3

Em geral, você não deve excluir um grupo, pois alguns arquivos podem pertencer a esse grupo, mas podem ser suficientes para o seu caso de uso de sudo específico.

Um exemplo mais geral é usar gpasswd (1) permite-lhe definir os membros de um grupo específico, pelo que deve ser suficiente para executar:

gpasswd sudo -M ''

Para executar somente isso, se o grupo sudo existir, você poderá combiná-lo com uma chamada getent, ou seja:

getent group sudo && gpasswd sudo -M ''
    
por 18.12.2012 / 20:35
0

Existe outra maneira mais simples com /usr/sbin/groupmems

groupmems -p -g group_to_clean

Todos os membros serão removidos do grupo.

Testado no CentOS.

    
por 11.06.2016 / 05:22