В текущей версии платформы VMmanager 6 изменить email (логин) пользователя через интерфейс невозможно.
Возможные способы изменить email пользователя:
- зарегистрировать пользователя с новым адресом и указать его владельцем у необходимых ВМ;
- исправить адрес в базе данных в таблицах vm_account, auth_user и msgs_user2delivery_method.
Второй способ потребует вмешательства в базу данных, это предполагает потенциальный риск. Мы не рекомендуем вносить ручные правки в базу, поскольку это может нарушить корректную работу платформы.
Инструкции по внесению изменений в БД следует выполнять только после резервного копирования платформы.
Смена электронной почты пользователя через базу данных
- Выполните резервное копирование платформы. Подробнее см. в статье Резервное копирование документации VMmanager 6.
-
Подключитесь к серверу с VMmanager по SSH и введите команду:
vm backup
- Введите пароль для архива резервной копии или нажмите Enter, чтобы создать архив без пароля. Копия будет сохранена в директории /opt/ispsystem/vm/backup/.
-
-
Подключитесь к СУБД:
В связи с поэтапным переходом платформы на использование СУБД PostgreSQL, разные экземпляры VMmanager могут использовать разные СУБД:
- VMmanager Hosting — MySQL;
- VMmanager Infrastructure:
- для новых установок на ОС Astra Linux, начиная с версии VMmanager 2023.06.1 — PostgreSQL;
- в остальных случаях — MySQL.
Чтобы определить тип СУБД, выполните на сервере с платформой команду:
docker ps --filter name=pgsql
Пример ответаCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3213c5dc94d0 postgres:12 "docker-entrypoint.s…" 5 days ago Up 4 days 5432/tcp pgsql
Если вывод команды содержит информацию о контейнере, платформа использует PostgreSQL, если ответ пустой — MySQL.
MySQLdocker exec -it mysql bash -c "mysql isp -p\$MYSQL_ROOT_PASSWORD"
PostgreSQLdocker exec -it pgsql bash -c "psql -d isp"
-
Выполните запрос к базе данных из таблицы auth_user для определения текущего email и ID пользователя:
select id,email from auth_user where email='example@example.com';
Пример вывода:
*************************** 1. row *************************** id: 100 email: example@example.com 1 row in set (0.00 sec)
Пояснения -
Если вывод выше содержит нужный email, измените адрес в таблице auth_user:
update auth_user set email='new_example@example.ru' where id=100;
Пояснения -
Выполните аналогичные действия для таблицы vm_account. Запрос:
select id,email from vm_account where email='example@example.com';
Пример вывода:
*************************** 1. row *************************** id: 100 email: example@example.com 1 row in set (0.00 sec)
Пояснения -
Если вывод выше содержит нужный email, измените адрес в таблице vm_account:
update vm_account set email='new_example@example.ru' where id=100;
Пояснения -
Выполните запрос к базе данных из таблицы msgs_user2delivery_method, чтобы определить ID и email пользователя:
select user, u2dm_params from msgs_user2delivery_method where u2dm_params regexp 'example@example.com';
Пример вывода:
*************************** 1. row *************************** user: 100 u2dm_params: {"email": "example@example.com"} 1 row in set (0.00 sec)
Пояснения -
Если вывод выше содержит нужный email, измените адрес в таблице msgs_user2delivery_method:
update msgs_user2delivery_method set u2dm_params='{'email': 'new_example@example.com'}' where user=100;
Пояснения - Введите команду \q для выхода из консоли СУБД.
-
Перезапустите VMmanager:
vm restart
- Повторите запросы из пп 3, 5, 7, чтобы убедиться, что email изменён.