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
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)
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ê.
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:)