Mysql

直接在 MySQL 數據庫中更改 postfix 使用者帳戶的密碼

  • August 7, 2019

我需要直接在 MySQL 數據庫中更改 postfix 使用者帳戶郵箱的密碼;但是我不知道使用的格式。

這是表格:

SELECT username,password FROM mailbox LIMIT 1;
+------------------+------------------------------------+
| username         | password                           |
+------------------+------------------------------------+
| user@example.com | $1$60Dgu9vc$T7vaQfTKgxUpci0TTnsyO0 |
+------------------+------------------------------------+

它是什麼格式?如何改變它?

$1$密碼欄位開頭的 暗示它是一個 MD5 雜湊。

要加密 MD5 雜湊中的密碼,您可以使用該openssl passwd命令。

man openssl

passwd 生成散列密碼。

並從openssl passwd --help

-1 基於 MD5 的密碼算法

-stdin 從標準輸入讀取密碼

因此,要生成 MD5 雜湊,一個簡短的 bash 範例:

#/bin/bash
PASSWORD="test123"
MD5=`echo $PASSWORD | openssl passwd -1 -stdin`

執行它,你會得到預期的加密密碼:

$1$EaYOC8n4$04LSDBtt4A8GPVRUkzBXG/

因此,要將 MySQL DB 中的密碼更改為“test123”,請在 MySQL 提示符下執行:

USE postfix UPDATE mailbox SET password="$1$EaYOC8n4$04LSDBtt4A8GPVRUkzBXG/" WHERE username="user@example.com";

更改立即生效,使用者在下次訪問郵箱時會注意到更改。

引用自:https://unix.stackexchange.com/questions/367480