Gerador de senhas com Dialog
Publicado por Giovani Ferreira 20/09/2006
[ Hits: 9.949 ]
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
Script para instalação completa do XEN 3.4.0 através do source ( fonte ).
Cadastrando e removendo usuários do SAMBA com um script
Compilador SH-Compiler usando GCC 4.6 no Debian Wheezy
Script para fazer o scroll (a rodinha) do mouse serial funcionar
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (2)
Preciso resolver um erro de DPKG (0)
Não to conseguindo resolver este problemas ao instalar o playonelinux (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta