rendegast hat geschrieben: 
17.02.2018 13:09:54
....schreckt mich das erstmal ab.
Ja, das verstehe ich...

... das ist wirklich ein abschreckendes Beispiel... aber um beim Sprachgebrauch zu bleiben, wenn man sich mal damit auseinander gesetzt hat, erkennt man, dass das erschreckend plausibel und gut gelöst ist.
Letztendlich reduziert sich eine Policy auf diese wenigen sehr eindeutigen Statements:
Code: Alles auswählen
<action id="LocalExtPerms.sudo">
<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/local/bin/sudo</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
</action>
- Als erstes die ID, hier die von mir erfundene ID "LocalExtPerms.sudo", die zur Identifkation (für PKLA-Files) benötigt wird.
- Dann die drei allow-direktiven, die implizite Berechtigungen auf alle Clients, auf inaktive Sitzungen (SSH) und aktive Sitzungen (lokale Anmeldung) regeln.
- Als nächstes folgt das Programm, das geregelt werden soll, hier /usr/local/bin/sudo.
- Und zum Schluß ein zusätzliches Statement, wenn das Programm eine GUI-Anwendung ist, worauf man bei Terminal-Apps jedoch verzichten kann.
Diese Beispiel-Policy ist bei mir für ein Bash-Script, welches sudo emuliert.
Ja... und was feht noch... der Header drum rum... gut, den brauch man.... und wenn man drauf steht, auch noch Description- und Message-Statements, die ich allerdings nicht verwende. Man kann in eine Rule eine Policy eintragen oder viele. Man kann viele Rules erstellen, die jeweils eine oder mehrere thematisch zusammenhängede Policies beinhalten können..... das geht alles.
Leider hält Debian auch bei Stretch immer noch an den alten PKLA-Files fest, statt auch da den XML-Style zu verwenden... und geht damit meiner Meinung nach entgegen der eigentlichen Entwicklung des Polkits den falschen Weg.... aber so isses halt. PKLA steht für
PolicyKit local authorization. Über diese Files kann eine Policy zusätzlich auch auf User und Gruppen angewendet werden, entweder erlauben, oder verbieten, oder beides für unterschiedliche Gruppen/User.
Wenn man beispielsweise einen solchen sudo-wrapper in Verbindung mit dem Polkit verwenden würde, könnte man vorher oder nachher (pkexec) einen beliebigen Logeintrag über das eingegebene Statement schreiben... in Abhängigkeit davon, ob das sudo-statement erfolgreich war oder nicht.
Ob das hier für die Eingangsfrage praktikabel ist... *hmmm*... kann ich nicht einschätzen... aber ich halte es für empfehlenswert, mal einige Tage zur Einarbeitung zu opfern.