Sie können dafür die folgenden Befehle verwenden:
Methode 1 (md5, sha256, sha512)
openssl passwd -6 -salt xyz yourpass
Hinweis: Beim Bestehen -1
wird ein MD5-Passwort generiert, -5
ein SHA256 und ein -6
SHA512 (empfohlen).
Methode 2 (md5, sha256, sha512)
mkpasswd --method=SHA-512 --stdin
Methoden akzeptiert md5
, sha-256
undsha-512
Methode 3 (des, md5, sha256, sha512)
Wie von @tink vorgeschlagen, können wir das Passwort folgendermaßen aktualisieren chpasswd
:
echo "username:password" | chpasswd
Oder Sie können ein verschlüsseltes Passwort mit verwenden chpasswd
. Zuerst generiere es mit diesem:
perl -e 'print crypt("YourPasswd", "salt", "sha512"),"\n"'
Später können Sie das generierte Passwort verwenden, um Folgendes zu aktualisieren:
echo "username:encryptedPassWd" | chpasswd -e
Dieses verschlüsselte Passwort können wir verwenden, um einen neuen Benutzer mit Passwort zu erstellen, zum Beispiel:
useradd -p 'encryptedPassWd' username
chpasswd -e
, stellen Sie sicher , dass einfache Anführungszeichen auf der Zeichenfolge , die Sie verwendenecho
in; Andernfalls werden$
Sonderzeichen nicht buchstäblich behandelt.openssl passwd -1
was 1) nicht dort endet und 2) ein zufälliges Salz für Sie erzeugt (was auch nicht in der Shell-Geschichte endet).openssl passwd
Dokumentation für alle, die herausfinden möchten , was die-1
Option bewirkt.python3 -c 'import crypt; print(crypt.crypt("test", crypt.mksalt(crypt.METHOD_SHA512)))'
- Aus verwandter ServerFault-FrageUnter Ubuntu 12.04 gibt es mkpasswd (aus dem whois-Paket): Overfeatured Frontend to Crypt (3)
Wo:
-m
= Berechnen Sie das Passwort mit der TYPE-Methode. Wenn TYPE help ist, werden die verfügbaren Methoden gedruckt.-S
= Salz verwendet.Z.B
quelle
Diese Lösung bietet folgende Vorteile:
Fordert Sie erneut zur Eingabe des Kennworts auf, um Fehler zu vermeiden.
Verweise
quelle
Für diejenigen ohne Debian-basierte Systeme. Python3 funktioniert genauso gut.
HINWEIS: Die Zeichenfolge "test" ist das Kennwort, das wir als verschlüsselte Zeichenfolge generieren.
quelle
crypt.mksalt
funktioniert die Verwendung nicht beim Generieren von Kennwörtern für/etc/shadow
. Aber die Methode von @ Alex131089 funktioniert!openssl
ein ziemlich universelles Tool ist.Keine der aktuellen Methoden ist für mich akzeptabel. Sie übergeben entweder das Kennwort in der Befehlszeile (was in der Shell-Historie endet), erfordern die Installation zusätzlicher Dienstprogramme (
python3
,makepasswd
), verwenden hartcodierte Salze oder verwenden alte Hashing-Techniken.Diese Methode generiert nach Aufforderung zur Eingabe des Kennworts SHA-512-Hashes und verwendet ein zufälliges Salt.
Eine Methode unter Verwendung von Python 2 ohne nicht standardmäßige Bibliotheken:
So tun Sie es ohne Aufforderung: (Dadurch bleibt Ihr Kennwort im Befehlsverlauf erhalten.)
quelle
ps
im Bruchteil einer Sekunde in der Ausgabe stehen, dass der Befehl ausgeführt wird. (Die sicherste bleibt die Version zu verwenden , die für die Eingabe des Kennworts auffordert)Das
openssl
undchpasswd -e
Paar hat in meinem Fall in RHEL6 nicht funktioniert. Kombinierenopenssl passwd
undusermod -p
Kommando erledigten den Job.Generieren Sie den Hash-Wert des Passworts zusammen mit dem Salt-Wert:
Kopieren Sie dann die verschlüsselte Zeichenfolge nach usermod. Stellen Sie sicher, dass Sie es in einfache Anführungszeichen setzen.
Probieren Sie es in der Shadow-Datei aus.
quelle
Eine weitere Methode zum Generieren von Passwörtern ist die Verwendung des
openssl
Tools.Generieren Sie MD5-Passwörter
DES-Passwörter generieren
quelle
Als ich etwas auf die Kritik von u150825 und Gert van den Berg einging, stellte ich fest, dass ich etwas relativ Flexibles für verschiedene Situationen mit verschiedenen Automatisierungssystemen brauchte. Ich beschloss, meiner eigenen kleinen Bibliothek nützlicher Skripte etwas hinzuzufügen und dies zu schreiben. Es werden nur native Bibliotheken aus Python 2.7+ verwendet und es funktioniert auch mit Python3.
Sie können es hier abholen, wenn Sie möchten. Es ist genauso einfach, dies in Ihrer Umgebung abzulegen, wenn Sie es häufig verwenden müssen, http-gehostet oder was auch immer, und Sie können es auf jeder Plattform mit dem Standard-Python-Interpreter ausführen, den Sie zur Verfügung haben zuverlässig darauf zählen, dass es funktioniert.
Standardmäßig wird die Verwendung von getpass mit Eingabeaufforderungen für stderr veranlasst (was ein einfaches Erfassen von stdout ermöglicht). Wenn Sie jedoch eine Zeichenfolge hinzufügen, wird nur von stdin geerntet. Abhängig davon, wie Sie vorgehen, wird es möglicherweise auch nicht im Befehlsverlauf angezeigt. Achten Sie also nur darauf, mit was Sie arbeiten. Ich mag es, ein flexibles Tool zu haben, das sich erwartungsgemäß verhält, anstatt mich auf Pakete oder Python verlassen zu müssen, die meinen Weg zum Sieg auf 10 verschiedene Arten bahnen.
quelle
chpasswd
?