excluir todos os usuários do grupo

0

No Ubuntu, como você exclui todos os usuários de um grupo usando a linha de comando do bash?

O grupo é chamado grp1 e está em / etc / group Não importa se o grupo real permanece ou não. Eu só quero que os membros desapareçam. (Qualquer usuário que seja membro desse grupo deve ser removido de / etc / passwd)

    
por american-ninja-warrior 02.01.2018 / 16:22

3 respostas

2

Primeiro, você encontra todos os arquivos pertencentes ao grupo e os atribui a um novo grupo, se assim desejar (provavelmente o melhor, mas não certo)

link ,

Você exclui o grupo por meio de sed sudo sed -i -e 's/group_to_remove/d' /etc/group

    
por Panther 02.01.2018 / 16:28
1

Existem tantos usuários que isso precisa ser automatizado? Essa é uma daquelas coisas em que o equilíbrio entre economizar alguns minutos e destruir completamente o sistema balança o caminho errado. Eu não iria automatizar isso a menos que estivéssemos falando sobre dezenas de usuários.

Se forem muitos, sugiro começar com a geração de uma lista dos usuários que você deseja remover:

grep -Po '^grp1:.*:.*:\K\w+' /etc/group > bad_users

Se isso ainda for demais para lidar, você poderá obtê-los fora de /etc/passwd , gerando um novo.

grep -vFf bad_users /etc/passwd > new_passwd

Revise (por exemplo, diff new_passwd /etc/passwd ) e, se gostar, mova o conteúdo. Ainda há uma quantidade de limpeza para fazer na parte de trás disso (diretórios de usuário, spools, etc) dependendo de quão substanciais os usuários eram, mas dada a variação lá, eu deixo isso para você.

    
por Oli 02.01.2018 / 16:45
-1

Digamos que o grupo gid seja 2000

Para excluir qualquer usuário cujo grupo principal esteja definido como 2000

awk -F: "(\==2000) { print \ }" /etc/passwd | sudo xargs userdel

alguns de vocês podem estar pirando agora vendo xargs e userdel juntos:)

    
por american-ninja-warrior 02.01.2018 / 16:50