Hero

Cómo restablecer el password admin en Drupal 7 usando MySQL

Julio 19, 2013

kendall
Drupal
MySQL

A cualquiera le puede pasar que olvidemos la contraseña de un usuario, pero gran problema es cuando se trata de un usuario administrador de nuestra instalación de Drupal 7, o si peor aun estamos empezando a trabajar en un proyecto ya existente y no tienen idea de cual era la contraseña de nuestro querido usuario 1.

Bueno a todo esto recordar que aquello que se podía hacer para Drupal 6 de ingresando por linea de comandos a nuestra base de datos y correr:

UPDATE users SET pass = MD5('nuevo_password') WHERE uid=1;

No nos funcionara, ya que Drupal 7 utiliza un encriptado diferente al MD5, antes de poder sobreescribir el antiguo password primero necesitaremos generar un nuevo password ya cifrado y listo para ser almacenado en la base de datos.

Esto lo podemos hacer fácilmente ejecutando la siguiente linea desde nuestra linea de comandos posicionado en una instancia local de cualquier instalación de Drupal 7 (no requiere ser una instancia funcional) basta con que tenga los archivos de una instalación regular los cuales pueden ser descargados desde: drupal.org

➜  ./scripts/password-hash.sh nuevo_password
 
password: nuevo_password 		hash: $S$D3ZdEyYIH.44d7XPg7pPrJmQoN06xqAIbO3RI9CRo8bqXFViY5Pv 

Cuando ya poseemos un nuevo hash de nuestra nueva contraseña ya encriptada y lista para ser ingresada en la base de datos, deberemos ingresar por linea de comandos directamente a la base de datos de nuestro sitio, esto lo podremos hacer por medio de drush con el comando drush sqlc o utilizando la una conexión ssh a nuestro sitio y luego algo como lo siguiente:

mysql -u[user] -p[password] -h [host o ip] -P [#puerto] [nombre_bd]

Nota: de poseer la posibilidad de conectarse remotamente a la bse de datos el host o ip cambiara de ser localhost al host necesario para realizar esta conexión permitiendo esto conectarse directamente a la bd sin necesidad de haber ingresado primero al servidor por medio de una conexión ssh.

En la consola de base de datos deberemos de ejecutar un simple “update” a la tabla “user” con nuestro hash creado previamente de la siguiente forma:

UPDATE users SET pass ='$S$D3ZdEyYIH.44d7XPg7pPrJmQoN06xqAIbO3RI9CRo8bqXFViY5Pv' WHERE uid = 1;

Con esto la nueva contraseña debería de estar funcionando, en el caso de que esto no sea así siempre tenemos una opcion mas.

Continuando en el mismo lugar donde se realizo la inserción del nuevo password sobreescribir el valor “mail” en la base de datos para el usuario administrador y así registrar uno propio donde podamos realizar el flujo regular de Drupal para “Recuperar una Contraseña Perdida”, esto podría ser útil en el caso de que el usuario administrador se encuentre bloqueado por intentar ingresar con una contraseña errónea varias veces, por lo que aun cuando ya tenemos la contraseña correcta el usuario estará bloqueado.

UPDATE users SET mail ='nuevo@mail.com' WHERE uid = 1;

De esta forma podremos ingresar con una nueva contraseña al usuario administrador de nuestro sitio.

Espero les sea de utilidad.

Recibe consejos y oportunidades de trabajo 100% remotas y en dólares de weKnow Inc.