Como gerar senhas aleatórias no Linux com o mkpasswd! Senhas individuais ou em lote!

como-gerar-senhas-automaticas-no-linux-com-o-mkpasswd

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. No entanto, imagine o caso de universidades ou escolas que recebem centenas ou mesmo milhares de novos alunos a cada semestre.
O Linux possui um utilitário feito sob medida para esta situação chamado mkpasswd. O comando mkpasswd, quando invocado sem argumentos, retorna uma senha. Mas, hoje vamos ver como gerar senhas automáticas no Linux.

Se você está querendo aprender ainda mais sobre o Terminal Linux, temos dois artigos importantes:

Comando Linux mkpasswd

Como dito antes, o comando sozinho vai gerar uma senha única. Com este comando, as senhas são aleatórias e consideradas forte. O comando mkpasswd está atrelado ao pacote Whois. Assim, é preciso instála-lo antes de executar o comando.

No Ubuntu, Linux Mint, Debian e derivados execute:

Terminal
sudo apt install whois

No Fedora e derivados, execute:

Terminal
sudo dnf install whois

No openSUSE e derivados:

Terminal
sudo zypper install whois

Gerando senha forte e única no Linux

Agora com o Whois instalado, vamos para o comando. Como dito antes, não tem segredo.

Terminal
mkpasswd

Como criar senhas em lote no Linux com o mkpasswd

Agora, imagine que você esteja criando 200 usuários novos. No entanto, precisa gerar a senha para cada um deles. Mas, se for fazer isso apenas com o comando para senha única, demorará uma eternidade. Desta forma, vamos recorrer a um shell script simples para criar quantas contas forem necessárias. Além disso, ele vai atribuir a cada usuário uma senha. Contudo, 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
[email protected]

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

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

Explicando a geração de senha em lote com o mkpasswd

O processo acima cria a conta do novo usuário. Depois, atribui-lhe uma senha inicial de acesso e imprime, na impressora padrão do sistema, uma carta a ser entregue ao novo usuário. Assim, os comandos useradd e mkpasswd aceitam diversas opções, que podem ser usadas para especificar com mais precisão o ambiente do usuário.

Mas, para simplicidade de entendimento, os comandos empregados na shell script acima utilizaram os valores padrão. Assim, saiba que 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. Além disso, outra recomendação importante é que todas as senhas criadas por este método sejam expiradas. E com isso, requeremos do usuário a sua troca quando fizer o primeiro login.