:::: MENU ::::

Drupal: Recuperar password de Administrador

3.00 avg. rating (61% score) - 4 votes

Una consulta que hemos recibido recientemente en la oficina era de un cliente que había perdido su acceso a Drupal 6 con la cuenta de administrador. Había cambiado la clave y no recordaba la nueva.

Restaurar password en Drupal 6

Para solucionar el problema en Drupal 6 es necesario acceder a la base de datos mediante phpMyAdmin o alguna herramienta similar y ejecutar la siguiente consulta en la tabla users.

Drupal 6 simplemente guarda el hash MD5 de la clave, sin salt, así que una simple consulta puede restaurar la clave de cualquier usuario al valor deseado.

   update users set pass = MD5('nueva-clave') where uid=1;

Nota: En Drupal, el usuario administrador siempre toma el uid=1, pero la técnica sirve para cualquier otro usuario de la Web,

Restaurar password en Drupal 7

En Drupal 7 la seguridad ha aumentado y las contraseñas ya no se guardan únicamente como un hash MD5 de la clave en claro. Además se realiza un salt de la clave por lo que no podemos utilizar el mismo método.

Para generar el password tendremos que utilizar una de las formas siguientes:

Restaurar password en Drupal 7 desde consola

Para este método necesitaremos un acceso a nuestro hosting mediante SSH, de forma que podamos ejecutar un script .sh de la siguiente forma.

  php scripts/password-hash.sh 'nueva-clave'

La orden anterior nos dará la clave lista para guardar en la base de datos y sólo tenemos utilizar phpMyAdmin para actualizar la tabla de usuarios, de forma similar a como lo haciamos en el caso de Drupal 6 pero sin realizar el MD5.

   update users set pass = '<valor-obtenido-arriba>' where uid=1;

Restaurar password en Drupal 7 sin acceso SSH

En caso de no tener un acceso SSH al servidor, podemos crear un archivo PHP en el root de nuestra web, por ejemplo mipassword.php, con el siguiente contenido.

   require_once dirname(__FILE__) . '/includes/bootstrap.inc';
   require_once dirname(__FILE__) . '/includes/password.inc';
   print _password_crypt('sha512', 'nueva-clave', _password_generate_salt(DRUPAL_HASH_COUNT));

Si accedemos a nuestra web con http://www.mipaginaweb.com/password.php obtendremos en pantalla el hash de nuestra clave para poder insertarlo en la base de datos, como en el caso anterior:

   update users set pass = '<valor-obtenido-arriba>' where uid=1;



6 Comments

  • Responder Matias |

    Hola, he seguido los pasos recomendados para la versión 6. El problema surge a raíz del traslado de mi sitio a un subdominio de mi hosting, es decir tengo mi versión de desarrollo totalmente funcional y otra con este inconveniente. Ambas dos se encuentran en el mismo servidor. El logueo de usuarios no funciona, se registra la session pero no se permite el acceso. ¿ Que debería revisar ?

  • Responder Junko85 |

    Exelente articulo, me sirvio para recuperar un proyecto en drupal 6 que desde hace un año no lo tocaba y se me habia olvidado la contraseña

    Gracia

Hey! Qué opinas sobre el artículo?