Ich nutze das Polkit schon seit Jahren, als vollständigen Ersatz für sudo und die sudoers... und es funktioniert richtig gut. Meine Regeln sind alle in einer Policy namens "
Local extended permissions" hinterlegt (eigene Erfindung), hier als Beispiel ein
kurzer Auszug aus meiner Regeldatei:
Code: Alles auswählen
nano /usr/share/polkit-1/actions/LocalExtPermissions.policy
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<!-- =================================================================================================
Lokal erweiterte User-Rechte fuer Programmstarts als root oder anderer User
Policy-Name : /usr/share/polkit-1/actions/LocalExtPermissions.policy
Version : 1.0
Date : 16.12.2015
======================================================================================================-->
<policyconfig>
<action id="LocalExtPerms.geany">
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin</allow_active>
</defaults>
<annotate key="org.freedesktop.policykit.exec.path">/usr/bin/geany</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
</action>
<action id="LocalExtPerms.htop">
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin</allow_active>
</defaults>
<annotate key="org.freedesktop.policykit.exec.path">/usr/bin/htop</annotate>
</action>
<action id="LocalExtPerms.autoupdate">
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
<annotate key="org.freedesktop.policykit.exec.path">/usr/local/bin/autoupdate</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
</action>
<action id="LocalExtPerms.selnic">
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
<annotate key="org.freedesktop.policykit.exec.path">/usr/local/bin/selnic</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
</action>
</policyconfig>
Es sind hier auszugsweise nur 4 Regeln genannt. Für
geany und
htop ("auth_admin") habe ich mit PKLA-Files explizite Berechtigungen für mich selber angelegt. Bei geany und htop ist in der Regel mit "allow_gui" auch der Unterschied zwischen GUI und Terminal erkennbar. Das heisst, so'n Quatsch wie gksudo oder ksudo (hab vergessen wie die heissen) braucht man beim Polkit nicht mehr. Die beiden Programme
autoupdate und
selnic werden für alle User ohne Passwd-Abfrage ("yes") mit root-Rechten ausgeführt... was auch so erwünscht und notwendig ist.
Die PKLA-Files für
geany und
htop liegen in
Code: Alles auswählen
/etc/polkit-1/localauthority/50-local.d/30_LocalExtPerms.UY_thomas_geany.pkla
/etc/polkit-1/localauthority/50-local.d/60_LocalExtPerms.UY_thomas_htop.pkla
"UY" im Dateinamen bedeutet "User yes". Ich habe auch "UN", für einen User, der etwas bestimmtes nictht darf, oder auch "GY" für "Group yes", oder "GN" für "Group no". Diese Kennzeichnung ist aber auch nur meine Erfindung, die die Reproduzierbarkeit verbessert oder das altersbedingte Vergessen verhindert *fg*
Natürlich sind diese Regelwerke immer auch Bestandteil innerhalb meines Backup-Konzeptes. Insofern würde mich der Verlust nicht sonderlich treffen. Aber ich habe das in mehrere Jahren auf etlichen Maschinen noch nie erlebt. Und das jetzt jemand anderes auch den Dateinamen "LocalExtPermissions.policy" wählt oder mit meiner Namenskonvention bei den PKLA-Files kollidiert, das glaub ich eher nicht. Insofern mach ich mir da keine Gedanken.
HTH