Gerador de senhas com Dialog
Publicado por Giovani Ferreira 20/09/2006
[ Hits: 10.073 ]
Homepage: http://jova2.worpress.com
Continuando meus estudos sobre Shell Script e Dialog, aperfeiçoei um script gerador de senhas criado anteriormente, agora ele conta com uma interface em Dialog muito legal.
#!/bin/bash #Script gerador de senhas, #Feito por Giovani Ferreira. #Criado com base na apostila e exemplos #de Aurélio Marinho Jargas. #Material disponivel em http://aurelio.net/shell/dialog/ # # # proxima=primeira # loop principal while : ; do # Aqui é identificada qual tela deve ser mostrada. # Em cada tela são definidas as variáveis 'anterior' # e 'proxima' # que definem os rumos da navegação. case "$proxima" in primeira) proxima=carac dialog \ --cr-wrap \ --sleep 4 \ --backtitle 'Gerador de Senhas' \ --title 'Script Gerador de Senhas' \ --infobox " Este é um script gerador de senhas de acordo com o comando mkpasswd. Feito por Giovani Ferreira. Navegação: <Proxima > Próxima Tela. <Anterior> Tela Anterior. Esc Sai do Programa. " 15 60 ;; carac) anterior=primeira proxima=numer carac=$(dialog --stdout \ --backtitle 'Gerador de Senhas' \ --ok-label 'Próximo' \ --cancel-label 'Anterior' \ --inputbox 'Informe quantos caracteres sua senha será composta:' 10 45) ;; numer) anterior=carac proxima=maius numer=$(dialog --stdout \ --backtitle 'Gerador de Senhas' \ --ok-label 'Próximo' \ --cancel-label 'Anterior' \ --inputbox 'Informe quantos números farão parte da senha:' 10 45) ;; maius) anterior=numer proxima=minus maius=$(dialog --stdout \ --backtitle 'Gerador de Senhas' \ --ok-label 'Próximo' \ --cancel-label 'Anterior' \ --inputbox 'Informe quantas letras MAIUSCULAS farão parte da senha:' 10 45) ;; minus) anterior=maius proxima=espec minus=$(dialog --stdout \ --backtitle 'Gerador de Senhas' \ --ok-label 'Próximo' \ --cancel-label 'Anterior' \ --inputbox 'Informe quantas letras minusculas farão parte da senha:' 10 45) ;; espec) anterior=minus proxima=final espec=$(dialog --stdout \ --backtitle 'Gerador de Senhas' \ --ok-label 'Próximo' \ --cancel-label 'Anterior' \ --inputbox 'Informe quantos carasteres especiais farão parte da senha:' 10 45) ;; final) if test $((numer+maius+minus+espec)) -gt $carac then proxima=carac dialog \ --cr-wrap \ --sleep 5 \ --backtitle 'Gerador de Senhas' \ --title 'Parâmetros invalidos:' \ --infobox " Impossivel criar a senha com: Números: $numer MAIUSCULAS: $maius Minusculas: $minus Especiais: $espec Em apenas $carac caracteres. Aguarde que o programa será reiniciado... " 15 50 else s1=$( mkpasswd -l $carac -d $numer -C $maius -c $minus -s $espec ) s2=$( mkpasswd -l $carac -d $numer -C $maius -c $minus -s $espec ) s3=$( mkpasswd -l $carac -d $numer -C $maius -c $minus -s $espec ) proxima=reinicio dialog \ --cr-wrap \ --sleep 5 \ --backtitle 'Gerador de Senhas' \ --title 'Sugestões de senhas!' \ --infobox " Três sugestões de senhas de acordo com os parâmetros passados. $s1 $s2 $s3 " 15 50 \ --and-widget \ --begin 35 50 \ --yesno 'Deseja reiniciar o programa?' 0 0 if test $? -eq 0 then proxima=primeira else break fi #break fi ;; *) echo "Janela desconhecida '$proxima'." echo Abortando programa... exit esac # Aqui é feito o tratamento genérico de Código de Retorno # de todas as telas. Volta para a tela anterior se for # CANCELAR, sai do programa se for ESC. retorno=$? [ $retorno -eq 1 ] && proxima=$anterior # cancelar [ $retorno -eq 255 ] && break # Esc done
Validar e-mails em arquivo CSV
Monitorar pppe-server, radius e proxy (estilo fastfood)
Administração de Servidor FTP + MySQL
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Sinto uma leve lentidão ao arrastar, miniminizar e restauras as janela... (0)
Zorin OS - Virtual Box não consigo abrir maquinas virtuais (6)
Iinstalar o Scanner Kodak i940 no Linux Mint 19/20? (3)