geoliver2104 hat geschrieben: 
29.03.2020 12:08:33
Hatte bis jetzt nichts mit dem Policy Kit zu tun und werd mich da mal einlesen.
Möchte das zumindest ansatzweise verstehen.
Wenn man es verstanden hat, ist es relativ einfach:
Das zentrale Verzeichnis, in dem alles Wesentliche geregelt wird, ist /usr/share/polkit-1/
Dort gibt es zwei Verzeichnisse:
/usr/share/polkit-1/rules.d/
/usr/share/polkit-1/actions/
rules.d/ enthält "übergeordnete" oder zu den Regeln in actions abweichende Regeln.
Wenn du dir das Verzeichnis
actions ansiehst, wirst du feststellen, dass dort für eine Menge Programme Regeln erstellt wurden.
Es ist die "Steuerzentrale" die festlegt, wer was in System machen darf. Mit sudo bringst du letztendlich dieses System
durcheinander, oder umgehst es. Ich purge sudo bei einer Neuinstallation als erstes und lebe wunderbar damit.
Innerhalb der Dateien gibt es immer eine oder mehrere Regeln beginnend mit <action id= und endend mit </action>
Darin wird festgelegt wie die Regel heißt (eindeutig) wer was machen darf, und welches Programm ausgeführt wird:
aus der
/usr/share/polkit-1/actions/org.xfce.power.policy
Code: Alles auswählen
<action id="org.xfce.power.backlight-helper">
<description>Modify the laptop display brightness</description>
<message>Authentication is required to modify the laptop display brightness</message>
<defaults>
<allow_any>no</allow_any>
<allow_inactive>no</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
<annotate key="org.freedesktop.policykit.exec.path">/usr/sbin/xfpm-power-backlight-helper</annotate>
</action>
Demnach darf nur der aktive User die Helligkeit verstellen. Wenn du jemand ärgern willst, änderst du auch noch die
dritte Zeile <allow_active>yes</allow_active> in <allow_active>no</allow_active>
Effekt: keiner kann mehr die Helligkeit verstellen.
Nun zurück zu meinem Vorschlag:
die Action
action.id == 'org.freedesktop.login1.power-off
ist eindeutig. wenn du eine Volltextsuche nach dieser ID durchführts, wirst sie nur in der Datei
/usr/share/polkit-1/actions/org.freedesktop.login1.policy
vorfinden sie lautet:
Code: Alles auswählen
<action id="org.freedesktop.login1.power-off">
<description gettext-domain="systemd">Power off the system</description>
<message gettext-domain="systemd">Authentication is required for powering off the system.</message>
<defaults>
<allow_any>auth_admin_keep</allow_any>
<allow_inactive>auth_admin_keep</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
<annotate key="org.freedesktop.policykit.imply">org.freedesktop.login1.set-wall-message</annotate>
</action>
D.h., das nur der aktiver User ohne PW- Eingabe das System herunterfahren darf. Alle anderen benötigen Root- Rechte.
Man könnte das hier natürlich auch ändern. Die Folge wäre dass
jeder jemals eingeloggte User
erstmal das Root- PW bräuchte, um den Rechner runterzufahren.
Genau dies wird durch die ergänzende /modifizierende Regel, die ich oben vorgeschlagen habe umgangen.
Nur User in der Gruppe guest dürfen das dann nicht.