Não há como especificar a senha para adduser
na linha de comando. A única maneira de fazer o script é fornecer a senha (e confirmação) para stdin
, assim como acontece quando o programa interage com o usuário. Aqui está um exemplo usando um documento aqui :
adduser "$username" <<EOF
$password
$password
EOF
Observe também que, se a senha puder ser fornecida como argumento, essa seria a maneira mais insegura de fazê-lo. Enquanto o comando está em execução, os argumentos podem ser lidos por todos os usuários. Pelo menos desta forma, se o script é legível apenas pelo root, a senha não será legível por todos.
Atualizar
Na verdade, os documentos aqui podem criar arquivos temporários, que conteriam a senha. A abordagem mais segura parece ser usar echo
e um canal (e garantir 700
de permissões para o script):
echo "$password
$password" | adduser "$username"