Você deve passar a opção -p
para useradd
em vez de tentar alterar a senha após o fato.
De man useradd
-p, --password PASSWORD
The encrypted password, as returned by crypt(3). The
default is to disable the account.
Usando -p você precisará ter a senha criptografada antecipadamente. Além disso, consulte Pergunta sobre estouro de pilha que fornece respostas semelhantes e um script para gerar a senha com hash dinamicamente.