Você pode usar alguma forma de:
# echo "Th3P@ssw0rd" | passwd --stdin theUser
assumindo que sua versão do binário passwd
suporta a opção --stdin
.
Eu efetivamente tenho um teclado sticky (máquina host para RDP para vCenter para console virtual), mas preciso atualizar a senha de uma VM que estou construindo.
Usando as ofertas de mídia do ambiente de resgate CentOS, posso chroot
para o sistema instalado e executar passwd
, mas depois de digitar a senha uma vez, inevitavelmente recebo um erro que os tokens de senha não correspondem. (Às vezes, digitar "passwd" ecoa de volta "passsswwdddd" ou similar na linha de comando).
Como posso atualizar a senha do root sem precisar digitá-la duas vezes?
Como não sei a senha, não posso ssh (o que eliminaria o problema do teclado) - portanto, usando um ambiente de recuperação e chroot
.
Você pode usar alguma forma de:
# echo "Th3P@ssw0rd" | passwd --stdin theUser
assumindo que sua versão do binário passwd
suporta a opção --stdin
.
Eu uso este truque em scripts se um prompt interativo tiver que ser usado:
yourpass='My supersecret password'
$(echo $yourpass; echo $yourpass) | passwd username
Basicamente, atribua a senha a uma variável e use-a no seguinte comando.
Tente este:
# echo 'root:PASSWORD' | chpasswd
Por favor, substitua PASSWORD pelo que você quiser. Funciona bem para mim no Suse Linux.
Com base no comentário de Mark Plotnick,
vi passfile
usermod -p 'openssl passwd stdin < passfile' root
rm -f passfile
Isso lhe dá a oportunidade de editar o arquivo temporário e confirmar que você definiu a senha para o que você realmente acha que é. Também mantém a senha de qualquer histórico, etc.