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.
[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.
[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.
[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
______________________________________________________________________
[b]Importante:[/b] echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________