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]";
変更はすぐに有効になり、ユーザーは次回メールボックスにアクセスしたときに変更を確認できます。