TestRail: сброс пароля admin

Автор: | 05/13/2019
 

Имеется установленный TestRail, к которому потеряли пароля админа, а опция Reset Password сообщает, что «Email sending failed» — хотя почта настроена, и работает — пользователи письма получают.

Лог /var/www/testrail.example.com/logs/log-2019-05-13.php ничего внятного не сообщает, поэтому поступим проще — обновим пароль прямо в базе данных.

Создаём бекап базы:

root@bttrm-testrail:/home/admin# mysqldump testrail > testrail.sql-13.05.2019.bkp

Подключаемся к серверу, находим базу данных TestRail:

root@bttrm-testrail:/home/admin# mysql
...
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| testrail           |
+--------------------+

Пользователи и их пароли хранятся в таблице users:

MariaDB [(none)]> use testrail;
MariaDB [testrail]> desc users;
+---------------------------+--------------+------+-----+---------+----------------+
| Field                     | Type         | Null | Key | Default | Extra          |
+---------------------------+--------------+------+-----+---------+----------------+
| id                        | int(11)      | NO   | PRI | NULL    | auto_increment |
| name                      | varchar(250) | NO   |     | NULL    |                |
| email                     | varchar(250) | NO   | UNI | NULL    |                |
| is_admin                  | tinyint(1)   | NO   |     | NULL    |                |
| salt                      | varchar(250) | NO   |     | NULL    |                |
| hash                      | varchar(250) | NO   |     | NULL    |                |
| is_active                 | tinyint(1)   | NO   |     | NULL    |                |
| rememberme                | varchar(250) | NO   |     | NULL    |                |
| locale                    | varchar(250) | YES  |     | NULL    |                |
...

Находим администратора:

MariaDB [testrail]> select id, name from users;
+----+-------------------+
| id | name              |
+----+-------------------+
|  1 | admin             |
|  2 | F15531697701961   |
...

И обновляем пароль.

Задаём salt == xv4kregi40eyortrqy1d, hash == 3e1bb0a896b92c950a449ecb5358cb10 — это создаст пароль «secret«, указывая в where ID == 1:

MariaDB [testrail]> update users set salt = 'xv4kregi40eyortrqy1d', hash = '3e1bb0a896b92c950a449ecb5358cb10' where id = 1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

Логинимся с паролем «secret«, с сбрасываем на нормальный.