Preciso alterar a senha de uma caixa de correio de conta de usuário postfix diretamente em um banco de dados MySQL; no entanto, não tenho ideia do formato usado.
Aqui está a tabela:
SELECT username,password FROM mailbox LIMIT 1;
+------------------+------------------------------------+
| username | password |
+------------------+------------------------------------+
| [email protected] | $1$60Dgu9vc$T7vaQfTKgxUpci0TTnsyO0 |
+------------------+------------------------------------+
Qual é o formato? Como mudar isso?
Responder1
O $1$
início do campo de senha indica que é um hash MD5.
Para criptografar uma senha em um hash MD5, você pode usar o openssl passwd
comando.
passwd Geração de senhas com hash.
e de openssl passwd --help
:
-1 Algoritmo de senha baseado em MD5
-stdin lê senhas de stdin
Então, para gerar o hash MD5, um pequeno exemplo de bash:
#/bin/bash
PASSWORD="test123"
MD5=`echo $PASSWORD | openssl passwd -1 -stdin`
Ao executá-lo, você obteve como saída a senha criptografada pretendida:
$1$EaYOC8n4$04LSDBtt4A8GPVRUkzBXG/
Então, para alterar a senha no banco de dados MySQL para 'test123', você faz no prompt do MySQL:
USE postfix UPDATE mailbox SET password="$1$EaYOC8n4$04LSDBtt4A8GPVRUkzBXG/" WHERE username="[email protected]";
A alteração entra em vigor imediatamente e o usuário notará a alteração no próximo acesso à caixa de correio.