...
В теле функции производится проверка права процесса (пользователя), заданного объектом 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: |
<название_группы>" | Пользователи, входящие в группу <название_группы>, являются администраторами операционной системы |
"unix-netgroup: |
<название_сетевой_группы>" | Пользователи, входящие в сетевую группу <название_сетевой_группы>, являются администраторами операционной системы |
"unix-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.id | string | Название проверяемого действия. Например, для программы |
Метод объекта:
| Метод | Возвращаемое значение |
|---|---|
| action.lookup( "<название_переменной>" ); | Значение переменной Если значение переменной Для примера, программа |
При использовании объекта action без указания атрибута или метода, будут выведены одной строкой: название действия и переменные привилегированной программы.
...