Разрешения

Путь расположения

Путь в контейнере

/var/lib/era/files/syncroot/domains/<MASTER_DOMAIN>/cmd/permissions.json

Обзор

Определяет разрешения на использование различных ресурсов.

При отсутствии файла или ключа для некоего приложения, это приложение ведет себя в соответствии со своим дефолтным поведением.

По умолчанию файл отсутствует.

Формат:
{
  "allowed_nodes": [
    {
      "node": str,
      "cookie": str
    },
    ...
  ],
  "exec_perm": {
    "user": "root" | "domain" | "custom"
    "commands": array<str>,
    "domains": array<object>
  }
}

allowed_nodes

Cодержит список нод которые следует разрешить к прямому подключению. Для каждой из них задается значение erlang cookie, который устанавливается для указанной ноды предварительно.

exec_perm

Содержит объект разрешений для прямого запуска процессов и приложений ОС (консольных) по абсолютному пути из сценариев компонентом "Запуск процесса".

По умолчанию выполнение внешних команд запрещено.

  • "user" – содержит название режима, устанавливающего имя пользователя, от которого будет производиться запуск разрешенных приложений. По умолчанию "domain". Варианты значений:

    • "root" – приложение выполняется от имени пользователя "root". Если иное не указано в свойствах конкретного домена в списке "domains".

    • "domain" – приложение выполняется от пользователя с именем, совпадающем с именем домена, в котором исполняется сценарий. Если иное не указано в свойствах домена в списке "domains".

    • "custom" – приложение выполняется от имени пользователя, определенного в свойствах конкретного домена в списке "domains". В этом случае каждый домен, в котором указанные приложения разрешены к исполнению, должен быть указан в списке "domains", и у него должно быть задано значение в поле "user".

  • "commands" – содержит набор разрешенных к выполнению команд (суть приложений). По умолчанию пустой список - ничего не разрешено к запуску компонентом "Запуск процесса".

  • "domains" – содержит набор доменов и их индивидуальных свойств. По умолчанию пустой список. Если домен, в котором исполняется сценарий, обнаруживается в списке доменов, то в качестве списка разрешенных к выполнению команд (приложений) берется список из поля "commands" домена. А в качестве пользователя, от имени которого приложение исполняется – значение из поля "user" домена, причем если там пусто, то значение из общего раздела.

Формат элемента в списке доменов:
{
  "name": "DOMAIN_NAME",
  "user": "USER_NAME",
  "commands": array<str>
}
  • name – название домена.

  • user – имя пользователя ОС.

  • commands – набор разрешенных к выполнению команд.

Примеры элементов в списке разрешенных команд:
[
  "echo",
  "myprogram1",
  "/bin/myprogram2",
  ":SYNC/common/cmd/echo.sh",
  ":GLOBALSHARE/common/cmd/myprogram3"
]

В сценарии можно указать макро путь, либо любой путь. Макро путь приводится к общему макросу, прочие пути остаются без изменения. Результат должен обязательно содержаться в списке разрешенных команд. Также можно указать путь через команду 'bash', например 'bash :GLOBALSHARE_COMMON/cmd/myprogram3.sh'. В этом случае в разрешенных командах bash упоминать не следует, но следует упомянуть приведенный путь к самому bash-скрипту.'