我需要直接在MySQL数据库中更改postfix用户帐户邮箱的密码;但是我不知道使用的格式。
这是表格:
SELECT username,password FROM mailbox LIMIT 1;
+------------------+------------------------------------+
| username | password |
+------------------+------------------------------------+
| [email protected] | $1$60Dgu9vc$T7vaQfTKgxUpci0TTnsyO0 |
+------------------+------------------------------------+
它是什么格式?如何改变呢?
答案1
$1$
密码字段开头的 暗示它是 MD5 哈希值。
要在 MD5 哈希中加密密码,您可以使用该openssl passwd
命令。
从人openssl:
passwd 生成散列密码。
和来自openssl passwd --help
:
-1 基于MD5的密码算法
-stdin 从stdin读取密码
因此,要生成 MD5 哈希值,请使用一个简短的 bash 示例:
#/bin/bash
PASSWORD="test123"
MD5=`echo $PASSWORD | openssl passwd -1 -stdin`
运行它,您将得到预期的加密密码作为输出:
$1$EaYOC8n4$04LSDBtt4A8GPVRUkzBXG/
因此,要将 MySQL 数据库中的密码更改为“test123”,请在 MySQL 提示符中执行以下操作:
USE postfix UPDATE mailbox SET password="$1$EaYOC8n4$04LSDBtt4A8GPVRUkzBXG/" WHERE username="[email protected]";
更改立即生效,用户将在下次访问邮箱时注意到更改。