Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

В теле функции производится проверка права процесса (пользователя), заданного объектом subject, на выполнение действия, заданного объектом action .

Каждая функция Функция должна возвращать результат проверки в виде одного из атрибутов объекта объекта polkit.Result:

АтрибутЗначениеПримечание
polkit.Result.NO
"no"

polkit.Result.YES
"yes"

polkit.Result.AUTH_SELF
"auth_self"

polkit.Result.AUTH_SELF_KEEP
"auth_self_keep"

polkit.Result.AUTH_ADMIN
"auth_admin"

polkit.Result.AUTH_ADMIN_KEEP
"auth_admin_keep"

polkit.Result.NOT_HANDLED
null
Решение о доступе процесса (пользователя) к запрашиваемому действию не принято. Polkitd приступит к выполнению следующего по порядку правила

...

Метод: polkit.addAdminRule( function(action, subject) {...} );

Метод используется для указания, кто является администратором системы.

Метод добавляет функцию функцию function(action, subject), которая вызывается, когда требуется аутентифицировать администратора системы.

Функция используется для определения, кто является администратором системы.Каждая функция должна возвращать массив, который может содержать строки:

СтрокаОписание
"unix-group:
<group>
<название_группы>"Пользователи, входящие в группу <название_группы>, являются администраторами операционной системы
"unix-netgroup:
<netgroup>"
<название_сетевой_группы>"Пользователи, входящие в сетевую группу <название_сетевой_группы>, являются администраторами операционной системы
"unix-user:
<user>
<имя_пользователя>"Пользователь <имя_пользователя> является администратором операционной системы

Если функция не вернула массив хотя бы с одной строкой, то Если функция возвращает null, undefined or does not return a value at all, Polkitd приступит к выполнению следующего по порядку правила.См. пример ...., добавленного методом polkit.addAdminRule.


Пример правила, которое назначает администраторами системы пользователя user1 и всех пользователей группы sudo.

Блок кода
polkit.addAdminRule(function(action, subject) {
    return ["unix-group:sudo", "unix-user:user1"];
});

Метод: polkit.spawn( ["/путь/к/сторонней/программе/", "аргумент_программы_1", "аргумент_программы_2", ...] );

...

АтрибутТипОписание
action.idstring

Название проверяемого действия.

Например, для программы pkexec значением атрибута action.id будет "org.freedesktop.policykit.exec".


Метод объекта:

МетодВозвращаемое значение
action.lookup( "<название_переменной>" );

Значение  переменной <название_переменной>, установленное привилегированной программой.
Каждая привилегированная программа предоставляет свой набор переменных. Информация о них дана в документации привилегированной программы.

Если значение переменной <название_переменной> отсутствует, то метод action.lookup вернёт неопределённое значение.

Для примера, программа pkexec устанавливает переменную program, содержащую путь до команды, запускаемой от имени другого пользователя. Для получения значения этой переменной используется метод action.lookup("program").


При использовании объекта action без указания атрибута или метода, будут выведены одной строкой: название действия и переменные привилегированной программы.

...