Product SiteDocumentation Site

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

Для аутентификации пользователей в веб-интерфейсе PVE можно использовать как собственные механизмы PVE, так и PAM:
Выбор типа аутентификации в веб-интерфейсе
Используя основанное на ролях управление пользователями и разрешениями для всех объектов (ВМ, хранилищ, узлов и т. д.), можно определить многоуровневый доступ.
Доступны следующие области (методы) аутентификации:
  • Стандартная аутентификация Linux PAM (Linux PAM standart authentication) — при использовании этой аутентификации системный пользователь должен существовать (должен быть создан например, с помощью команды adduser) на всех узлах, на которых пользователю разрешено войти в систему. Пользователь аутентифицируется с помощью своего обычного системного пароля;
  • Сервер аутентификации PVE (PVE authentication server) — это хранилище паролей в стиле Unix (/etc/pve/priv/shadow.cfg). Пароль шифруется с использованием метода хеширования SHA-256. Этот метод аутентификации удобен для небольших (или даже средних) установок, где пользователям не нужен доступ ни к чему, кроме PVE. В этом случае пользователи полностью управляются PVE и могут менять свои пароли через графический интерфейс;
    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::
    
  • LDAP — можно аутентифицировать пользователей через сервер LDAP (например, openldap). Сервер и дополнительный резервный сервер можно настроить, а соединение можно зашифровать с помощью SSL.
Пользователь root является неограниченным администратором и всегда может войти в систему, используя Linux PAM. Этого пользователя нельзя удалить, все системные письма будут отправляться на адрес электронной почты, назначенный этому пользователю.
Каждый пользователь может быть членом нескольких групп.
Чтобы пользователь мог выполнить какое-либо действие (например, просмотр, изменение или удаление ВМ), ему необходимо иметь соответствующие разрешения.
PVE использует систему управления разрешениями на основе ролей и путей. Запись в таблице разрешений позволяет пользователю или группе играть определенную роль при доступе к объекту или пути. Это означает, что такое правило доступа может быть представлено как тройка (путь, пользователь, роль) или (путь, группа, роль), причем роль содержит набор разрешенных действий, а путь представляет цель этих действий.
Роль — это список привилегий. В PVE предопределён ряд ролей:
  • Administrator — имеет все привилегии;
  • NoAccess — нет привилегий (используется для запрета доступа);
  • PVEAdmin — все привилегии, кроме прав на изменение настроек системы (Sys.PowerMgmt, Sys.Modify, Realm.Allocate);
  • PVEAuditor — доступ только для чтения;
  • PVEDatastoreAdmin — создание и выделение места для резервного копирования и шаблонов;
  • PVEDatastoreUser — выделение места для резервной копии и просмотр хранилища;
  • PVEPoolAdmin — выделение пулов;
  • PVESysAdmin — ACL пользователя, аудит, системная консоль и системные журналы;
  • PVETemplateUser — просмотр и клонирование шаблонов;
  • PVEUserAdmin — администрирование пользователей;
  • PVEVMAdmin — управление ВМ;
  • PVEVMUser — просмотр, резервное копирование, настройка CDROM, консоль ВМ, управление питанием ВМ.
Просмотреть список предопределенных ролей в веб-интерфейсе можно, выбрав ДатацентрРазрешенияРоли:
Список предопределенных ролей
Добавить новую роль можно как в веб-интерфейсе, так и в командной строке.
Привилегия — это право на выполнение определенного действия. Для упрощения управления списки привилегий сгруппированы в роли, которые затем можно использовать в таблице разрешений. Привилегии не могут быть напрямую назначены пользователям, не будучи частью роли.
Пул ресурсов — это набор ВМ, контейнеров и хранилищ. Пул ресурсов удобно использовать для обработки разрешений в случаях, когда определенные пользователи должны иметь контролируемый доступ к определенному набору ресурсов. Пулы ресурсов часто используются в тандеме с группами, чтобы члены группы имели разрешения на набор машин и хранилищ.

Таблица 44.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"