Мой графический интерфейс запустится как пользователь. В программе есть update-механизм, который вызывает враппер-скрипт с рут правами. Для этого я использовал gksudo, пока не понял, что он заменен на pkexec.
Если я просто заменил gksudo на pkexec, все работает нормально. Но я хочу иметь собственное сообщение для пользователя. Поэтому мне нужно изменить или сгенерировать файл xml-policy в /usr/share/polkit-1/actions.
Моя проблема в том, что когда я звоню
pkexec <my-program>
Я получу это приглашение, которое ссылается в Details-->Action на org.freedesktop.policykit.exec.
Должен ли я поместить идентификатор действия в этот xml-файл (org.freedesktop.policykit.exec) или мне нужно создать свой собственный файл .policy с именем com.myStuff.updater.policy в /usr/share/polkit-1/actions?
<vendor>myStuff</vendor>
<vendor_url>http://myStuff.com</vendor_url>
<icon_name>myStuff</icon_name>
<action id="com.myStuff.updater">
<description>My description</description>
<message>My message</message>
<defaults>
<allow_any>no</allow_any>
<allow_inactive>no</allow_inactive>
<allow_active>auth_self_keep</allow_active>
</defaults>
<annotate key="com.myStuff.updater.exec.path">/my/path/to/wrapper.sh</annotate>
<annotate key="com.myStuff.updater.exec.allow_gui">true</annotate>
</action>
Или мне следует вызывать все мое приложение в файле .desktop с помощью pkexec?