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;
NO recuerdo ni el usuario ni la contraseña de mi sitio, que puedo hacer
Hola Fabricio, ¿has seguido los pasos que se indican en el artículo?. ¿Qué versión de Drupal tienes?, ¿Dónde te atascas?
Estupendo Daniel, me ha venido de perlas
Gracias!
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 ?
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
buen dato para salir de apuros :)