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

03 Июн 2008
Опубликовано VladSavitsky
Задача: 

Нужно восстановить пароль супер-админа (user#1) Друпала.

Решение

Варианты

  • Если есть другой пользователь с привилегиями админа
  • Если есть доступ к базе данных

Если есть другой пользователь с привилегиями админа

Первый способ, которым можно воспользоваться для восстановления пароля - это другой пользователь с административными привилегиями. С помощью этого пользователя можно зайти в панель управления Drupal, и изменить пароль для администратора, потерявшего свой пароль. К сожалению, не всегда имеется пользователь с административными привилегиями. Если у вас нет такого пользователя, то не стоит отчаиваться - есть второй способ.

Если есть доступ к базе данных

Второй способ восстановления пароля заключается в том, чтобы войти в базу данных, и средствами phpmyadmin изменить уже имеющийся пароль администратора. Помните, что пароли в базе данных Drupal, хранятся в зашифрованном виде, в таблице users. Расшифровать нынешний пароль дело не лёгкое и бесполезное.

Генерация пароля в командной строке
Можно сгенерировать MD5-хэш нового пароля с помощью утилиты md5sum:

echo -n "new pass" | md5sum

Обратите внимание:
если не используется ключ "-n", то хеш будет не для пароля
"new pass", а для "new pass\n", т.к. команда echo по умолчанию добавляет перевод строки (\n)
Нужно использовать ключ "-n", что бы не вставлялся перевод строки. Подробнее см. man  echo.

Генерация пароля через PHP
Можно генерировать MD5-хэш нового пароля через консольный интерфейс php:

php -r "echo md5('new pass');"

Использование MD5-хэша известного пароля
Если вы не можете сгенерировать пароль, то используйте MD5-хэш пароля из базы данных пользователя, пароль которого вы знаете.

Если никого не знаете - зарегистрируйте нового пользователя.
Если не получается зарегистрировать - создайте пользователя на локальном сервере или воспользуйтесь одним из приведённых ниже хешей:

  • "new pass":a2173fd7fd80ec5cbac15e2255ee8d78
  • "NOpassword":2972f12f8765aefa4f5d6357639a7e07
  • "admins_password":ea39de38e5f0c152892600f98f64b9fa
  • "admin_has_lost_his_password":d7099bf8db6a50874a726e791ae0a1af

После удачного входа пароль нужно сразу же сменить!

Когда MD5-хеш пароля уже получен, с помощью phpmyadmin выполнить запрос:

UPDATE префикс_user SET pass = 'MD5-хеш' WHERE uid = 1

где,

  • префикс_user - название таблицы с префиксом, если он используется.
  • MD5-хеш - MD5 значение нового пароля.

Генерация пароля функцией MySQL

UPDATE префикс_user SET pass = MD5('НОВЫЙ_ПАРОЛЬ') WHERE uid = 1

Использованные материалы

Drupal: руководство по пользованию

Комментарии

Можно проще делать UPDATE базы, таким запросом
UPDATE префикс_user SET pass = MD5('НОВЫЙ_ПАРОЛЬ') WHERE uid = 1

gildor | Авг 3rd, 2009 в 4:58 после полудня

Исправил рецепт и внёс уточнение по поводу ключа -n. Спасибо

VladSavitsky | Авг 3rd, 2009 в 11:21 после полудня
 
 
 

RSS-лента новостей

Dries Buytaert по-русски
]]>Русский поиск Drupal]]>

Перенос сайта из Joomla в Drupal
Перенос сайта из WordPress в Drupal

]]> Drupal - это бесплатная система управления контентом с открытым исходным кодом ]]>