Если вы забыли пароль от аккаунта главного админа сайта на Drupal 7, то это не беда. Главное, не потерять доступ к БД сайта. Пароли всех пользователей храняться в БД в таблице USERS, в поле pass, но не все так просто.
Узнать старый пароль из БД не получится, потому что он, естественно, шифруется. Но вы можете заменить старый пароль в этом поле на новый и зайти в аккаунт уже с ним. Для этого потребуется зашифровать новый пароль (друпал шифрует пароли в MD5) и вставить его в поле pass вместо старого.
Итак, вам нужно проделать следующие действия:
- Создать текстовый файл и назвать его например reset.php
- Добавить в него код
<? define('DRUPAL_ROOT', getcwd()); require_once DRUPAL_ROOT . '/includes/password.inc'; require_once DRUPAL_ROOT . '/includes/bootstrap.inc'; drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); echo user_hash_password('qwerty'); die();
где 'qwerty' — ваш новый пароль
- Залить этот файл в корень сайта и обратиться к нему через браузер.
- Полученную строку скопировать и вставить в поле pass таблицы USERS нужному акку.
- Зайти на сайт с новым паролем.
Что делать, если это не помогло?
Данный способ помогает в повальном большинстве случаев. Однако есть и исключения. Мне, например, один раз не помогло. Моя трудность заключалась в том, что друпал почему-то не авторизовывал пользователя с uid=1, именно его, под остальными можно было зайти свободно. И дело было не в паролях, т.к. вышеописанным способом пароль я поменял на новый, да и с другими юзерами замена пароля через БД прекрасно работает.
Так что же делать, если по дефолту у главного админа uid=1, но под ним друпал вас не пускает? Я выбрал самое банальное решение — добавил через БД нового пользователя с uid=3 (у меня закрыта регистрация, а под админом не пускает, поэтому пришлось добавлять через БД) и опять же в БД выставил ему приоритет главного админа, который снял с аккаунта uid=1.
Как это сделать?
- Через phpVyAdmin заходим в базу, дальше находим таблицу USERS и добавляем строку (если не знаете что значат те или иные поля, то вот тут можно посмотреть значение всех пунктов) с новым юзером.
- Идем в таблицу users_roles и в строке uid меняем '1' на тот uid, который присвоили новому пользователю. Строку rid не трогаем, это номер роли.
- Заходим под новым аккаунтом и радуемся правам root'а.
Такие дела.