Перейти к основному содержанию
menu

Некоторые хостинговые компании не разрешают SSH доступ к веб-серверу, на котором установлен сайт Drupal, что делает невозможным восстановление пароля учетной записи администратора Drupal 8 через командную строку. Следующий метод следует использовать в качестве «последнего средства», когда методы восстановления пароля на основе командной строки не работают.
Метод сброса пароля, описанный ниже, использует скрипт PHP, который должен быть загружен на веб-сервер для сброса пароля администратора. Для успешного выполнения этого метода требуется загрузить файл PHP на сервер, на котором размещен сайт.


PHP-скрипт выполняет полную загрузку Drupal для получения доступа к необходимым функциям, которые генерируют административный пароль, а затем обновляют базу данных новым паролем, который вы указываете через URL-адрес при выполнении сценария через веб-браузер.
Примечание: оставление этого сценария сброса пароля на вашем сервере после сброса пароля представляет собой очень критическую дыру в безопасности, которая позволяет любому пользователю сбросить пароль администратора. Используйте этот сценарий осторожно, и всегда удаляйте сценарий после того, как вы его закончили

  • Сначала создайте файл со случайным именем (например, gh34tu9.php).
  • Скопируйте и вставьте следующее содержимое в файл и сохраните файл.
<?php
use Drupal\Core\DrupalKernel;
use Symfony\Component\HttpFoundation\Request;

if (pathinfo(__FILE__, PATHINFO_FILENAME) == 'admin-pass-reset') {
  die('Please change your file name to a random string to continue');
}

// Boot Drupal.
$autoloader = require __DIR__ . '/autoload.php';

$request = Request::createFromGlobals();
$kernel = DrupalKernel::createFromRequest($request, $autoloader, 'prod', FALSE);
$kernel->boot();

// Get password hasher service.
$password_hasher = $kernel->getContainer()->get('password');

// Hash password.
if (isset($_GET['pass']) && !empty($_GET['pass'])) {
 $newhash =  $password_hasher->hash($_GET['pass']);
}
else {
  die('Retry with ?pass=PASSWORD set in the URL');
}

// Update user password.
$updatepass = Drupal::database()->update('users_field_data')
  ->fields(array(
    'pass' => $newhash,
//  'name' => 'admin',
//	'mail' => 'yourmail@example.com'
  ))
  ->condition('uid', '1', '=')
  ->execute();

// Clean user 1 cache.
Drupal::cache('entity')->delete('values:user:1');

print "Done. Please delete this file as soon as possible"; 
  1.  Загрузите файл в корень установочного каталога Drupal (то есть, где существуют index.php, update.php, robots.txt и другие файлы и каталоги).
  2. Выполните скрипт, запросив файл в веб-браузере, используя следующий шаблон URL:http://example.com/gh34tu9.php?pass=mypassword В приведенном выше URL, заменить пример. com с вашим фактическим доменным именем, - замените gh34tu9.php фактическим именем файла, которое вы указали в первом шаге выше, - заменить мой пароль на новый пароль. Примечание. Настоятельно рекомендуется выбирать пароль, который состоит из прописных и строчных букв и цифр и имеет длину не менее 12 цифр.
  3. Если сценарий успешно выполнен, вы увидите текст «Готово» в вашем веб-браузере. Пароль учетной записи администратора, созданной при установке Drupal (т. е. User / 1), будет изменен на «mypassword» (или любое другое значение, которое вы укажете).
  4. Наконец, удалите файл из корневого каталога установки Drupal.

Сбросить имя пользователя учетной записи администратора


Если вы не можете вспомнить (или просто не знаете) имя пользователя учетной записи администратора, в приведенном выше сценарии измените // 'name' => 'admin' на 'name' => 'admin' и имя пользователя также будет изменен на "админ". Вы также можете сбросить адрес электронной почты администратора таким же образом,
«раскомментировав» (удалите //) строку для адреса электронной почты в приведенном выше скрипте.

 

assistant Теги

keyboard_arrow_up