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.895 ]
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
Crie bash scripts "on-the-fly"
Sistema de Gestão de Protocolos em YAD
Reduz ou aumenta o tamanho da imagem
Nenhum comentário foi encontrado.
Como atualizar sua versão estável do Debian
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Script de montagem de chroot automatica
Atualizar Linux Mint 22.2 para 22.3 beta
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Conky, alerta de temperatura alta (14)
Instalação do cosmic no archlinux (1)
De volta para o futuro - ou melhor, para o presente (parte 2) (2)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (7)









