Relacionado a Por que a senha de root no Linux Mint é minha senha de usuário?
Parece que minha caixa Mint 17.3 tem uma senha de root definida: vejo um hash de senha em /etc/shadow
(começa com $6$...
). Eu gostaria de comparar este hash de senha com minha senha de usuário (conhecida).
Por qualquer motivo, não confio su -
(na pergunta vinculada) para não usar minha senha, em vez da senha root .
Existe uma maneira simples (no bash, por exemplo) de comparar um hash conhecido com uma senha conhecida e ver se eles correspondem?
Encontre o sal usado em
/etc/shadow
, são os caracteres entre o segundo e o terceiro$
, geralmente serão oito.Use
mkpasswd -m sha-512 -S <salt>
e digite a senha que você acha que deveria ser quando for solicitado. Ele produzirá o hash com$6$<salt>$
prefixado.No final, você precisa chamar a
crypt(3)
função dolibcrypt
(que em sistemas GNU como o Linux Mint vem com o GNU libc) com a senha como primeiro argumento e o hash ($6$...
) como segundo argumento.python
é uma dessas ferramentas que expõe essa função, então você pode fazer:E se a saída corresponder ao hash, essa era a senha correta.
$HASH
acima pode ser o hash completo (como$6$rounds=1234$somesalt$6eFBNhSgwEwdfZBHueBedpcqaVKGcV2DJy/tQMFd3JL88hwvgTkISJShnOUrbtP1fRs8I9rGIdsgWCoiujxD2/
) ou apenas a parte dele mais à direita$
, incluindo o sal e a contagem de rodadas opcional ($6$rounds=1234$somesalt$
).Ou você pode fazer a verificação em
python
:(então, obviamente,
$HASH
deve conter o hash completo).Com
python
, você também pode chamar funções de bibliotecas arbitrárias usando octypes
módulo. Portanto, outra maneira de chamar acrypt()
função do sistema (não que você precise, poiscrypt
é um dos módulos padrão, é só que antes eu tinha a impressão de que ocrypt
módulo vinha com sua própriacrypt()
implementação separada) é com algo como:ssh root@localhost
vem à mente, embora sua distribuição possa ter desabilitado totalmente o login baseado em senha para root e/ou instalado um par de chaves; ou fazer login em sua tela de login gráfica usual como usuárioroot
. (Mesmo se você tiver o login automático ativado, a caixa de diálogo de desligamento pode oferecer o login como outro usuário.)