直接在 MySQL 数据库中更改 postfix 用户帐户的密码

Rui*_*iro 6 mysql postfix

我需要直接在 MySQL 数据库中更改 postfix 用户帐户邮箱的密码;但是我不知道使用的格式。

这是表:

SELECT username,password FROM mailbox LIMIT 1;
+------------------+------------------------------------+
| username         | password                           |
+------------------+------------------------------------+
| user@example.com | $1$60Dgu9vc$T7vaQfTKgxUpci0TTnsyO0 |
+------------------+------------------------------------+
Run Code Online (Sandbox Code Playgroud)

它是什么格式?如何改变它?

Rui*_*iro 7

$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`
Run Code Online (Sandbox Code Playgroud)

运行它,您将获得预期的加密密码作为输出:

$1$EaYOC8n4$04LSDBtt4A8GPVRUkzBXG/
Run Code Online (Sandbox Code Playgroud)

因此,要将 MySQL 数据库中的密码更改为“test123”,请在 MySQL 提示符下执行以下操作:

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

更改立即生效,用户会在下次访问邮箱时注意到更改。