Сменить пароль администратора в 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 и введите только что измененный адрес электронной почты.

  • Перейдите на свою электронную почту и нажмите на ссылку сброса, чтобы перейти на свой сайт и сбросить пароль.

Готово!

Вы можете сгенерировать запрос здесь и выполнить запрос в базу данных.

Другие вопросы по тегам