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에서 비밀번호를 읽습니다.
따라서 짧은 bash 예인 MD5 해시를 생성하려면 다음을 수행하십시오.
#/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]";
변경 사항은 즉시 적용되며 사용자는 다음 사서함 액세스 시 변경 사항을 확인할 수 있습니다.