...
polkit.addRule( function(action, subject) {...} );– для добавления правила авторизации;polkit.addAdminRule( function(action, subject) {...} );– для указания, кто является администратором;polkit.log( message );– для вывода дополнительной информации в системный журнал работы. Используется при отладке правил.polkit.spawn( ["/путь/к/сторонней/программе/", "аргумент1", ...] );– для запуска вспомогательной сторонней программы. Стандартный вывод этой программы будет возвращён как результат метода spawn.
Метод polkit.log( message ):
Где message – строка, которая будет выведена Методу log в качестве параметра передаётся строковое значение, которое будет выведено в системный журнал:polkit.log( <строковое_сообщение> ).
Метод используется не самостоятельно, а вызывается изнутри функции function(action, subject).
Для формирования значения параметра message могут быть использованы объекты action и subject.
Объект action – содержит информацию о действии, относительного которого проводится проверка: разрешено или нет это действие пользователю.
Объект поддерживает один атрибут:
action.id– название проверяемого действия.
Например, для программыpkexecзначением атрибутаaction.idбудет "org.freedesktop.policykit.exec".
Объект поддерживает метод:
action.lookup( "<название_переменной>" );– вывод значения переменной, установленной привилегированной программой.
Каждая привилегированная программа предоставляет свой набор переменных. Информация о них дана в документации привилегированной программы.
Если значение переменной<название_переменной>отсутствует, то методaction.lookupвернёт неопределённое значение.
Для примера, программаpkexecустанавливает переменнуюprogram, содержащую путь до команды, запускаемой от имени другого пользователя. Для получения значения этой переменной используется методaction.lookup("program").
При использовании объекта action без указания атрибута или метода, будут выведены одной строкой: название действия и переменные привилегированной программы.
Например, при настройке "polkit.log("action=" + action);" при запуске команды "pkexec -u administrator echo 33333" в журнал будет выведено:
| Блок кода |
|---|
окт 22 00:55:27 astra-28739 polkitd[18387]: action=[Action id='org.freedesktop.policykit.exec' program='/usr/bin/echo' user.display='administrator' command_line='/usr/bin/echo 33333' user='administrator' polkit.message='Authentication is needed to run `$(program)' as user $(user.display)' polkit.gettext_domain='polkit-1' user.gecos=''] |
- subject
Более полная информация о правилах и их составлении дана на странице polkit или доступна по команде "man 8 polkit".
...