Estou tentando alterar programaticamente a senha de um usuário e recebo algumas mensagens que não posso explicar ao longo do caminho.
Eu executei este comando para começar:
sudo usermod -p "$(openssl passwd -1 newpassword)" theuser
Nenhum erro foi impresso, mas na próxima vez que eu fiz login, recebi esta mensagem:
The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Mon Jan 30 16:22:41 2017 from 193.50.110.1 Wrong salt length: 0 bytes when 8 <= n <= 16 expected.
Eu tentei outro método de criptografia:
sudo usermod -p "$(openssl passwd -crypt newpassword)" theuser
Ainda não há erro, mas a mensagem mudou:
Wrong salt length: 0 bytes when 8 <= n <= 16 expected.
Eu finalmente tentei outra coisa, usando mkpasswd
para ter uma criptografia mais strong (relacionada a este post ):
sudo usermod -p "$(mkpasswd --method=sha-512 newpassword)" theuser
Desta vez, o erro desapareceu, então acredito que isso esteja relacionado à força do algoritmo hash. O que eu não entendo é qual algoritmo pode e deve ser usado para gerar uma senha.
Quais algoritmos podem ser usados com segurança com mkpasswd
para evitar o erro de mensagem? Isso também significa que o comando mkpasswd
foi executado na inicialização?
UPDATE : Eu esqueci de mencionar que eu tinha essas mensagens usando um Raspbian Jessie Lite. Eu também encontrei algumas strings contendo essa mensagem de erro no mkpasswd.c source em rfc1036 / whois GitHub.
Tags password encryption