Sheensay → WordPress → Как восстановить пароль администратора в WordPress

Как восстановить пароль администратора в WordPress

11.04.2018


Порой возникает ситуация, когда пароль от панели администратора в WordPress забывается или теряется, либо же вы занимаетесь чужим сайтом, и нужно восстановить доступ в админку. Ниже будет рассказано о паре способах, как быстро поменять пароль администратора или пользователя в Вордпресс.

  • Самый простой способ сменить пароль админа WordPress, дать права админа и суперадмина
  • Как восстановить доступ с помощью phpMyAdmin
  • Как изменить пароль существующему пользователю
  • Как добавить нового администратора
  • Как добавить админа WordPress с помощью SQL
  • Как изменить пароль пользователю, если нет доступа к phpMyAdmin

Самый простой способ сменить пароль админа WordPress, дать права админа и суперадмина

Этот способ — самый простой вариант, который позволит:

  • Если пользователя не существует, создать его и сразу дать права админа;
  • Если пользователь существует, сменить ему пароль;
  • Назначить пользователя администратором (administrator);
  • Если WordPress работает в режиме Multisite, назначить пользователя суперадминистратором (superadmin) сети WordPress MU.

Создаём строго в кодировке UTF-8 без BOM (например, в Notepad++) mu-plugin (вкратце — /wp-content/mu-plugins/sheensay_change_admin_password.php), либо пишем в functions.php (в этом случае пропускаем первую строку с ?php)

<?php

/**
 * Создаём пользователя или изменяем существующего, и наделяем его правами админа и суперадмина
 * После использования обязательно удалите или отключите, закомментировав первую строку add_action
 * @link https://sheensay.ru/?p=1452
 */
add_action( 'init', 'sheensay_update_user' );

function sheensay_update_user() {

	// Логин. Меняете на свой
	$user_login = 'тутлогин';
	// Пароль. Меняете на свой
	$user_pass = 'тутпароль';
	// Роль пользователя
	$role = 'administrator';

	// Если пользователь с логином $user_login существует
	if ( username_exists( $user_login ) ) {

		// По логину получаем объект с данными пользователя
		$user = get_user_by( 'login', $user_login );

		// Получим ID пользователя
		$ID = $user_id = $user -> ID;

		// Если установленный пароль не совпадает с вышеуказанным, либо юзер не является администратором
		if ( !wp_check_password( $user_pass, $user -> data -> user_pass ) || !in_array( 'administrator', $user -> roles ) ) {

			// Меняем ему пароль на вышеуказанный
			wp_set_password( $user_pass, $user_id );

			// Апдейтим профиль пользователя
			$userdata = compact( 'ID', 'user_login', 'user_pass', 'role' );

			// Получаем ID пользователя
			$user_id = wp_update_user( $userdata );
		}
	} else {

		// Пользователя не существует, создаём его
		$userdata = compact( 'user_login', 'user_pass', 'role' );
		$user_id = wp_insert_user( $userdata );
	}

	// Если не удалось обновить данные пользователя, пишем это в логи
	if ( is_wp_error( $user_id ) ) {

		error_log( 'Не удалось обновить данные пользователя' );
		error_log( 'get_error_message = ' . $user_id -> get_error_message() );
		error_log( 'get_error_code = ' . $user_id -> get_error_code() );
	}
	// Если сайт работает в режиме Multisite
	elseif ( isset( $user_id ) && is_multisite() ) {

		// Наделим пользователя правами суперадмина
		require_once ABSPATH . 'wp-admin/includes/ms.php';
		grant_super_admin( $user_id );
	}
}

Внесите в значение переменной $user_login нужный логин, $user_pass — нужный пароль.
Пароль желательно собрать из букв латиницы разного регистра (больших и маленьких) и цифр. Спецсимволы не используйте, с ними пароль не установится. Когда получите доступ к панели администратора, сможете установить оттуда пароль со спецсимволами.

Теперь пробуйте авторизоваться в панели администратора http://example.com/wp-admin/ с логином и паролем, которые вы указали в соответствующих переменных.

После успешной авторизации в панели админа обязательно сделайте следующее:

  1. Удалите из /mu-plugins/ файл sheensay_change_admin_password.php или вышеуказанный код из functions.php, если не сделали этого ранее;
  2. Смените пароль на сложный, если в $user_pass вы указали что-то простое.

Оба пункта выполнять обязательно, так как код создаёт ненужную нагрузку, а простой пароль — потенциальная дыра в безопасности!

Помните, что по статистике большинство взломов сайтов — из-за простого легкоподбираемого пароля

Как восстановить доступ с помощью phpMyAdmin

Имя доступ к phpMyAdmin, можно быстро создать своего пользователя или же изменить пароль от существующего. Для этого вы проводите следующие манипуляции

Найти таблицу с пользователями в WordPress

  1. Заходите в панель управления phpMyAdmin
  2. Находите там свою базу данных
  3. Ищете таблицу wp_users и открываете её

Вот тут хочу привлечь ваше внимание. Посмотрите в вашу базу данных, а именно на префиксы таблиц. По умолчанию, таблицы имеют префикс wp_. Если у вас он другой, например, rp_, то и все команды далее вы должны поменять соответственно под ваш префикс везде без исключения, т.е., к примеру, использовать не wp_capabilities, а rp_capabilities, и так далее. Если таблиц много, и вы не уверены, какой префикс верный, загляните в файл wp-config.php в корне вашего сайта, он будет обозначен в конце в переменной $table_prefix = 'wp_';. Также, будьте внимательны к регистру букв, ABС_capabilities и abc_capabilities — это разные таблицы с точки зрения вордпресс

Дальше всё зависит от ваших потребностей: либо у вас уже есть пользователь, и нужно просто изменить ему пароль, либо нужно создать отдельный аккаунт с правами администратора. Как — описано дальше.

Как изменить пароль существующему пользователю

  1. В таблице wp_users находите нужный аккаунт — Изменить
    Список пользователей WordPress

    Список пользователей WordPress

  2. В открывшемся окне ищем строку user_pass. В ней в столбце Функция в выпадающем списке надо выбрать MD5, а в столбце Значение ввести новый пароль
     Устанавливаем новый пароль для пользователя

    Устанавливаем новый пароль для пользователя

Это всё, пароль изменён, доступ к админке с помощью этого аккаунта восстановлен. Если нет, пройдитесь по всем пунктам внимательнее. Если всё же не помогло — пишите в комментариях, решим вопрос

Как добавить нового администратора

Далее будет инструкция, как добавить нового пользователя с правами администратора. Для этого нам придётся провести 3 несложных запроса к базе данных и, при этом, быть внимательными.

  1. Открываем таблицу с пользователями wp_users. В ней на вкладке Обзор мы видим список текущих пользователей.
    Список текущих пользователей

    Список текущих пользователей

    Пока что, у нас только 1 пользователь с логином admin и ID = 1

  2. Теперь мы добавим своего нового пользователя с правами админа, так как по тем или иным причинам не можем пользоваться текущим (или его не существует). Придумаем ему логин test. ID зададим равным 2, руководствуясь принципом — самый большой ID среди всех пользователей +1.
    Переходим на вкладку Вставить

    Добавляем нового пользователя

    Добавляем нового пользователя

    • ID — вводим сюда ID нового пользователя
    • user_login — логин
    • user_pass — пароль. Не забываем добавить функцию MD5
    • user_nicename — никнейм
    • user_email — email пользователя. На него приходят уведомления
    • user_url — ссылка на сайт пользователя. Не обязательно
    • user_registered — дата регистрации пользователя
    • user_status — статус пользователя. Выставляете 0
    • display_name — отображаемое имя пользователя. На ваш вкус
    • После заполнения полей отправляете запрос — жмёте OK

    В результате увидите, что запрос успешно выполнен

    Новый пользователь успешно добавлен

    Новый пользователь успешно добавлен

    А в таблице wp_users появился наш пользователь

    wp-users-new-list

    Но, не спешите радоваться. Если вы на данном этапе попробуете авторизоваться под свежим аккаунтом, то наткнётесь на ошибку: У вас недостаточно полномочий для доступа к этой странице.
    Это значит, что для данного пользователя не выставлены нужные права. И этим сейчас мы и займёмся.

  3. Переходим в таблицу wp_usermeta, вкладка Вставить и заполняем поля:
    Добавляем пользователю права администратора

    Добавляем пользователю права администратора

    • umeta_id — оставляем пустым
    • user_id — вводим ID нашего пользователя. В моём случае 2
    • meta_key — вводим wp_capabilities. Это ключ к правам пользователя
    • meta_value — вставляете без изменений a:1:{s:13:"administrator";s:1:"1";} — это сериализованная строка с правами администратора
  4. И последний штрих — снова переходим во вкладку Вставить таблицы wp_usermeta
    • umeta_id — оставляем пустым
    • user_id — вводим ID нашего пользователя. В моём случае 2
    • meta_key — вводим wp_user_level. Ключ к уровню доступа пользователя
    • meta_value — вставляете 10 — наивысший уровень

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

