Trocando a senha do usuário e enviando-a por email

22 de novembro de 2009

A informação, cada vez mais, é o bem mais valioso que temos, e pensando no lado da tecnologia, informação é algo muito mais valioso. Nós temos geralmente temos “preguiça” de realizar determinadas tarefas e dependendo da tarefa a ser realizada é desejável que seja automatizada. Já temos milhões de coisas para lembrar e realizar, quanto menos coisas dependerem de nós, humanos, para ter controle, creio eu seja melhor.

Foi pensando nisso que resolvi escrever um script em shell que tem o objetivo de trocar a senha do ou dos servidores de forma automática e enviar a mesma para um determinado email. Quando precisar acessar o servidor, basta acessar o email e pegar a última senha que foi enviada.
Esse script gera uma senha randômica contendo letras e números com quantidades de caracteres configuráveis como outras coisas. O script em si faz apenas isso, a parte de quantas vezes a nova senha gerada será enviada por email, pode ser determinada pelo cron(Um agendador de aplicativos).

Abaixo segue uma imagem contendo uma mensagem que foi enviada com a senha. Todo o assunto que aparece na imagem como o seu conteúdo é editável.

01

E abaixo segue o email aberto contendo, como exemplo, o usuário “bruna” e sua senha gerada com 17 caracteres.

02

Clique aqui para baixar o script.

Para configurar o script leia o arquivo leia.txt e o arquivo troca-senha.conf


Arquivo de configuração:

# Email para aonde a senha será enviada
EMAIL="seu@email.com"

# Assunto da mensagem.
ASSUNTO="Senha do Servidor"

# Nome ou número da máquina na rede.
MAQUINA=$(uname -n)

# Nome do usuário
USUARIO="usuario"

# Diretório que irá armazenar o arquivo de senha
DIR="/tmp"

# Quantidade de Caracteres que a nova senha terá
QUANTC="10"

# Formato da data
DATA=`date "+%T - %d/%m/%Y"`

Execução do script:
# Chama o arquivo de configuração
source /etc/troca-senha.conf

# Verifica se o arquivo passwd existe e o remove.
[ -e /etc/.passwd.txt ] && rm -f /tmp/.passwd.txt

# Gera a nova senha
mcookie | cut -c1-$QUANTC | tee -a $DIR/.passwd.txt

# Atribui a senha gerada ao usuário espscificado
PASSWORD="$(>$DIR/.passwd.txt

# Envia a senha para o email determinado
mpack -s "$ASSUNTO, Máquina: $MAQUINA - $DATA" $DIR/.passwd.txt $EMAIL

# Remove vestígios do mpack
rm -f /tmp/mpack*

# Remove o arquivo da senha criada anteriormente
rm -f $DIR/.passwd.txt

Agradecimentos a Luciano Martini pelas dicas em shellscrip.