J'écris un script pour ajouter une grande quantité d'utilisateurs à un système. Cela implique en partie de définir des mots de passe par défaut pour chaque utilisateur. Comment puis-je définir les mots de passe des utilisateurs sans qu'il me demande le mot de passe à l'avance?
Malheureusement, passwd ne semble pas accepter d'argument indiquant le nouveau mot de passe à définir. J'utilise Ubuntu 11.10.
usermod --password $(echo my_new_password | openssl passwd -1 -stdin) USERNAME
usermod --password $(openssl passwd -1 {password}) {username}
Vous devriez regarder la
chpasswd
commande (si elle est disponible dans votre version linux):Ou, vous pouvez ajouter un fichier répertoriant l'ID utilisateur: passwd pour chaque compte sur une ligne distincte.
C'est ça.
la source
Dockerfile
Inspiré par l'idée d'Eric Smith, la combinaison
openssl passwd
et lausermod -p
commande ont fonctionné. Générez la valeur hachée du mot de passe avec la valeur salt.Ensuite, copiez la chaîne chiffrée dans usermod. Assurez-vous de l'envelopper avec un guillemet simple.
Vérifiez-le dans le fichier shadow.
la source
Vous devez utiliser le vieillissement des mots de passe et définir les utilisateurs de sorte qu'ils doivent changer leur mot de passe lors de la première connexion. Consultez cet article .
la source
fonctionne pour moi à la fois dans l'hôte physique et le conteneur, pour différents systèmes d'exploitation (ubuntu xenial, bionic, debian9,10, centos75,76, coreos)
fonctionne pour certains systèmes d'exploitation, mais certains systèmes d'exploitation tels que debian9,10 afficheront une erreur
can not connect to /var/run/nscd/socket
car ils utilisent /etc/nsswitch.conf pour déterminer où ils stockent le mot de passe.la source