Vous pouvez utiliser chpasswd
pour le faire, comme ceci :
echo "username:newpassword" | chpasswd
Vous pouvez accéder à chpasswd
à partir de programmes autres que echo
, si pratique, mais cela fera l'affaire.
Modifier :pour générer le mot de passe dans le script shell, puis le définir, vous pouvez faire quelque chose comme ceci :
# Change username to the correct user:
USR=username
# This will generate a random, 8-character password:
PASS=`tr -dc A-Za-z0-9_ < /dev/urandom | head -c8`
# This will actually set the password:
echo "$USR:$PASS" | chpasswd
Pour plus d'informations sur chpasswd
, voir http://linux.die.net/man/8/chpasswd
(La commande pour générer le mot de passe provenait de http://nixcraft.com/shell-scripting/13454-command-generate-random-password-string.html)
Vous pouvez utiliser OpenSSL pour générer le mot de passe aléatoire (16 caractères, dans ce cas) :
# 1000 bytes should be enough to give us 16 alphanumeric ones
p=$(openssl rand 1000 | strings | grep -io [[:alnum:]] | head -n 16 | tr -d '\n')
Ensuite, introduisez le mot de passe haché dans useradd
ou usermod
# omit the "-1" if you want traditional crypt()
usermod -p $(openssl passwd -1 "$p") <username>
MODIFIER :
Depuis sa publication en 2012, les nouvelles versions d'OpenSSL ont ajouté des fonctionnalités au openssl passwd
commande. Au lieu d'utiliser le -1
option pour obtenir un hachage basé sur MD5, les versions modernes prennent également en charge -5
pour les hachages basés sur SHA256 et -6
pour les hachages basés sur SHA512.
Crédit à l'échéance :la génération du mot de passe est adaptée d'une méthode similaire qui utilise /dev/urandom
au lieu de openssl
.
useradd devrait fonctionner (je l'ai fait sur Ubuntu). Vérifiez peut-être que chacun de vos arguments est correct (ces groupes existent, le chemin est bon pour bash). Vous pouvez exécuter la commande avec juste un mot de passe et un utilisateur, puis utiliser userdel supprimer, puis réessayer avec plus de paramètres, pour voir ce qui cause le problème (approche par force brute).
Il y a aussi les nouveaux utilisateurs (voir la page de manuel), au moins sous Ubuntu, où vous lui donnez un fichier avec un fichier passwd comme des informations, y compris des mots de passe en texte brut et il créera ces utilisateurs. Belle façon de faire plusieurs utilisateurs à la fois.