del_user - cuida dos 4 passos para remover um usuário do sistema
Publicado por Pedro Fernandes (última atualização em 18/03/2020)
[ Hits: 1.839 ]
Homepage: https://github.com/PedroF37
Cuida dos 4 passos necessários para remover um usuário do sistema.
passo 1 - pegar o nome correto do usuário
passo 2 - parar os processos que pertencem ao usuário
passo 3 - determinar todos os arquivos no sistema que pertencem ao usuário
passo 4 - deletar a conta do usuário
Tem que ser root.
#!/bin/bash
#
#
# ------------------------------------------------------------- #
#
#
# del_user Cuida dos 4 passos precisos
# para remover um usuário do
# sistema.
#
# passo 1 - pegar o nome correto do usuário
# passo 2 - parar os processos que pertencem
# ao usuáruio
# passo 3 - determinar todos os arquivos no
# sistema que pertencem ao usuário
# passo 4 - deletar a conta do usuário
#
#
# autor pedro fernandes
# email pedrobfernandes@protonmail.com
#
#
# ------------------------------------------------------------- #
#
#
# Parametros
#
#
REGISTRO=/etc/passwd
#
#
# ------------------------------------------------------------- #
#
#
# Funcoes
#
#
function rem_process {
#
#
clear
echo "Parando processos..."
#
#
local process="$(ps -u ${correto%%:*} --no-heading | \
gawk '{print $1}')"
#
#
for num in $(echo "$process")
do
kill -9 $num
done
#
#
echo "Processos parados..."
echo "Prosseguindo..."
}
#
#
function find_process {
#
#
processos=$(ps -u ${correto%%:*})
num_processos=$(echo "$processos" | wc -l)
#
#
clear
if [ -z "$processos" ]
then
echo "Usuário não tem processos ativos."
else
echo "Encontramos ${num_processos} processos ativos."
echo "Processos são os seguintes:"
sleep 2
clear
echo "$processos"
echo
echo -n "Deseja parar estes processos: [s\n]: "
read escolha
#
#
case $escolha in
s|S|sim|SIM|Sim|sIm|SIm|sIM)
rem_process
;;
*)
echo "Parando o script..."
exit
;;
esac
fi
}
#
#
function correct_account {
#
#
correto=$(grep -w $RESPOSTA $REGISTRO)
#
#
if [ -z $correto ]
then
clear
echo "Usuário[a] $RESPOSTA não existe" >&2
echo "ou já foi removido[a] do sistema." >&2
echo "Abortando o script..."
exit 1
else
clear
echo -e "Foi encontrado o seguinte registro em $REGISTRO:\n"
echo -e "${correto}\n"
echo -n "Confirma que o nome está correto? [s\n]: "
read confirma
#
#
case $confirma in
s|S|sim|SIM|Sim|sIm|SIm|sIM)
find_process
;;
*)
echo "Abortando o script..."
exit
;;
esac
fi
}
#
#
function pega_resposta {
#
#
local count=0
#
#
clear
while [ -z $RESPOSTA ]
do
count=$(($count + 1))
#
#
case $count in
2)
echo
echo "Por favor responda..."
echo
;;
3)
echo
echo "Mais uma tentativa."
echo "Responda á pergunta..."
echo
;;
4)
echo
echo "Uma vez que se recusa a responder"
echo "irei abortar o script."
echo
exit
;;
esac
#
#
echo "Digite o nome do usuário[a]"
echo -n "que deseja remover do sistema: "
read -t 60 RESPOSTA
done
#
#
if [ -n $RESPOSTA ]
then
correct_account
fi
}
#
#
# ------------------------------------------------------------- #
#
#
# Principal
#
#
if [ $UID -ne 0 ]
then
echo "${0##*/}: tem que ser root para rodar o script" >&2
exit 1
fi
#
#
pega_resposta
#
#
echo -e "Criando relatório de arquivos pertencentes a ${correto%%:*}\n"
#
#
echo "É recomendado fazer backup/arquivamento"
echo -e "e de seguida fazer uma de duas coisas:\n"
echo " 1) apagar os arquivos"
echo -e " 2) mudar a propriedade dos arquivos para uma conta atual\n"
#
#
Report_Date=$(date +%d%m%y)
Report_File="${correto%%:*}_arquivos_${Report_Date}"
#
#
echo "Aguarde enqunto procuramos"
echo "por arquivos pertencentes"
echo -e "ao usuário[a]....\n"
#
#
find / -user "${correto%%:*}" > $Report_File 2> /dev/null
#
#
echo "Relatorio completo."
echo "Nome do relatório: $Report_File"
echo -e "Local do relatório: $PWD\n\n"
#
#
userdel "${correto%%:*}"
#
#
echo "Conta de usuário[a], ${correto%%:*}, foi removida."
#
#
exit
Monitorar pppe-server, radius e proxy (estilo fastfood)
Montando compartilhamentos Webdav no Linux
Biblioteca de cores para o Bash
Instalador do pacote ubuntu-restricted-extras
Idesk (Wizard para criação de ícones)
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









