В текущей версии платформы VMmanager 6 изменить email (логин) пользователя через интерфейс невозможно.

Возможные способы изменить email пользователя:

  • зарегистрировать пользователя с новым адресом и указать его владельцем у необходимых ВМ;
  • исправить адрес в базе данных в таблицах vm_account, auth_user и msgs_user2delivery_method.

Важно

Второй способ потребует вмешательства в базу данных, это предполагает потенциальный риск. Мы не рекомендуем вносить ручные правки в базу, поскольку это может нарушить корректную работу платформы.

Инструкции по внесению изменений в БД следует выполнять только после резервного копирования платформы. 

Смена электронной почты пользователя через базу данных


  1. Выполните резервное копирование платформы. Подробнее см. в статье Резервное копирование документации VMmanager 6.
    1. Подключитесь к серверу с VMmanager по SSH и введите команду: 

      vm backup
      BASH
    2.  Введите пароль для архива резервной копии или нажмите Enter, чтобы создать архив без пароля. Копия будет сохранена в директории /opt/ispsystem/vm/backup/.
  2. Подключитесь к СУБД: 

    В связи с поэтапным переходом платформы на использование СУБД PostgreSQL, разные экземпляры VMmanager могут использовать разные СУБД:

    • VMmanager Hosting — MySQL;
    • VMmanager Infrastructure:
      • для новых установок на ОС Astra Linux, начиная с версии VMmanager 2023.06.1 — PostgreSQL;
      • в остальных случаях — MySQL.

    Чтобы определить тип СУБД, выполните на сервере с платформой команду: 

    docker ps --filter name=pgsql
    BASH

    Пример ответа

    CONTAINER ID   IMAGE         COMMAND                  CREATED      STATUS      PORTS      NAMES
    3213c5dc94d0   postgres:12   "docker-entrypoint.s…"   5 days ago   Up 4 days   5432/tcp   pgsql
    CODE

    Если вывод команды содержит информацию о контейнере, платформа использует PostgreSQL, если ответ пустой — MySQL.

    MySQL

    docker exec -it mysql bash -c "mysql isp -p\$MYSQL_ROOT_PASSWORD"
    BASH

    PostgreSQL

    docker exec -it pgsql bash -c "psql -d isp"
    BASH
  3. Выполните запрос к базе данных из таблицы auth_user для определения текущего email и ID пользователя: 

    select id,email from auth_user where email="example@example.com";
    SQL

    Пример вывода: 

    *************************** 1. row ***************************
       id: 100
    email: example@example.com
    1 row in set (0.00 sec)
    CODE

    example@example.com — адрес электронной почты пользователя

     id: 100 — ID пользователя

  4. Если вывод выше содержит нужный email, измените адрес в таблице auth_user

    update auth_user set email='new_example@example.ru' where id=100;
    SQL

    new_example@example.ru — новый адрес электронной почты

    id=100 — ID пользователя. Значение получено из запроса, пункт 3.

  5. Выполните аналогичные действия для таблицы vm_account. Запрос: 

    select id,email from vm_account where email="example@example.com"; 
    SQL

    Пример вывода: 

    *************************** 1. row ***************************
       id: 100
    email: example@example.com
    1 row in set (0.00 sec)
    CODE

    example@example.com —  адрес электронной почты пользователя

     id: 100 —  ID пользователя

  6.  Если вывод выше содержит нужный email, измените адрес в таблице vm_account

    update vm_account set email='new_example@example.ru' where id=100;
    SQL

    new_example@example.ru —  новый адрес электронной почты

    id=100 —  ID пользователя. Значение получено из запроса, пункт 5.

  7. Выполните запрос к базе данных из таблицы msgs_user2delivery_method, чтобы определить ID и email пользователя: 

    select user, u2dm_params from msgs_user2delivery_method where u2dm_params regexp "example@example.com";
    SQL

    Пример вывода: 

    *************************** 1. row ***************************
           user: 100
    u2dm_params: {"email": "example@example.com"}
    1 row in set (0.00 sec)
    CODE

    example@example.com —  адрес электронной почты пользователя

    user: 100 — ID пользователя

  8. Если вывод выше содержит нужный email, измените адрес в таблице msgs_user2delivery_method

    update msgs_user2delivery_method set u2dm_params='{"email": "new_example@example.com"}' where user=100;
    SQL

    new_example@example.ru —  новый адрес электронной почты

    user=100 —  ID пользователя. Значение получено из запроса, пункт 7.

  9. Выйдите из консоли СУБД: 

    \q
    SQL
  10. Перезапустите VMmanager: 

    vm restart
    BASH
  11. Повторите запросы из пп 3, 5, 7, чтобы убедиться, что email изменён.