Como excluir um usuário no Linux (e remover todos os rastros)
Excluir um usuário no Linux envolve mais do que você pensa. Se você for um administrador de sistema, você desejará limpar todos os vestígios da conta e seu acesso de seus sistemas. Mostraremos a você as etapas a serem seguidas.
Se você deseja apenas excluir uma conta de usuário de seu sistema e não está preocupado em encerrar os processos em execução e outras tarefas de limpeza, siga as etapas na seção “Excluindo a conta de usuário” abaixo. Você vai precisar do deluser
comando em distribuições baseadas em Debian e o userdel
comando em outras distribuições Linux.
Contas de usuário no Linux
Desde que os primeiros sistemas de compartilhamento de tempo apareceram no início dos anos 1960 e trouxeram com eles a capacidade de vários usuários trabalharem em um único computador, houve uma necessidade de isolar e compartimentar os arquivos e dados de cada usuário de todos os outros usuários. E assim as contas de usuário - e senhas - nasceram.
As contas de usuário têm uma sobrecarga administrativa. Eles precisam ser criados quando o usuário precisa acessar o computador pela primeira vez. Eles precisam ser removidos quando esse acesso não for mais necessário. No Linux, há uma sequência de etapas que devem ser seguidas para remover correta e metodicamente o usuário, seus arquivos e sua conta do computador.
Se você é o administrador do sistema, essa responsabilidade recai sobre você. Veja como fazer isso.
Nosso Cenário
Existem vários motivos pelos quais uma conta pode precisar ser excluída. Um membro da equipe pode estar mudando para uma equipe diferente ou saindo da empresa. A conta pode ter sido configurada para uma colaboração de curto prazo com um visitante de outra empresa. As equipes são comuns na academia, onde os projetos de pesquisa podem abranger departamentos, diferentes universidades e até entidades comerciais. Na conclusão do projeto, o administrador do sistema deve realizar a manutenção e remover contas desnecessárias.
O pior cenário é quando alguém sai escondido por causa de uma contravenção. Esses eventos geralmente acontecem de repente, com pouco aviso prévio. Isso dá ao administrador do sistema muito pouco tempo para planejar e uma urgência para bloquear, fechar e excluir a conta - com uma cópia dos arquivos do usuário em backup, caso sejam necessários para qualquer análise forense pós-fechamento.
Em nosso cenário, vamos fingir que um usuário, Eric, fez algo que justifica sua remoção imediata das instalações. Neste momento, ele não está ciente disso, ele ainda está trabalhando e conectado. Assim que você acenar para o segurança, ele será escoltado para fora do prédio.
Tudo pronto. Todos os olhos estão em você.
Verifique o Login
Vamos ver se ele realmente está conectado e, se estiver, com quantas sessões está trabalhando. O quem
o comando listará as sessões ativas.
quem
Eric está logado uma vez. Vamos ver quais processos ele está executando.
Revisão dos processos do usuário
Podemos usar o ps
comando para listar os processos que este usuário está executando. O -você
opção (usuário) nos permite dizer ps
para restringir sua saída aos processos em execução sob a propriedade dessa conta de usuário.
ps-u eric
Podemos ver os mesmos processos com mais informações usando o principal
comando. principal
também tem um -VOCÊ
(usuário) opção para restringir a saída aos processos pertencentes a um único usuário. Observe que, desta vez, é um “U” maiúsculo.
top -U eric
Podemos ver o uso de memória e CPU de cada tarefa e procurar rapidamente qualquer coisa com atividade suspeita. Estamos prestes a encerrar à força todos os seus processos, por isso é mais seguro reservar um momento para revisar rapidamente os processos e verificar e ter certeza de que outros usuários não serão incomodados quando você encerrar a conta do usuário Eric
Processos.
Não parece que ele está fazendo muito, apenas usandomenos
para ver um arquivo. Podemos prosseguir com segurança. Mas antes de encerrarmos seus processos, congelaremos a conta bloqueando a senha.
RELACIONADO:Como usar o comando ps para monitorar processos do Linux
Bloqueando a conta
Vamos bloquear a conta antes de encerrar os processos, porque quando encerrarmos os processos, o usuário será desconectado. Se já alteramos sua senha, ele não poderá fazer login novamente.
As senhas de usuário criptografadas são armazenadas no / etc / shadow
Arquivo. Você normalmente não se preocuparia com as próximas etapas, mas para que possa ver o que acontece no / etc / shadow
arquivo quando você bloquear a conta, faremos um pequeno desvio. Podemos usar o seguinte comando para olhar os primeiros dois campos da entrada para oEric
conta de usuário.
sudo awk -F: '/ eric / {print $ 1, $ 2}' / etc / shadow
O comando awk analisa campos de arquivos de texto e, opcionalmente, os manipula. Estamos usando o -F
(separador de campo) opção para contar awk
que o arquivo usa dois-pontos ” :
”Para separar os campos. Vamos pesquisar uma linha com o padrão “eric”. Para linhas correspondentes, imprimiremos o primeiro e o segundo campos. Estes são o nome da conta e a senha criptografada.
A entrada para a conta de usuário eric é impressa para nós.
Para bloquear a conta, usamos o senha
comando. Vamos usar o -eu
(bloquear) e passar o nome da conta do usuário a ser bloqueada.
sudo passwd -l eric
Se verificarmos o / etc / passwd
arquivo novamente, veremos o que aconteceu.
sudo awk -F: '/ eric / {print $ 1, $ 2}' / etc / shadow
Um ponto de exclamação foi adicionado ao início da senha criptografada. Não substitui o primeiro caractere, é apenas adicionado ao início da senha. Isso é tudo o que é necessário para evitar que um usuário consiga fazer login nessa conta.
Agora que impedimos o usuário de fazer login novamente, podemos encerrar seus processos e desconectá-lo.
Matando os Processos
Existem diferentes maneiras de eliminar os processos de um usuário, mas o comando mostrado aqui está amplamente disponível e é uma implementação mais moderna do que algumas das alternativas. O pkill
comando irá encontrar e matar processos. Estamos passando o sinal KILL e usando o -você
opção (usuário).
sudo pkill -KILL -u eric
Você retorna ao prompt de comando de uma forma decididamente anticlímax. Para ter certeza de que algo aconteceu, vamos verificar quem
novamente:
quem
Sua sessão acabou. Ele foi desconectado e seus processos foram interrompidos. Isso eliminou um pouco da urgência da situação. Agora podemos relaxar um pouco e continuar com o resto da limpeza enquanto o segurança dá uma caminhada até a mesa de Eric.
RELACIONADO:Como interromper processos do terminal Linux
Arquivando o diretório inicial do usuário
Não está fora de questão que, em um cenário como este, o acesso aos arquivos do usuário será necessário no futuro. Tanto como parte de uma investigação ou simplesmente porque sua substituição pode precisar consultar o trabalho de seu antecessor. Vamos usar o alcatrão
comando para arquivar todo o diretório inicial.
As opções que estamos usando são:
- c: Crie um arquivo compactado.
- f: Use o nome do arquivo especificado para o nome do arquivo.
- j: Use compactação bzip2.
- v: Fornece saída detalhada à medida que o arquivo é criado.
sudo tar cfjv eric-20200820.tar.bz / home / eric
Uma grande quantidade de saída de tela irá rolar na janela do terminal. Para verificar se o arquivo foi criado, use o ls
comando. Estamos usando o -eu
(formato longo) e -h
opções (legíveis por humanos).
ls -lh eric-20200802.tar.bz
Um arquivo de 722 MB foi criado. Isso pode ser copiado em algum lugar seguro para revisão posterior.
Removendo tarefas cron
É melhor verificar se há algum cron
trabalhos agendados para a conta do usuário Eric
. UMA cron
job é um comando disparado em horários ou intervalos especificados. Podemos verificar se há algum cron
trabalhos agendados para esta conta de usuário usando ls
:
sudo ls -lh / var / spool / cron / crontabs / eric
Se houver alguma coisa neste local, significa que há cron
trabalhos enfileirados para essa conta de usuário. Podemos excluí-los com este crontab
comando. O -r
(remover) irá remover os trabalhos, e o -você
(usuário) opção diz crontab
cujos trabalhos remover.
sudo crontab -r -u eric
Os trabalhos são excluídos silenciosamente. Pelo que sabemos, se Eric suspeitasse que estava para ser despejado, ele poderia ter agendado um trabalho malicioso. Esta etapa é a prática recomendada.
Removendo trabalhos de impressão
Talvez o usuário tenha trabalhos de impressão pendentes? Só para ter certeza, podemos limpar a fila de impressão de todos os trabalhos pertencentes à conta do usuário Eric
. O lprm
comando remove trabalhos da fila de impressão. O -VOCÊ
A opção (nome de usuário) permite remover trabalhos pertencentes à conta de usuário nomeada:
lprm -U eric
Os trabalhos são removidos e você retorna à linha de comando.
Excluindo a conta do usuário
Já fizemos backup dos arquivos do / home / eric /
diretório, então podemos ir em frente e excluir a conta do usuário e excluir o / home / eric /
diretório ao mesmo tempo.
O comando a ser usado depende de qual distribuição do Linux você está usando. Para distribuições Linux baseadas em Debian, o comando é deluser
, e para o resto do mundo Linux, é userdel
.
Na verdade, no Ubuntu ambos os comandos estão disponíveis. Eu meio que esperava que um fosse um alias do outro, mas eles são binários distintos.
tipo deluser
digite userdel
Embora ambos estejam disponíveis, a recomendação é usar deluser
em distribuições derivadas do Debian:
“userdel
é um utilitário de baixo nível para remover usuários. No Debian, os administradores geralmente devem usar deluser
(8) em vez disso. ”
Isso é claro o suficiente, então o comando a ser usado neste computador Ubuntu é deluser
. Como também queremos que seu diretório inicial seja removido, estamos usando o --remove-home
bandeira:
sudo deluser --remove-home eric
O comando a ser usado para distribuições não-Debian é userdel
, com o --remover
bandeira:
sudo userdel --remove eric
Todos os vestígios de conta de usuário Eric
foram apagados. Podemos verificar se o / home / eric /
diretório foi removido:
ls / home
O Eric
grupo também foi removido porque a conta do usuário Eric
foi a única entrada nele. Podemos verificar isso facilmente canalizando o conteúdo de / etc / group
Através dos grep
:
sudo less / etc / group | grep eric
É um embrulho
Eric, por seus pecados, se foi. A segurança ainda está acompanhando-o para fora do prédio e você já protegeu e arquivou seus arquivos, excluiu sua conta e limpou o sistema de todos os resquícios.
A precisão sempre supera a velocidade. Certifique-se de considerar cada etapa antes de executá-la. Você não quer que alguém vá até sua mesa e diga "Não, o outro Eric".