Vous pouvez utiliser les commandes suivantes pour la même chose:
Méthode 1 (md5, sha256, sha512)
openssl passwd -6 -salt xyz yourpass
Remarque: le passage -1
générera un mot de passe MD5, -5
un SHA256 et un -6
SHA512 (recommandé)
Méthode 2 (md5, sha256, sha512)
mkpasswd --method=SHA-512 --stdin
Accepte les méthodes md5
, sha-256
etsha-512
Méthode 3 (des, md5, sha256, sha512)
Comme @tink l'a suggéré, nous pouvons mettre à jour le mot de passe en chpasswd
utilisant:
echo "username:password" | chpasswd
Ou vous pouvez utiliser un mot de passe crypté avec chpasswd
. Commencez par le générer en utilisant ceci:
perl -e 'print crypt("YourPasswd", "salt", "sha512"),"\n"'
Ensuite, vous pourrez utiliser le mot de passe généré pour mettre à jour:
echo "username:encryptedPassWd" | chpasswd -e
Ce mot de passe crypté que nous pouvons utiliser pour créer un nouvel utilisateur avec un mot de passe, par exemple:
useradd -p 'encryptedPassWd' username
chpasswd -e
, veillez à utiliser des guillemets simples sur la chaîneecho
dans laquelle vous vous trouvez ; sinon, s'il y a$
ou d'autres caractères spéciaux, ils ne seront pas traités littéralement.openssl passwd -1
lequel 1) ne se termine pas là et 2) génère un sel aléatoire pour vous (qui ne se termine pas dans l'historique du shell, non plus).openssl passwd
documentation pour ceux qui essaient de comprendre ce que fait l’-1
option.python3 -c 'import crypt; print(crypt.crypt("test", crypt.mksalt(crypt.METHOD_SHA512)))'
- d'une question ServerFault liéeSur Ubuntu 12.04, il y a mkpasswd (du paquetage whois): interface frontale surexploitée à crypt (3)
Où:
-m
= Calculez le mot de passe en utilisant la méthode TYPE. Si TYPE est help, les méthodes disponibles sont imprimées.-S
= sel utilisé.Par exemple
la source
Cette solution présente les avantages suivants:
Re-demande le mot de passe pour éviter les erreurs.
Références
la source
Pour ceux sans systèmes basés sur Debian. Python3 fonctionne aussi bien.
REMARQUE: La chaîne "test" est le mot de passe que nous générons en tant que chaîne cryptée.
la source
crypt.mksalt
ne fonctionne pas lors de la génération de mots de passe pour/etc/shadow
. Mais la méthode de @ Alex131089 fonctionne!openssl
constitue un outil assez universel.Aucune des méthodes actuelles ne me convient: elles transmettent le mot de passe en ligne de commande (ce qui se trouve dans l'historique de mon shell), nécessitent l'installation d'utilitaires supplémentaires (
python3
,makepasswd
), utilisent des sels codés en dur ou utilisent d'anciennes techniques de hachage.Cette méthode générerait des hachages SHA-512 après avoir demandé le mot de passe et utiliserait un sel aléatoire.
Une méthode utilisant Python 2 sans aucune bibliothèque non standard:
Pour le faire sans invite: (Ceci laissera votre mot de passe dans l'historique des commandes)
la source
ps
sortie en une fraction de seconde pendant l'exécution de la commande. (Le plus sûr reste d'utiliser la version qui demande le mot de passe)La paire
openssl
etchpasswd -e
n'a pas fonctionné dans mon cas sous RHEL6. La combinaisonopenssl passwd
et leusermod -p
commandement ont fait le travail.Générez la valeur de hachage du mot de passe avec la valeur du sel:
Ensuite, copiez la chaîne cryptée sur usermod. Assurez-vous de l'envelopper avec des guillemets simples.
Vérifiez-le dans un fichier shadow.
la source
Une autre méthode pour générer des mots de passe consiste à utiliser l'
openssl
outil.Générer des mots de passe MD5
Générer des mots de passe DES
la source
En développant un peu les critiques de u150825 et de Gert van den Berg, j'ai eu besoin de quelque chose de relativement flexible pour différentes situations avec différents systèmes d'automatisation. J'ai décidé d'ajouter à ma propre petite bibliothèque de scripts utiles et d'écrire ceci. Il utilise uniquement les bibliothèques natives de Python 2.7+ et fonctionne également sur python3.
Vous pouvez le chercher ici si vous voulez. Il est tout aussi facile de laisser tomber cela dans votre environnement si vous avez besoin de l'utiliser beaucoup, hébergé par http ou autre, et vous pouvez l'exécuter sur n'importe quelle plate-forme en utilisant quel que soit l'interpréteur python par défaut dont vous disposez, joli comptant de manière fiable sur son fonctionnement.
Par défaut, l'invite utilise getpass avec des invites sur stderr (permettant de capturer facilement stdout), mais si vous dirigez une chaîne vers elle, elle ne fera que sortir de stdin. Selon votre façon de faire, cela n'apparaît peut-être pas dans l'historique des commandes, alors soyez simplement conscient de ce avec quoi vous travaillez. J'aime avoir un outil flexible qui se comportera de la manière attendue, plutôt que de devoir compter sur des packages ou sur des paquets python pour gagner de 10 façons différentes.
la source
chpasswd
?