База знаний VMmanager
Документация — ваш лучший друг?
Поделитесь мнением и пройдите небольшой опрос
Пройти опрос

Как сменить email для пользователя

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

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

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

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

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

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

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

      vm backup
    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
    Пример ответа
    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.

    MySQL
    docker exec -it mysql bash -c "mysql isp -p\$MYSQL_ROOT_PASSWORD"
    PostgreSQL
    docker exec -it pgsql bash -c "psql -d isp"
  3. Выполните запрос к базе данных из таблицы 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)
    Пояснения
  4. Если вывод выше содержит нужный email, измените адрес в таблице auth_user

    update auth_user set email='new_example@example.ru' where id=100;
    Пояснения
  5. Выполните аналогичные действия для таблицы 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)
    Пояснения
  6.  Если вывод выше содержит нужный email, измените адрес в таблице vm_account

    update vm_account set email='new_example@example.ru' where id=100;
    Пояснения
  7. Выполните запрос к базе данных из таблицы 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)
    Пояснения
  8. Если вывод выше содержит нужный email, измените адрес в таблице msgs_user2delivery_method

    update msgs_user2delivery_method set u2dm_params='{'email': 'new_example@example.com'}' where user=100;
    Пояснения
  9. Введите команду \q для выхода из консоли СУБД.
  10. Перезапустите VMmanager: 

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