Você pode excluir todos os usuários, mas as contas especificadas no Ubuntu?

2

Estou tentando encontrar uma maneira de excluir rapidamente todas as contas de usuário, exceto aquelas que especifico no Ubuntu. Existe uma boa maneira de fazer isso? Talvez um script bash que poderia fazer essa função? Eu procurei em volta e realmente não vi nada.

Estou fazendo isso para endurecer um sistema. Estou me preparando para assumir o controle para poder remover todos os usuários, exceto os que eu especificar. Existem vários usuários.

    
por Dylan 05.05.2014 / 02:05

1 resposta

2

Coloque os nomes das contas que você deseja manter, um nome por linha, no arquivo keepers e execute:

cut -d: -f1 /etc/passwd | grep -vFf keepers | while read name ; do deluser "$name" ; done

O texto acima usa cut para obter todos os nomes de usuário atuais de /etc/passwd . O comando grep -vFf keepers remove dessa lista todos os nomes, exceto os listados em keepers . Note que existem muitos usuários do sistema que você precisará manter, como root, daemon, sys, mail, lp, etc. O loop while del elimina cada nome.

deluser tem muitas opções. Veja man deluser .

Você pode querer fazer o backup de seus arquivos /etc/passwd , /etc/group e outros antes de fazer isso apenas para garantir.

Para os cautelosos, uma abordagem em duas etapas

O primeiro passo cria um arquivo com uma lista de todas as contas a serem removidas:

cut -d: -f1 /etc/passwd | grep -vFf keepers >goners

O arquivo goners deve ser cuidadosamente inspecionado para garantir que não haja contas importantes nele. Pode ser editado manualmente, se desejado. Então corra:

while read name ; do deluser "$name" ; done <goners
    
por 05.05.2014 / 02:14