Ich muss das Kennwort eines Postfix-Benutzerkontopostfachs direkt in einer MySQL-Datenbank ändern. Ich habe jedoch keine Ahnung, welches Format verwendet wird.
Hier ist die Tabelle:
SELECT username,password FROM mailbox LIMIT 1;
+------------------+------------------------------------+
| username | password |
+------------------+------------------------------------+
| [email protected] | $1$60Dgu9vc$T7vaQfTKgxUpci0TTnsyO0 |
+------------------+------------------------------------+
Welches Format hat es? Wie kann ich es ändern?
Antwort1
Der $1$
Hinweis am Anfang des Passwortfeldes weist darauf hin, dass es sich um einen MD5-Hash handelt.
Um ein Passwort in einem MD5-Hash zu verschlüsseln, können Sie den openssl passwd
Befehl verwenden.
AusMann openssl:
passwd Generierung von gehashten Passwörtern.
und von openssl passwd --help
:
-1 MD5-basierter Passwortalgorithmus
-stdin liest Passwörter von stdin
Um den MD5-Hash zu generieren, hier ein kurzes Bash-Beispiel:
#/bin/bash
PASSWORD="test123"
MD5=`echo $PASSWORD | openssl passwd -1 -stdin`
Wenn Sie es ausführen, erhalten Sie als Ausgabe das gewünschte verschlüsselte Passwort:
$1$EaYOC8n4$04LSDBtt4A8GPVRUkzBXG/
Um das Passwort in der MySQL-Datenbank in „test123“ zu ändern, gehen Sie in der MySQL-Eingabeaufforderung folgendermaßen vor:
USE postfix UPDATE mailbox SET password="$1$EaYOC8n4$04LSDBtt4A8GPVRUkzBXG/" WHERE username="[email protected]";
Die Änderung wird sofort wirksam und der Benutzer wird die Änderung beim nächsten Postfachzugriff bemerken.