Pular para o conteúdo

Como verificar senha no shell script

Dica publicada em Shell Script / Miscelânea
Cézar Augusto cizordj
Hits: 7.399 Categoria: Shell Script Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Como verificar senha no shell script

Olá tudo bem? Se por alguma razão bem aleatória você quer pôr uma senha no seu shell script para dar acesso a determinada função, ou qualquer outra coisa (só depende de você), dá para verificar se ela está correta sem colocar a sua senha de verdade no código-fonte.

Método ERRADO

Aqui vou testar a autenticidade que, por incrível que pareça é bastante comum de se ver por aí.

#!bin/sh
echo Digite a sua senha...
read senha
if [ $senha -eq "102374" ] ; then
echo "Senha correta"
else
echo "Senha ERRADA!"
fi

Por que este método é errado? Colocar a senha em texto puro no script é uma tremenda falha de segurança, qualquer espertinho pode dar um grep no seu script e localizá-la. Mas como verificar a senha sem expô-la no shell script? Usando uma soma de verificação.

Sinta-se livre para testar o código abaixo e digite a mesma senha que estava exposta no código acima.

#!bin/sh
echo Digite a sua senha...
read senha
echo "dbbe235510a12c4ceea53cfa2150859e  senha" > senha.md5
echo $senha > senha
md5sum -c --status senha.md5
if [ $? -eq 0 ] ; then
echo "Senha correta"
else
echo "Senha ERRADA!"
fi
rm senha.md5 senha

Viu como funciona? Foi criado uma forma de verificação da senha ao invés de expor no código fonte o seu conteúdo cru. Bem mais seguro, sem falar que você pode usar verificações ainda mais pesadas como SHA256 ou SHA512.

Criando a soma de verificação

Para criar a soma de verificação da sua senha é simples. Faça no terminal:

echo sua_senha > arquivoqualquer

e depois:

md5sum arquivoqualquer

que vai sair com a soma de verificação da sua senha para você pô-la no código-fonte.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Servidor web simples sem instalar nada

Máscara simples em JavaScript

Alterar resolução de tela pelo Xorg

Um manual mais da hora

Tema escuro no Elementary sem programas

Telinha simples de loading.... em Shell Script

Converter WMA para MP3 no shell do Linux

Alterando as ID tags de seus arquivos de áudio em massa pelo terminal

Conversão de vídeo escalonada ( batch ) em diferentes formatos

Como mudar o teclado do Debian em uma máquina virtual configurada em outro SO

#1 Comentário enviado por edivandjs em 29/01/2019 - 13:54h
Muito legal, principalmente pra mim que estou iniciando no mundo da programação.
#2 Comentário enviado por hrcerq em 05/02/2019 - 23:06h
Boa dica. Eu não sei em qual shell você usou ou criou esse script. Mas no bash ainda poderia usar a opção "-s" do comando read, pra evitar que algum "espertinho" fique olhando pra sua tela enquanto você digita a senha. Infelizmente essa opção não faz parte do padrão posix.

---

Atenciosamente,
Hugo Cerqueira

Devuan - https://devuan.org/
#3 Comentário enviado por cizordj em 06/02/2019 - 11:26h

[2] Comentário enviado por hrcerq em 05/02/2019 - 23:06h

Boa dica. Eu não sei em qual shell você usou ou criou esse script. Mas no bash ainda poderia usar a opção "-s" do comando read, pra evitar que algum "espertinho" fique olhando pra sua tela enquanto você digita a senha. Infelizmente essa opção não faz parte do padrão posix.

Obrigado Hugo pelo detalhe que faltou rsrs eu não sabia desse parâmetro do read (se sabia também é porque me esqueci). Mas sim, realmente contribui pro script ficar mais seguro.
#4 Comentário enviado por tcboeira em 05/07/2019 - 14:35h
Bem bacana...
E se eu precisar testar uma senha, ou um nome de usuario que esteja no AD, de uma rede?
Um usuario de dominio?
#5 Comentário enviado por cizordj em 06/07/2019 - 21:15h

[4] Comentário enviado por tcboeira em 05/07/2019 - 14:35h

Bem bacana...
E se eu precisar testar uma senha, ou um nome de usuario que esteja no AD, de uma rede?
Um usuario de dominio?

Bom aí você vai ter acessar eles diretamente... Algum servidor SAMBA e tal, se o acesso não for negado a senha não está errada.

Mas essa dica que eu dei tem a ver com criptografia de senhas, você tem que ter elas baixadas na sua máquina para testar.
#6 Comentário enviado por msoliver em 09/05/2020 - 23:57h
Gostei Cesar.
Um detalhe.
Corrija o "shebang",
falta uma "/"
Uma melhoria.
Já que o parâmetro "--status", retorna "0 ou 1".....
Pode ser feito:
if md5sum -c --status senha.md5;then
echo "Senha correta";
else
echo "Senha INCORRETA";
fi
______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________

Contribuir com comentário

Entre na sua conta para comentar.