multiplataforma alterar senha

1

Estamos tentando padronizar em passwd para alterar nossas senhas * nix. No linux, é uma simples questão:

printf "secret\nsecret\n" | passwd username

Mas o FreeBSD reescreveu sua versão de passwd para usar o pam biblioteca. O sistema pam usa openpam_ttyconv para ler a senha, que salta através de alguns aros para derrotar as tentativas de um administrador para redirecionar stdin.

Se você tentar a receita acima no FreeBSD, ela continuará solicitando e aguardando uma resposta interativa. Se você tentar forçar e forçar o redirecionamento de stdin, obterá um pam_chauthtok: conversation failure

Eu entendo no FreeBSD que podemos usar

printf "secret\nsecret\n | pw usermod -n username -h0

Mas eu estava esperando (talvez sonhando) que alguém pudesse conhecer um truque para obter a biblioteca pam para aceitar o redirecionamento de stdin?

    
por user590028 29.01.2017 / 18:58

2 respostas

0

A resposta padrão para problemas envolvendo a entrada interativa de senhas é usar esperar que seja executado o comando - passwd neste caso.

    
por 29.01.2017 / 19:34
2

Você pode usar chpass para alterar uma senha de um script no * BSD, e o utilitário similar chpasswd no Linux. Ambos permitem que você defina a senha "criptografada" de uma conta. Na verdade, o hash de senha . Você pode chamar a função crypt de um script Perl ou Python para calcular o hash (não esqueça de selecionar uma função hash, um sal aleatório e uma boa contagem de iteração).

    
por 30.01.2017 / 01:35