Product SiteDocumentation Site

Глава 35. Управление пользователями

35.1. Пользователи
35.1.1. Управление пользователями в консоли
35.1.2. Аутентификация пользователей
35.1.3. Шаблон пользователя
35.1.4. Управление собственной учётной записью
35.1.5. Управление пользователями в веб-интерфейсе
35.1.6. Изменение учётных данных администраторов
35.2. Группы пользователей
35.2.1. Управление группами в консоли
35.2.2. Управление группами в веб-интерфейсе
35.3. Управление разрешениями
35.3.1. Управление разрешениями в командной строке
35.3.2. Управление разрешениями в веб-интерфейсе
35.3.3. Блокировка ресурсов
35.4. Управление правилами ACL
35.5. Настройка аутентификации
35.5.1. Аутентификация по SSH-ключам
35.5.2. LDAP аутентификация
35.5.3. Аутентификация в Sunstone
Доступ пользователей к ресурсам в OpenNebula регулируется системой разрешений. По умолчанию только владелец ресурса может управлять им или использовать его. Пользователи могут предоставлять другим пользователям (в своей группе или вне её) права на использование или управление своими ресурсами.
При создании группы может быть назначен администратор группы. Такой пользователь получает расширенные права на создание новых пользователей в группе и управление ресурсами, принадлежащими группе (через CLI или специальное представление в Sunstone). Группы могут быть назначены виртуальным центрам обработки данных (VDC).
По умолчанию аутентификация и авторизация выполняются внутренней службой OpenNebula. При необходимости эти функции можно делегировать внешним системам (например, LDAP). Подробнее см. в разделе Настройка аутентификации.

35.1. Пользователи

Пользователь в OpenNebula определяется именем пользователя и паролем. Каждый пользователь имеет уникальный идентификатор (ID) и принадлежит минимум одной группе.
При установке OpenNebula автоматически создаются:
  • две административные учётные записи: oneadmin (ID 0) и serveradmin (ID 1);
  • две группы по умолчанию: oneadmin и users.

35.1.1. Управление пользователями в консоли

Утилита oneuser предназначена для управления пользователями через командную строку.
Просмотр списка пользователей:
$ oneuser list
  ID NAME                 ENAB GROUP    AUTH            VMS     MEMORY        CPU
   1 serveradmin          yes  oneadmin server_c    0 /   -      0M /   0.0 /   -
   0 oneadmin             yes  oneadmin core              -          -          -
Создание нового пользователя:
$ oneuser create <имя_пользователя> <пароль>

Примечание

В именах и паролях недопустимы следующие символы:
  • Имя: пробел, :, табуляция, переводы строк;
  • Пароль: пробел, табуляция, переводы строк.

Примечание

При использовании некоторых драйверов аутентификации (например, LDAP) пароль не требуется. В этом случае пользователя можно создать без него:
$ oneuser create --driver ldap <имя_пользователя>
По умолчанию новый пользователь добавляется в группу users. Изменить группу пользователя можно, выполнив команду:
$ oneuser chgrp <имя_пользователя> oneadmin
Удаление из группы выполняется путём перевода пользователя обратно в группу users.
Управление статусом пользователя:
$ oneuser disable <имя_пользователя> # временно отключить
$ oneuser enable <имя_пользователя> # включить
$ oneuser delete <имя_пользователя> # удалить

Примечание

Отключённые пользователи не могут входить в Sunstone и выполнять какие-либо действия в системе.

35.1.2. Аутентификация пользователей

35.1.2.1. Веб-интерфейс Sunstone

Для аутентификации в веб-интерфейсе Sunstone достаточно указать имя пользователя и пароль на странице входа.

35.1.2.2. CLI и API

Для работы с OpenNebula через командную строку (CLI) или любой API-клиент необходимо предоставить валидные учётные данные — пароль или токен аутентификации — для формирования строки сессии.
По умолчанию используется драйвер аутентификации core, реализующий простую проверку по связке пользователь–пароль.
Чтобы CLI-инструменты могли автоматически использовать учётные данные, их необходимо разместить в стандартном файле $HOME/.one/one_auth. Формат файла — одна строка вида:
<имя_пользователя>:<пароль>
После настройки пользователь сможет использовать CLI и API:
$ oneuser show
USER 8 INFORMATION
ID              : 8
NAME            : user
GROUP           : users
PASSWORD        : a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3

Примечание

OpenNebula не хранит пароли в открытом виде. В базе данных сохраняется только хеш.

35.1.2.3. Токены аутентификации

