Sortie de "man 1 passwd":
--stdin
This option is used to indicate that passwd should read the new
password from standard input, which can be a pipe.
Donc, pour répondre à votre question, utilisez le script suivant :
echo -n "Enter the username: "
read username
echo -n "Enter the password: "
read -s password
adduser "$username"
echo "$password" | passwd "$username" --stdin
J'ai utilisé read -s
pour le mot de passe, il ne sera donc pas affiché lors de la saisie.
Modifier : Pour les utilisateurs Debian/Ubuntu -stdin
ne fonctionnera pas. Au lieu de passwd
utilisez chpasswd
:
echo $username:$password | chpasswd