Восстановление пароля в Drupal

Для информации: в Drupal 6 пароли шифруются обычным хешированием MD5. В Drupal 7 уже используется SHA512 + соль. Рассмотрим способы восстановления паролей:

Если у вас есть доступ к консоли сервера и установлен drush то можно использовать универсальный способ для обоих версий:
drush upwd --password="newpassword" username
(где username имя пользователя у которого хотим восстановить пароль)

Drupal 6

Делаем простой запрос в базу данных
UPDATE users SET pass = MD5('newpassword') WHERE uid=1;
(соответственно uid=1 или любой другой, необходимого нам юзера)

Drupal 7

В консоли из корневой директории друпала выполняем команду:
./scripts/password-hash.sh newpassword
скрипт выдает сгенерированный хеш, который вставляем в базу:
UPDATE users SET pass = "полученный_хеш" WHERE uid=1;

На случай, если нету доступа к консоли, создаем php файл в корневой директории друпала, например setpassword.php
В него добавляем следующие строки:

  1. <?php
  2. define('DRUPAL_ROOT', getcwd());
  3.  
  4. require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
  5. drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
  6. require_once DRUPAL_ROOT . '/' . variable_get('password_inc', 'includes/password.inc');
  7. echo user_hash_password(trim($_GET['pass']));

открываем в браузере ссылку http://mysite/setpassword.php?pass=newpassword
где вместо newpassword вводим желаемый пароль
Получаем хэш и вставляем в базу данных