Product SiteDocumentation Site

35.3. Управление разрешениями

Большинство ресурсов OpenNebula (шаблоны, виртуальные машины, образы, виртуальные сети) имеют три уровня прав доступа:
  • Владелец (OWNER)
  • Группа (GROUP)
  • Остальные (OTHER)
Для каждого уровня можно установить три типа прав:
  • USE (u) — просмотр и использование ресурса (например, запуск ВМ, подключение к сети);
  • MANAGEE (m) — изменение ресурса (остановка, изменение атрибутов, удаление);
  • ADMIN (a) — административные действия (например, изменение владельца, обход ограничений).

Примечание

Пользователи, группы и узлы не поддерживают права USE/MANAGE/ADMIN.

35.3.1. Управление разрешениями в командной строке

Просмотр прав на ВМ с ID=8:
$ onevm show 8
VIRTUAL MACHINE 8 INFORMATION
ID                  : 8
NAME                : test
USER                : oneadmin
GROUP               : oneadmin
STATE               : POWEROFF
LCM_STATE           : LCM_INIT
LOCK                : None
RESCHED             : No
HOST                : host-01
CLUSTER ID          : 0
CLUSTER             : default
START TIME          : 04/08 16:12:53
END TIME            : -
DEPLOY ID           : 69ab21c2-22ad-4afb-bfc1-7b4e4ff2364f

VIRTUAL MACHINE MONITORING
ID                  : 8
TIMESTAMP           : 1712756284

PERMISSIONS
OWNER          : um-
GROUP          : ---
OTHER          : ---
…
В данном примере:
  • владелец (oneadmin) имеет права USE и MANAGE;
  • пользователи из той же группы и все остальные — не имеют доступа.
Права можно изменить с помощью команды chmod в восьмеричной нотации:
$ onevm chmod 8 607
Где:
  • первая цифра — права владельца;
  • вторая — группы;
  • третья — остальных.
Каждая цифра — сумма:
  • 4 = USE
  • 2 = MANAGE
  • 1 = ADMIN
В примере: 607 → владелец: 4+2=6 (um-), группа: 0 (---), остальные: 4+2+1=7 (uma).
$ onevm show 8
…
PERMISSIONS
OWNER          : um-
GROUP          : ---
OTHER          : uma
При создании ресурса применяются права, заданные:
  • глобально в /etc/one/oned.conf через DEFAULT_UMASK;
  • индивидуально для каждого пользователя с помощью команды oneuser umask.
Также поведение зависит от параметра:
ENABLE_OTHER_PERMISSIONS = "YES"  # или "NO"
  • YES — новые ресурсы получают права 666 (все могут использовать);
  • NO — права 660 (только владелец и группа).

Примечание

Маска должна состоять из 3 восьмеричных цифр. Каждая цифра — это маска, которая, соответственно, отключает разрешение для владельца, группы и всех остальных. Например, если значение маски равно 137, то для нового объекта будут установлены права 640 (um- u-- ---).