passwd
funciona para este caso. Tem uma opção --stdin
. Não use echo my-secret-password | passwd --stdin
, porque echo my-secret-password
pode se tornar visível se alguém executar ps
, ou talvez até mesmo em um arquivo de log, se você não tiver sorte.
#!/bin/sh
PASSWORD=...
passwd root --stdin <<EOF
$PASSWORD
EOF