Сбрасываем пароль в Drupal

В Drupal 5 и 6 достаточно выполнить запрос к базе данных, чтобы сбросить пароль админа:

  UPDATE users SET pass = md5('ВАШ_ПАРОЛЬ') WHERE uid = 1;

В Drupal 7 сброс пароля немного сложнее. А все потому, что в этой версии алгоритм шифрования пароля был изменен с MD5 на более устойчивый, с использованием SHA512.

Если у вас Drupal 7, то у вас есть несколько способов сбросить пароль:

1. Создать в корне сайта скрипт, который вызовет функцию user_hash_password для генерации хеша пароля.
Ниже пример содержимого скрипта.

  1. <?php
  2. define('DRUPAL_ROOT', getcwd());
  3. require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
  4. require_once DRUPAL_ROOT . '/includes/password.inc';
  5. drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
  6. echo user_hash_password('ВАШ_ПАРОЛЬ');
  7. die();
  8. ?>

Выполнив скрипт, вы получите строку-хеш пароля, например:
$S$DMzbGJybGry6UAjAcC9nMMnZrbIT4sTsI7XigxY/SyXUOlsIaTek.

Эту строку используйте в запросе к базе данных:

  1. UPDATE users
  2. SETpass = '$S$DMzbGJybGry6UAjAcC9nMMnZrbIT4sTsI7XigxY/SyXUOlsIaTek'
  3. WHERE uid = 1

2. Можно воспользоваться скриптом, который находится в папке /scripts установленного Drupal 7. Скрипт называется password-hash.sh.
Зайдите в корневую директорию установленного Drupal и с командной строки запустите скрипт для получения хеша пароля.

Под Linux команда будет выглядеть так:
/scripts/password-hash.sh ВАШ_ПАРОЛЬ
Под Windows придется воспользоваться PHP интерпретатором:

php .\scripts\password-hash.sh ВАШ_ПАРОЛЬ

Полученный хеш используйте в запросе к базе данных:
UPDATE users SET pass = 'ВАШ_ХЕШ' WHERE uid = 1;

3. Сбросить пароль можно также через утилиту Drush, если она у вас установлена.

Формат команды таков:
drush user-password username --password="new_password"

Russian
Категория: 
The code has been tested and works
Мультитег: