В WordPress можно восстанавливать и изменять пароль пользователя, если у вас есть доступ к email пользователя или вы уже авторизованы. А как поменять/установить пароль любому пользователю если вы не знаете пароль администратора? Ниже рассмотрим разные варианты изменения пароля для разных ситуаций.
Главное помните — всегда нужно указывать надежный пароль!
Узнать пароль пользователя WordPress невозможно. Пароли хэшируются и единственный способ узнать пароль по хэшу — это его угадать. Такой подбор паролей называется Брут-форс атакой.
Пароль пользователя WordPress, храниться в базе данных, в поле user_pass таблицы wp_users.
Если вы авторизованы, то пароль можно изменить на странице профиля Пользователи → Ваш профиль. Если вы при этом еще и администратор, то пароль можно изменить любому пользователю, перейдя в редактирование пользователя со страницы Пользователи → Все пользователи.
Если вы забыли пароль, но у вас есть доступ к email пользователя, то пароль можно восстановить. Для этого нужно:
- Перейти на страницу Входа: /wp-login.php.
- Кликнуть по ссылке «Забыли пароль?».
- Ввести email или имя пользователя, пароль для которого нужно восстановить.
- Перейти по ссылке на восстановление пароля, полученной на email (если указали имя пользователя, то нужно проверить email соответствующий имени пользователя).
- Ввести новый пароль в форме на которую вы попали кликнув по ссылке в письме.
- Войти на сайт используя новый пароль.
Почти все хостинг провайдеры предоставляют доступ к phpMyAdmin — панель управления базой данных.
Там изменить пароль любого пользователя очень просто. Для этого нужно зайти в таблицу wp_users и нажать «редактировать» (иконку карандаша) рядом с пользователем, пароль которого хотите поменять. В результате вы увидите такую форму:
Измените хэш код в поле user_pass на новый пароль. И обязательно укажите MD5 для установленного значения (так введенный текстовый пароль будет захэширован и WP сможет его потом «распознать»).
Заметка: при первой авторизации MD5 хэш автоматически будет изменен на более надежный хэш, который используется в вашей версии WordPress.
Для смены пароля можно использовать SQL запрос.
Пример ниже, показывает как изменить пароль администратора WordPress, зная его логин. Тут новый пароль будет — newpass, а логин администратора — admin:
UPDATE wp_users SET user_pass = MD5('newpass') WHERE user_login = 'admin'
Если вдруг вы забыли логин, но точно помните, что вы были первым юзером на блоге, а значит ваш ID равен 1, то можно сбросить пароль по ID — WHERE ID = 1:
UPDATE wp_users SET user_pass = MD5('newpass') WHERE ID = 1;
Или можно изменить пароль зная email юзера:
UPDATE wp_users SET user_pass = MD5('newpass') WHERE user_email = 'adminko@gmail.com';
MD5('newpass') = e6053eb8d35e02ae40beeeacef203c1a
Пример запуска MySQL запроса из консоли
Для начала нужно зайти в консоль и подключиться к БД, такой командой:
или без указания хоста (если вы работает в консоли из среды самого хостинга)
Далее, нужно запустить вышеупомянутый запрос, так:
Чтобы узнать название таблиц в базе данных my_database, используйте команду:
mysql> SHOW TABLES IN my_database; +---------------------------+ | Tables_in_my_database | +---------------------------+ | wp_commentmeta | | wp_comments | | wp_options | | wp_postmeta | | wp_posts | | wp_term_relationships | | wp_term_taxonomy | | wp_termmeta | | wp_terms | | wp_usermeta | | wp_users | +---------------------------+
Чтобы получить список логинов пользователей из таблицы юзеров, используйте команду:
mysql> SELECT user_login FROM wp_users; +----------------+ | user_login | +----------------+ | abalak | | AbamFaw | | admin | +----------------+
Новый пароль можно установить PHP кодом, с помощью функции wp_set_password().
Вставьте следующий код в файл темы functions.php
. Затем зайдите на любую страницу сайта и допишите в конец URL ?init_new_pass_set=anton.
В результате пароль пользователя anton будет изменен на newpass.
if( isset($_GET['init_new_pass_set']) && $login = $_GET['init_new_pass_set'] ){ add_action( 'init', function(){ wp_set_password( 'newpass', get_user_by( 'login', $login )->ID ); wp_die( "Пароль юзера `$login` изменен" ); } }
После использования этого кода, его обязательно нужно удалить!
Чтобы не изменять пароль пользователя, но при этом попасть в админку, можно использовать функцию wp_set_auth_cookie().
Код ниже показывает как авторизоваться в качестве администратора не меняя его пароль.
Вставьте код в файл темы functions.php
. Затем зайдите на любую страницу сайта и допишите в конец URL ?login_as_admin. После этого вы автоматически будите авторизованы как администратор.
if( isset($_GET['login_as_admin']) ){ add_action( 'init', function(){ $users = get_users([ 'role' => 'administrator' ]); wp_set_auth_cookie( $users[0]->ID ); } ); }
Изменить пароль пользователя можно командой wp user update.
Этот пример показывает как для пользователя с логином USERNAME установить пароль PASSWORD:
Получить список пользователей (чтобы узнать логин) можно командой wp user list:
wp user list +----+---------------+--------------+---------------------+---------------------+---------------+ | ID | user_login | display_name | user_email | user_registered | roles | +----+---------------+--------------+---------------------+---------------------+---------------+ | 4 | aleksej-nnn | Alex | alsey119@yandex.ru | 2018-04-24 21:04:24 | administrator | | 7 | denis | Denis | deis@denis.pro | 2018-06-06 23:30:54 | subscriber | | 9 | shk_user | shk_user | sheer@qsologies.com | 2018-08-11 13:27:09 | subscriber | | 8 | vladlu | vladlu | spata@famail.com | 2018-03-26 00:11:48 | editor | +----+---------------+--------------+---------------------+---------------------+---------------+
Команда wp user reset-password
Этот пример показывает как сбросить пароль для двух пользователей и отправить им сообщение о том что пароль был изменен.
wp user reset-password admin editor Reset password for admin. Reset password for editor. Success: Passwords reset.
Пользователь в результате получит такое сообщение на почту: