Logo Dicas-L
Dicas-L em RSS
Home Histórico Bookmarks Artigos Cursos Newsletters L.I.C. Rau-Tu FAQ Educação Galeria de Imagens Fale Conosco

Senhas -- Geração automática

De tempos em tempos administradores de sistemas precisam criar um grande número de contas. Criá-las manualmente, além de ineficiente e propenso a erros, pode demorar uma eternidade. Imagine o caso de universidades ou escolas que recebem centenas ou mesmo milhares de novos alunos a cada semestre.

Sistemas Linux possui um utilitário feito sob medida para esta situação chamado mkpasswd.

O comando mkpasswd, quando invocado sem argumentos, retorna uma senha:

# mkpasswd
9nn7sJJvj

Uma shell script simples para criar quantas contas forem necessárias e que atribui a cada usuário uma senha pode ser criada facilmente. Para efeito de nosso exemplo considere que a lista dos usuários a ser criados encontra-se no arquivo novos-usuarios.txt.

#!/bin/bash
for usuario in `cat novos-usuarios.txt`
do
useradd $usuario
mkpasswd $usuario > $usuario.senha
# Criação da carta ao usuário, contendo
# sua senha, normas de uso e recomenda-
# ções gerais
cat > $usuario.carta << EOF
Prezado Usuário(a),

Conforme sua solicitação, foi criada uma conta em nossos computadores
centrais com as seguintes especificações:

computador: computador.dominio.com.br
identificação: $usuario
senha: `echo $usuario.senha`

Solicitamos a memorização das informações contidas neste documento e sua
destruição em seguida devido ao caráter confidencial destas informações.

Realize a troca de sua senha já em seu primeiro acesso para algo que
lhe seja mais fácil de lembrar.

Lembre-se, nunca divulgue a sua senha de acesso para ninguém. A
segurança de seus dados e do sistema como um todo dependem de você.

Para maiores informações consulte o endereço
http://www.dominio.com.br/suporte ou envie uma mensagem para
suporte@dominio.com.br

Atenciosamente, Suporte Técnico - Centro de Computação

EOF
lpr $usuario.carta
rm $usuario.*
done

O processo acima cria a conta do novo usuário, atribui-lhe uma senha inicial de acesso e imprime, na impressora padrão do sistema, uma carta a ser entregue ao novo usuário.

Os comandos useradd e mkpasswd aceitam diversas opções, que podem ser usadas para especificar com mais precisão o ambiente do usuário. Para simplicidade de entendimento, os comandos empregados na shell script acima utilizaram os valores padrão. Após o processamento todos os arquivos temporários são removidos.

Problemas acontecem. Recomendamos sempre que se gere um backup dos arquivos envolvidos /etc/passwd, /etc/shadow e /etc/group) antes da execução deste script.

Outra recomendação importante é que todas as senhas criadas por este método sejam expiradas, requerendo do usuário a sua troca quando do primeiro login.