Product SiteDocumentation Site

Глава 45. Пользователи и их права

Для аутентификации пользователей в веб-интерфейсе PVE можно использовать как собственные механизмы PVE, так и PAM:
Выбор типа аутентификации в веб-интерфейсе
Используя основанное на ролях управление пользователями и разрешениями для всех объектов (ВМ, хранилищ, узлов и т. д.), можно определить многоуровневый доступ.
Доступны следующие области (методы) аутентификации:
  • Стандартная аутентификация Linux PAM (Linux PAM standart authentication) — при использовании этой аутентификации системный пользователь должен существовать (должен быть создан например, с помощью команды adduser) на всех узлах, на которых пользователю разрешено войти в систему. Пользователь аутентифицируется с помощью своего обычного системного пароля;
  • Сервер аутентификации PVE (PVE authentication server) — это хранилище паролей в стиле Unix (/etc/pve/priv/shadow.cfg). Пароль шифруется с использованием метода хеширования SHA-256. Этот метод аутентификации удобен для небольших (или даже средних) установок, где пользователям не нужен доступ ни к чему, кроме PVE. В этом случае пользователи полностью управляются PVE и могут менять свои пароли через графический интерфейс;
  • LDAP — можно аутентифицировать пользователей через сервер LDAP (например, openldap). Сервер и дополнительный резервный сервер можно настроить, а соединение можно зашифровать с помощью SSL.
PVE хранит данные пользователей в файле /etc/pve/user.cfg:
# cat /etc/pve/user.cfg
user:root@pam:1:0::::::
user:test@pve:1:0::::::
user:testuser@pve:1:0::::Just a test::
user:user@pam:1:0::::::

group:admin:user@pam::
group:testgroup:test@pve::
После установки PVE существует один пользователь root@pam, который соответствует суперпользователю ОС. Этого пользователя нельзя удалить, все системные письма будут отправляться на адрес электронной почты, назначенный этому пользователю. Суперпользователь имеет неограниченные права, поэтому рекомендуется добавить других пользователей с меньшими правами.
Каждый пользователь может быть членом нескольких групп.
Чтобы пользователь мог выполнить какое-либо действие (например, просмотр, изменение или удаление ВМ), ему необходимо иметь соответствующие разрешения.
PVE использует систему управления разрешениями на основе ролей и путей. Запись в таблице разрешений позволяет пользователю или группе играть определенную роль при доступе к объекту. Это означает, что такое правило доступа может быть представлено как тройка (путь, пользователь, роль) или (путь, группа, роль), причем роль содержит набор разрешенных действий, а путь представляет цель этих действий.
Роль — это список привилегий. В PVE предопределён ряд ролей:
  • Administrator — имеет все привилегии;
  • NoAccess — нет привилегий (используется для запрета доступа);
  • PVEAdmin — все привилегии, кроме прав на изменение настроек системы (Sys.PowerMgmt, Sys.Modify, Realm.Allocate);
  • PVEAuditor — доступ только для чтения;
  • PVEDatastoreAdmin — создание и выделение места для резервного копирования и шаблонов;
  • PVEDatastoreUser — выделение места для резервной копии и просмотр хранилища;
  • PVEPoolAdmin — выделение пулов;
  • PVESysAdmin — ACL пользователя, аудит, системная консоль и системные журналы;
  • PVETemplateUser — просмотр и клонирование шаблонов;
  • PVEUserAdmin — администрирование пользователей;
  • PVEVMAdmin — управление ВМ;
  • PVEVMUser — просмотр, резервное копирование, настройка CDROM, консоль ВМ, управление питанием ВМ.
Просмотреть список предопределенных ролей в веб-интерфейсе можно, выбрав ДатацентрРазрешенияРоли:
Список предопределенных ролей
Добавить новую роль можно как в веб-интерфейсе, так и в командной строке.
Привилегия — это право на выполнение определенного действия. Для упрощения управления списки привилегий сгруппированы в роли, которые затем можно использовать в таблице разрешений. Привилегии не могут быть напрямую назначены пользователям, не будучи частью роли.
Пул ресурсов — это набор ВМ, контейнеров и хранилищ. Пул ресурсов удобно использовать для обработки разрешений в случаях, когда определенные пользователи должны иметь контролируемый доступ к определенному набору ресурсов. Пулы ресурсов часто используются в тандеме с группами, чтобы члены группы имели разрешения на набор машин и хранилищ.

