Pesquisa de site

Como excluir contas de usuário com diretório inicial no Linux


Neste tutorial, apresentarei as etapas que você pode usar para excluir a conta de um usuário junto com seu diretório inicial em um sistema Linux.

Para saber como criar contas de usuário e gerenciá-las em sistemas Linux, leia os seguintes artigos nos links abaixo:

  1. 15 exemplos de comando “useradd” para gerenciar contas de usuário no Linux
  2. 15 exemplos de comando “usermod” para alterar/modificar nomes de contas de usuário no Linux
  3. Como gerenciar usuários e grupos com permissões de arquivo no Linux

Como um administrador de sistema no Linux, você pode ter que remover a conta do usuário depois de algum tempo, quando uma conta de usuário pode ficar inativa por muito tempo, ou o usuário pode deixar a organização ou empresa ou por qualquer outro motivo.

Ao remover contas de usuário em um sistema Linux, também é importante remover seu diretório inicial para liberar espaço nos dispositivos de armazenamento para novos usuários do sistema ou outros serviços.

Excluindo/removendo uma conta de usuário com seu diretório inicial

1. Para fins de demonstração, primeiro começarei criando duas contas de usuário em meu sistema, que é o usuário tecmint e o usuário linuxsay com seus diretórios pessoais. /home/tecmint e /home/linusay respectivamente usando o comando adduser.

adduser tecmint
passwd tecmint

adduser linuxsay
passwd linuxsay

Na captura de tela acima, usei o comando adduser para criar contas de usuário no Linux. Você também pode usar o comando useradd, ambos são iguais e fazem o mesmo trabalho.

2. Vamos agora avançar para ver como excluir ou remover contas de usuário no Linux usando deluser (para Debian e seus derivados) e userdel ( Para sistemas baseados em RedHat/CentOS).

As diretivas dentro do arquivo de configuração para os comandos deluser e userdel determinam como ele irá lidar com todos os arquivos e diretórios do usuário quando você executar o comando.

Vejamos o arquivo de configuração do comando deluser que é /etc/deluser.conf em derivados do Debian como Ubuntu, Kali, Mint e para RHEL/CentOS/Fedora usuários, você pode visualizar os arquivos /etc/login.defs.

Os valores nesta configuração são padrão e podem ser alterados conforme suas necessidades.

vi /etc/deluser.conf         [On Debian and its derivatives]
vi /etc/login.defs           [On RedHat/CentOS based systems]

3. Para excluir um usuário com diretório inicial, você pode usar o método avançado seguindo estas etapas em sua máquina servidor Linux. Quando os usuários estão conectados ao servidor, eles usam serviços e executam processos diferentes. É importante observar que o usuário só pode ser excluído efetivamente quando não estiver conectado ao servidor.

Bloquear contas de usuário no Linux

Comece bloqueando a senha da conta do usuário para que não haja acesso do usuário ao sistema. Isso impedirá que um usuário execute processos no sistema.

O comando passwd incluindo a opção –lock pode ajudá-lo a conseguir isso:

# passwd --lock tecmint

Locking password for user tecmint.
passwd: Success

Encontre e elimine todos os processos em execução do usuário

Em seguida, descubra todos os processos em execução da conta do usuário e elimine-os, determinando os PIDs (IDs de processo) dos processos de propriedade do usuário usando:

# pgrep -u tecmint

1947
1959
2091
2094
2095
2168
2175
2179
2183
2188
2190
2202
2207
2212
2214

Em seguida, você pode listar os processos em termos de nome de usuário, PIDs, PPIDs (IDs de processo pai), terminal usado, estado do processo, caminho de comando em um estilo de formatação completo com a ajuda do seguinte comando, conforme mostrado:

# ps -f --pid $(pgrep -u tecmint)

UID        PID  PPID  C STIME TTY      STAT   TIME CMD
tecmint   1947     1  0 10:49 ?        SLl    0:00 /usr/bin/gnome-keyring-daemon --daemonize --login
tecmint   1959  1280  0 10:49 ?        Ssl    0:00 mate-session
tecmint   2091  1959  0 10:49 ?        Ss     0:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session /usr/bin/im-launch mate-session
tecmint   2094     1  0 10:49 ?        S      0:00 /usr/bin/dbus-launch --exit-with-session /usr/bin/im-launch mate-session
tecmint   2095     1  0 10:49 ?        Ss     0:00 //bin/dbus-daemon --fork --print-pid 6 --print-address 9 --session
tecmint   2168     1  0 10:49 ?        Sl     0:00 /usr/lib/dconf/dconf-service
tecmint   2175  1959  0 10:49 ?        Sl     0:02 /usr/bin/mate-settings-daemon
tecmint   2179  1959  0 10:49 ?        Sl     0:47 marco
tecmint   2183     1  0 10:49 ?        Sl     0:00 /usr/lib/gvfs/gvfsd
tecmint   2188  1959  0 10:49 ?        Sl     0:00 mate-panel
tecmint   2190     1  0 10:49 ?        Sl     0:00 /usr/lib/gvfs/gvfsd-fuse /run/user/1000/gvfs -f -o big_writes
tecmint   2202     1  0 10:49 ?        S<l    0:20 /usr/bin/pulseaudio --start --log-target=syslog
tecmint   2207  1959  0 10:49 ?        S      0:00 /bin/sh /usr/bin/startcaja
tecmint   2212     1  0 10:49 ?        Sl     0:03 /usr/bin/python /usr/lib/linuxmint/mintMenu/mintMenu.py
tecmint   2214     1  0 10:49 ?        Sl     0:11 /usr/lib/mate-panel/wnck-applet
....

Depois de encontrar todos os processos em execução do usuário, você pode usar o comando killall para encerrar esses processos em execução, conforme mostrado.

killall -9 -u tecmint

O -9 é o número do sinal SIGKILL ou use -KILL em vez de -9 e -u define o nome de usuário.

Nota: Em versões recentes das versões RedHat/CentOS 7.x e Fedora 21+, você receberá mensagens de erro como:

-bash: killall: command not found

Para corrigir esse erro, você precisa instalar o pacote psmisc conforme mostrado:

yum install psmisc       [On RedHat/CentOS 7.x]
dnf install psmisc       [On Fedora 21+ versions]

Faça backup dos dados do usuário antes de excluir

Em seguida, você pode fazer backup dos arquivos dos usuários. Isso pode ser opcional, mas é recomendado para uso futuro quando surgir a necessidade de revisar os detalhes e arquivos da conta do usuário.

Usei os utilitários tar para criar um backup do diretório inicial dos usuários da seguinte maneira:

tar jcvf /user-backups/tecmint-home-directory-backup.tar.bz2 /home/tecmint

Excluir/remover conta de usuário e arquivos

Agora você pode remover o usuário com segurança junto com seu diretório inicial, para remover todos os arquivos do usuário no sistema use a opção --remove-all-files no comando abaixo:

deluser --remove-home tecmint      [On Debian and its derivatives]
userdel --remove tecmint           [On RedHat/CentOS based systems]

Resumo

Isso tem tudo a ver com a remoção do usuário e de seu diretório inicial de um sistema Linux. Acredito que o guia seja fácil de seguir, mas você pode expressar uma preocupação ou adicionar mais ideias deixando um comentário.