Estou usando o Puppet para gerenciar senhas de usuários. (Sim, eu sei que o LDAP é melhor, mas me disseram que os superiores usam o Puppet.) Eu tenho essa classe que, quando executada como root, altera a senha do bob para "bobs_new_password". Deve idealmente solicitar uma nova senha quando bob a executa, mas eu devo poder adicionar essa funcionalidade mais tarde. Quando eu executo como root com puppet agent --test
, ele diz que tudo corre bem e me notifica sobre o novo hash, então sei que ele foi configurado corretamente no arquivo /etc/shadow
. No momento, estou trabalhando apenas com usuários de teste em VMs, por isso não estou preocupado com o risco de segurança de notificar o hash; essa linha será obviamente retirada para a versão de trabalho do código. O que eu tenho até agora é isso:
class pwdchange ($newpwd = 'bobs_new_password', $targetuser = "bob") {
$temp = inline_template("<%= Digest::MD5.digest(scope.lookupvar('newpwd'))%>")
$hashtypeidentifier = '$1$' #'$1' for MD5, '$6' for sha512.
user {"$targetuser":
ensure => present,
password => "${hashtypeidentifier}${temp}",
}
notify {"${temp}":}
}
No entanto, quando vou para ssh na VM como bob, nem a senha antiga nem a nova senha são aceitas. O que estou fazendo de errado? Por que não está aceitando senhas e o que posso fazer para corrigir isso?