Таблица 45.1. Привилегии используемые в PVE

Привилегия
Описание
Привилегии узла/системы
Permissions.Modify
Изменение прав доступа
Sys.PowerMgmt
Управление питанием узла (запуск, остановка, сброс, выключение)
Sys.Console
Консольный доступ к узлу
Sys.Syslog
Просмотр Syslog
Sys.Audit
Просмотр состояния/конфигурации узла, конфигурации кластера Corosync и конфигурации HA
Sys.Modify
Создание/удаление/изменение параметров сети узла
Group.Allocate
Создание/удаление/изменение групп
Pool.Allocate
Создание/удаление/изменение пулов
Realm.Allocate
Создание/удаление/изменение областей аутентификации
Realm.AllocateUser
Назначение пользователю области аутентификации
User.Modify
Создание/удаление/изменение пользователя
Права, связанные с ВМ
VM.Allocate
Создание/удаление ВМ
VM.Migrate
Миграция ВМ на альтернативный сервер в кластере
VM.PowerMgmt
Управление питанием (запуск, остановка, сброс, выключение)
VM.Console
Консольный доступ к ВМ
VM.Monitor
Доступ к монитору виртуальной машины (kvm)
VM.Backup
Резервное копирование/восстановление ВМ
VM.Audit
Просмотр конфигурации ВМ
VM.Clone
Добавление/изменение/удаление дисков ВМ
VM.Config.Disk
Создание/удаление/изменение областей аутентификации
VM.Config.CDROM
Извлечь/изменить CDROM
VM.Config.CPU
Изменение настроек процессора
VM.Config.Memory
Изменение настроек памяти
VM.Config.Network
Добавление/изменение/удаление сетевых устройств
VM.Config.HWType
Изменение типа эмуляции
VM.Config.Options
Изменение любой другой конфигурации ВМ
VM.Snapshot
Создание/удаление снимков ВМ
Права, связанные с хранилищем
Datastore.Allocate
Создание/удаление/изменение хранилища данных
Datastore.AllocateSpace
Выделить место в хранилище
Datastore.AllocateTemplate
Размещение/загрузка шаблонов контейнеров и ISO-образов
Datastore.Audit
Просмотр хранилища данных
Права доступа назначаются объектам, таким как ВМ, хранилища или пулы ресурсов. PVE использует файловую систему как путь к этим объектам. Эти пути образуют естественное дерево, и права доступа более высоких уровней (более короткий путь) необязательно распространяются вниз по этой иерархии. Примеры:
  • /nodes/<node> — доступ к серверам PVE;
  • /vms — все ВМ;
  • /vms/<vmid> — доступ к определенным ВМ;
  • /storage/<storeid> — доступ к хранилищам;
  • /access/groups — администрирование групп;
  • /access/realms/<realmid> — административный доступ.
Для назначения разрешений необходимо в окне ДатацентрРазрешения нажать кнопку Добавить, в выпадающем меню выбрать Разрешения группы, если разрешения назначаются группе пользователей, или Разрешения пользователя, если разрешения назначаются пользователю. Далее в открывшемся окне выбрать путь, группу и роль и нажать кнопку Добавить:
Добавление разрешений группе
Для добавления нового пользователя, необходимо в окне ДатацентрРазрешенияПользователи нажать кнопку Добавить.
Создание нового пользователя с использованием PAM аутентификации (системный пользователь user должен существовать, в качестве пароля будет использоваться пароль для входа в систему):
Создание нового пользователя с использованием PAM аутентификации
Создание нового пользователя с использованием PVE аутентификации:
Создание нового пользователя с использованием PVE аутентификации
Примеры использования командной строки для управления пользователями PVE:
  • Создать пользователя:
    # pveum useradd testuser@pve -comment "Just a test"
    
  • Задать или изменить пароль:
    # pveum passwd testuser@pve
    
  • Отключить пользователя:
    # pveum usermod testuser@pve -enable 0
    
  • Создать новую группу:
    # pveum groupadd testgroup
    
  • Создать новую роль:
    # pveum roleadd PVE_Power-only -privs "VM.PowerMgmt VM.Console"