22.5.3. Управление доступом
По умолчанию новые пользователи и API-токены не имеют никаких разрешений. Добавить разрешения можно, назначив роли пользователям/токенам для определенных объектов, таким как хранилища данных или удаленные устройства.
Роль — это список привилегий. В PBS предопределён ряд ролей:
NoAccess — нет привилегий (используется для запрета доступа);
Admin — все привилегии;
Audit — доступ только для чтения;
DatastoreAdmin — все привилегии для хранилищ данных;
DatastoreAudit — просмотр настроек хранилищ и их содержимых, без возможности чтения фактических данных;
DatastoreReader — просмотр содержимого хранилища, восстановление данных;
DatastoreBackup — создание и восстановление собственных резервных копий;
DatastorePowerUser — создание, восстановление и удаление собственных резервных копий;
RemoteAdmin — все привилегии для удалённых PBS;
RemoteAudit — просмотр настроек удалённых PBS;
RemoteSyncOperator — чтение данных с удалённых PBS.
PBS использует систему управления разрешениями на основе ролей и путей. Запись в таблице разрешений позволяет пользователю играть определенную роль при доступе к объекту или пути. Такое правило доступа может быть представлено как тройка (путь, пользователь, роль) или (путь, API-токен, роль), причем роль содержит набор разрешенных действий, а путь представляет цель этих действий.
Информация о правах доступа хранится в файле
/etc/proxmox-backup/acl.cfg
. Файл содержит 5 полей, разделенных двоеточием (':'):
acl:1:/datastore:backup_u@pbs!client1:DatastoreAdmin
В каждом поле представлены следующие данные:
идентификатор acl;
1 или 0 — включено или отключено;
объект, на который установлено разрешение;
пользователи/токены, для которых установлено разрешение;
устанавливаемая роль.
Добавление разрешения в веб-интерфейсе ( → вкладка Разрешения):
Управление разрешениями в консоли:
добавить разрешение (добавить пользователя backup_u@pbs в качестве администратора хранилища данных для хранилища данных store1, расположенного в
/mnt/backup/disk1/store1
):
# proxmox-backup-manager acl update /datastore/store1 DatastoreAdmin --auth-id backup_u@pbs
вывести список разрешений:
# proxmox-backup-manager acl list
отобразить действующий набор разрешений пользователя или API-токена:
# proxmox-backup-manager user permissions backup_u@pbs --path /datastore/store1
Privileges with (*) have the propagate flag set
Path: /datastore/store1
- Datastore.Audit (*)
- Datastore.Backup (*)
- Datastore.Modify (*)
- Datastore.Prune (*)
- Datastore.Read (*)
- Datastore.Verify (*)
Для токенов требуются собственные записи ACL. Токены не могут делать больше, чем их соответствующий пользователь.