Файл $HOME/.one/one_auth защищён только механизмами прав файловой системы. Для повышения безопасности рекомендуется использовать токены аутентификации вместо хранения паролей в открытом виде.
Токен — это временный идентификатор, который:
  • генерируется OpenNebula;
  • имеет ограниченное время жизни (по умолчанию — 10 часов);
  • может быть привязан к конкретной группе, если пользователь состоит в нескольких группах.
При использовании группового токена:
  • пользователь видит только ресурсы, принадлежащие этой группе;
  • все новые ресурсы создаются в рамках указанной группы.
Любой пользователь может создать токен с помощью команды:
$ oneuser token-create
  * Do you want to overwrite the file /home/user/.one/one_auth? (Y|N):
Y
overwriting /home/user/.one/one_auth ...
Authentication Token is:
user:4b426939a0f030cc5edca60088c54fe38325e41fdd2fba8e51fc655978167e04
При создании токена он автоматически записывается в файл ~/.one/one_auth и начинает использоваться CLI.
Дополнительные параметры:
  • --time <секунды> — задать время жизни токена (значение -1 — бессрочный токен);
  • --group <ID|имя> — привязать токен к указанной группе.
Список токенов отображается в выводе команды oneuser show:
TOKENS
     ID EGID  EGROUP     EXPIRATION
4b42693 *1    users      2025-12-25 20:14:18
985a500 1     users      2025-12-25 20:30:40

Примечание

Звёздочка (*) в колонке EGID означает, что токен не привязан к конкретной группе, а использует основную группу пользователя.
Чтобы использовать уже существующий токен (например, созданный администратором или полученный извне), его необходимо указать CLI:
$ oneuser token-set --token 985a500
export ONE_AUTH=/home/user/.one/aac6aa2e9bf92fc95d8ec0068c16b980.token; export ONE_EGID=1
Команда выводит переменные окружения, которые можно экспортировать для текущей сессии.
Токен можно удалить, выполнив команду:
$ oneuser token-delete 985a500
Token removed.
Removing /home/user/.one/aac6aa2e9bf92fc95d8ec0068c16b980.token
После удаления токен становится недействительным и больше не может использоваться для аутентификации.

35.1.3. Шаблон пользователя

В разделе USER TEMPLATE можно хранить произвольные атрибуты, например:
DEPARTMENT=IT
EMAIL=user@test.alt
Эти данные могут использоваться в контекстуализации виртуальных машин, например:
ssh_key = "$USER[SSH_KEY]"
Шаблон также позволяет настраивать права операций над ВМ:
VM_USE_OPERATIONS
VM_MANAGE_OPERATIONS
VM_ADMIN_OPERATIONS

35.1.4. Управление собственной учётной записью

Пользователи могут:
  • просматривать информацию о своей учётной записи;
  • изменять пароль.
Пример для пользователя user:
$ oneuser list
ID NAME            ENAB GROUP      AUTH           VMS            MEMORY         CPU
8 user            yes  users      core       0 /   -      0M /       -   0.0 /   -

$ oneuser passwd 8 <новый_пароль>
В веб-интерфейсе Sunstone информация об учётной записи доступна в разделе Настройки.

35.1.5. Управление пользователями в веб-интерфейсе

Все операции по управлению пользователями доступны в веб-интерфейсе Sunstone.
Управление пользователями в Sunstone
После входа пользователь может:
  • изменить пароль;
  • выбрать язык интерфейса;
  • управлять токенами входа;
  • добавить SSH-ключ для доступа к виртуальным машинам.
Панель пользователя в Sunstone

Примечание

Пользователи могут просматривать информацию о своей учётной записи и изменять свой пароль.

35.1.6. Изменение учётных данных администраторов

Для изменения учётных данных oneadmin необходимо на сервере управления выполнить следующие действия:
$ oneuser passwd 0 <пароль>
$ echo 'oneadmin:<пароль>' > /var/lib/one/.one/one_auth
После изменения пароля следует перезапустить службу OpenNebula.

Примечание

Изменение пароля serveradmin не рекомендуется, так как он используется только для внутренней коммуникации между компонентами.
Для изменения учетных данных serveradmin необходимо на сервере управления выполнить следующие действия:
$ oneuser passwd 1 --sha256 0 <пароль>
$ echo 'serveradmin:<пароль>' > /var/lib/one/.one/oneflow_auth
$ echo 'serveradmin:<пароль>' > /var/lib/one/.one/onegate_auth
$ echo 'serveradmin:<пароль>' > /var/lib/one/.one/sunstone_auth
После изменения пароля следует перезапустить службу Sunstone.