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:
- 15 exemplos de comando “useradd” para gerenciar contas de usuário no Linux
- 15 exemplos de comando “usermod” para alterar/modificar nomes de contas de usuário no Linux
- 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.