As melhores maneiras de automatizar esse tipo de entrada é usar expect
ou melhor pexpect
.
a maioria dos servidores vem com python, pelo menos com uma distribuição moderna.
Primeiramente, você disse que sua VM não tem expect
instalado? Não sei por que isso importa. Existe alguma razão pela qual você não pode instalar / executar algo sob sua conta local?
Próxima consideração, por que você deve usar passwd
??? Você também pode alterar uma senha, substituindo o hash especificado em /etc/shadow
. Obviamente, você precisaria gerar corretamente um hash primeiro, mas, desde que você use um suportado, ele deve funcionar como esperado. Agora, como você criaria uma ação desse tipo, é um exercício para você se exercitar.
Eu também quero mencionar, passwd
não lê sua entrada de STDIN. Se não estou enganado, lê de um tty. Portanto, nenhum combo de apenas echo
e sleep
funcionaria. No entanto, é possível usar um HEREDOC, mas assume que o sistema é suficientemente responsivo. Você pode ser capaz de dividir e sleep
entre entradas. Eu apenas testei isso, funcionou na minha estação de trabalho Ubuntu.
#!/bin/bash
passwd root <<'EOF'
newpassword
newpassword
EOF