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 DB のパスワードを「test123」に変更するには、MySQL プロンプトで次の操作を実行します。
USE postfix UPDATE mailbox SET password="$1$EaYOC8n4$04LSDBtt4A8GPVRUkzBXG/" WHERE username="[email protected]";
変更はすぐに有効になり、ユーザーは次にメールボックスにアクセスしたときに変更に気付くでしょう。