Necesito cambiar una contraseña de un buzón de cuenta de usuario de Postfix directamente en una base de datos MySQL; sin embargo no tengo idea del formato utilizado.
Aquí está la tabla:
SELECT username,password FROM mailbox LIMIT 1;
+------------------+------------------------------------+
| username | password |
+------------------+------------------------------------+
| [email protected] | $1$60Dgu9vc$T7vaQfTKgxUpci0TTnsyO0 |
+------------------+------------------------------------+
¿Qué formato es? ¿Cómo cambiarlo?
Respuesta1
Al $1$
principio del campo de contraseña se insinúa que es un hash MD5.
Para cifrar una contraseña en un hash MD5, puede utilizar el openssl passwd
comando.
passwd Generación de contraseñas hash.
y de openssl passwd --help
:
-1 algoritmo de contraseña basado en MD5
-stdin lee contraseñas desde stdin
Entonces, para generar el hash MD5, un breve ejemplo de bash:
#/bin/bash
PASSWORD="test123"
MD5=`echo $PASSWORD | openssl passwd -1 -stdin`
Al ejecutarlo, obtuvo como resultado la contraseña cifrada deseada:
$1$EaYOC8n4$04LSDBtt4A8GPVRUkzBXG/
Entonces, para cambiar la contraseña en la base de datos MySQL a 'test123', debe hacerlo en el indicador de MySQL:
USE postfix UPDATE mailbox SET password="$1$EaYOC8n4$04LSDBtt4A8GPVRUkzBXG/" WHERE username="[email protected]";
El cambio entra en vigor inmediatamente y el usuario notará el cambio en el siguiente acceso al buzón.