Как добавить админа WordPress с помощью SQL

Выжимка на SQL для тех, кому лень возиться с phpMyAdmin.
Нужно заменить в тексте db на имя вашей базы данных, значение ID на ваше.
По умолчанию, в базу db с префиксом таблицwp_ будет добавлен администратор под ником и логином test, ID=2 и паролем 111

INSERT INTO `db`.`wp_users` (`ID`, `user_login`, `user_pass`, `user_nicename`, `user_email`, `user_url`, `user_registered`, `user_activation_key`, `user_status`, `display_name`) VALUES ('2', 'test', MD5('111'), 'test', '[email protected]', '', '2016-04-25 00:00:00', '', '0', 'Test');


INSERT INTO `db`.`wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, '2', 'wp_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}');


INSERT INTO `db`.`wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, '2', 'wp_user_level', '10');

Как изменить пароль пользователю, если нет доступа к phpMyAdmin

Если есть доступ к SSH или FTP, но нет к phpMyAdmin, вы можете воспользоваться следующим вариантом.
Открываете каталог (если не существует, создаёте) /wp-content/mu-plugins/. (Подробнее про mu-plugins и WordPress MU)
В нём создаёте файл с любым названием, например, change_password.php, а внутрь этого файла записываете код

<?php
add_action( 'init', 'sheens_set_new_password' );
function sheens_set_new_password() {
    $_ = get_user_by( 'login', 'логин' ); // тут вы записываете логин пользователя, которому нужно жёстко прописать пароль
    wp_set_password( 'пароль', $_->ID ); // тут вы записываете новый пароль
}

Не забудьте сменить логин и пароль на Ваши

После этого сохраняете всё и авторизуетесь на сайте под этим пользователем.

Как только вам удалось авторизоваться после этой манипуляции, тут же удалите файл change_password.php, так как он будет создавать ненужную нагрузку на сайт, сбрасывая пароль при каждом посещении сайта.



Так себеНеплохоНормальноХорошоОтлично (4 оценок, в среднем: 5,00 из 5)
Загрузка...


  • Как обезопасить панель администратора WordPress
  • Установка плагинов в WordPress
  • Настроить отправку email писем в WordPress
  • Как удалить поле URL (сайт) из формы комментариев в WordPress
  • WP-CLI — управление WordPress из консоли

WordPress admin password recovery wordpress админка восстановление пароль

Свежие записи

  • Squid — свой собственный HTTP Proxy сервер
  • Как исправить ошибку «Обновить WordPress — В настоящий момент выполняется другое обновление»
  • Query Monitor
  • LEMP
  • Telegram

Свежие записи

  • Squid — свой собственный HTTP Proxy сервер
  • Как исправить ошибку «Обновить WordPress — В настоящий момент выполняется другое обновление»
  • Query Monitor
  • LEMP
  • Telegram

Свежие комментарии

  • Sheens к записи Что такое SSL и TLS, как установить и настроить
  • Геомант к записи Что такое SSL и TLS, как установить и настроить
  • Sheens к записи Last-Modified в WordPress
  • Артур к записи Last-Modified в WordPress
  • Sheens к записи EWWW Image Optimizer — плагин для сжатия png, jpeg, gif анимации без потери качества
  • Telegram
  • Вконтакте
  • Facebook
  • Twitter
  • Google+
  • Одноклассники
  • Мой Мир Mail.ru
  • RSS

Copyright © 2025 · Sheensay on Genesis Framework · WordPress · Log in