Сменить пароль администратора в drupal 7
Я использую встроенный пользовательский модуль Drupal 7, для регистрации пользователя, забыли ваш пароль, электронные письма и все такое.
Я забыл свой пароль администратора. У меня есть доступ к моему веб-сайту, который размещен на 1and1.com, а также доступ к mysql?
Можно ли изменить пароль или адрес электронной почты через SQL, чтобы я мог получить доступ к странице администратора?
Если это возможно, как? Можете ли вы помочь мне с этим?
Спасибо!
6 ответов
После нескольких исследований я попробовал следующий код, сохранил его как файл php в корневом каталоге
сохранил его как пароль-сброс-admin.php
<?php
define('DRUPAL_ROOT', getcwd());
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
require_once DRUPAL_ROOT . '/includes/password.inc';
if (isset($_GET['pass']) && !empty($_GET['pass'])) {
$newhash = user_hash_password($_GET['pass']);
}
else {
die('Retry with ?pass=PASSWORD set in the URL');
}
$updatepass = db_update('users')
->fields(array(
'pass' => $newhash,
// 'name' => 'admin',
// 'mail' => '<a href="mailto:yourmail@domain.com'">yourmail@domain.com'</a>;
))
->condition('uid', '1', '=')
->execute();
print "Done. Please delete this file immediately!";
drupal_exit();
?>
И после этого получить доступ к файлу php через следующее:
https://yoursite.com/password-reset-admin.php?pass=newpassword
Это просто сработало..:) Надеюсь, это поможет другим.
Пожалуйста, убедитесь, что вы удалили файл.
Если у вас установлен Drush, вам просто нужно ввести следующую команду в терминале из любой точки корня сайта.
drush upwd admin --password=mynewpassword
Вот, admin
имя пользователя; чей пароль будет изменен на mynewpassword
,
Чтобы сменить пароль, вам нужно иметь доступ к вашему веб-сайту. Если нет, загрузите копию drupal 7 на свой локальный компьютер.
Затем откройте свой терминал и перейдите в корневую папку Drupal 7. Затем введите следующую команду:
./scripts/password-hash.sh NEW_PASSWORD
замещать NEW_PASSWORD
с новым паролем, который вам нужен.
Это выведет новый хэш пароля, скопируйте этот пароль и перейдите в менеджер базы данных (phpMyAdmin или аналогичный) и измените пароль администратора на вновь сгенерированный текст.
Я не знаю другого способа сделать это, потому что Drupal не использует MD5
больше и использовать алгоритм хеширования вместо.
Перейдите в корневой каталог вашего Drupal. Затем создайте новый хэш.
В случае Drupal 7:
$ php scripts/password-hash.sh 'your-new-pass-here'
Затем выполните SQL-запрос, чтобы обновить пароль администратора:
UPDATE users_field_data SET pass='$S$Do7UQjqtEELNccdi92eCXcVJ2KnwUeHrSbK3YhFm8oR3lRJQbMB2' WHERE uid = 1;
В случае Drupal 8 путь к скрипту будет:
$ php core/scripts/password-hash.sh 'your-new-pass-here'
Обновить БД:
UPDATE users_field_data SET pass='$S$Do7UQjqtEELNccdi92eCXcVJ2KnwUeHrSbK3YhFm8oR3lRJQbMB2' WHERE uid = 1;
Очистить кеш:
DELETE FROM cache_entity WHERE cid = 'values:user:1';
Проверено и все работает!
Например, с помощью доступа к таблице "пользователи" в вашей базе данных через PhpMyAdmin (то есть эта таблица может иметь префикс, который вы уже упомянули во время установки Drupal, поэтому yourPrefix_ может быть именем вашего проекта как mywebsitename_, и в этом случае вы будет иметь mywebsitename_users).
Вы должны изменить столбец "pass", связанный со столбцом "uid", со значением 1 (т. Е. 1 для учетной записи администратора).
В качестве зашифрованного значения для пароля: Admin_12345 is =>
$ S $ DifCVXg9tNtHadziyyQJQVLAaZzW5EgS6OjR56D.mk8MpNQs1II2
Вы можете присоединиться к своей учетной записи администратора после замены старого значения хешированного пароля, хранящегося в вашей базе данных, которое вы полностью забыли.
Не забудьте сменить пароль: Admin_12345 после того, как вы войдете в свой аккаунт с другим.
Если у вас есть доступ к базе данных, то...
Перейдите к таблице пользователей в вашей базе данных и измените адрес электронной почты администратора на адрес электронной почты, к которому у вас есть доступ.
После этого зайдите на yoursite.com/user/password и введите только что измененный адрес электронной почты.
- Перейдите на свою электронную почту и нажмите на ссылку сброса, чтобы перейти на свой сайт и сбросить пароль.
Готово!
Вы можете сгенерировать запрос здесь и выполнить запрос в базу данных.