- pklocalauthority ist veraltet
- Du brauchst systemd mit logind und polkit.
Verfügbare Aktionen
pkaction
# or /usr/share/polkit-1/actions/
Sie sollten sich /usr/share/polkit-1/actions/org.freedesktop.login1.policy
ansehen
Regel hinzufügen
Beginnen Sie zuerst mit der Überwachung von Systemmeldungen, damit wir sehen können, ob unsere neue Regel funktioniert:
journalctl -f
Erstellen Sie dann die Datei /etc/polkit-1/rules.d/60-noreboot_norestart.rules
(in Javascript).
In dieser Datei fügen wir Logik hinzu, um nach Aktionen zu suchen und users
zuzulassen in power
Gruppe oder erfordern su
Berechtigung:
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.login1.reboot" ||
action.id == "org.freedesktop.login1.reboot-multiple-sessions" ||
action.id == "org.freedesktop.login1.power-off" ||
action.id == "org.freedesktop.login1.power-off-multiple-sessions") {
if (subject.isInGroup("power")) {
return polkit.Result.YES;
} else {
return polkit.Result.AUTH_ADMIN;
}
}
});
Regel sollte geladen werden und es sollte funktionieren. Referenzen unten.
- https://lists.fedoraproject.org/pipermail/users/2013-September/440457.html
- https://wiki.archlinux.org/index.php/Polkit#Authorization_rules
- http://www.freedesktop.org/software/polkit/docs/latest/polkit.8.html
- https://bbs.archlinux.org/viewtopic.php?pid=1335204#p1335204
Beachten Sie zunächst, dass die Shutdown-Funktion von ConsoleKit „einzelner Benutzer“ und „mehrere Benutzer“ als zwei unterschiedliche Situationen betrachtet – das Herunterfahren des Systems erfordert immer eine Administratorauthentifizierung, wenn andere Benutzer angemeldet sind.
Alle diese Aktionen werden von PolicyKit verwaltet. Wenn Sie die Richtlinien anpassen möchten, können Sie dies wie in polkit(8) – /etc/polkit-1/rules.d/20-disallow-shutdown.rules
beschrieben tun :
polkit.addRule(function(action, subject) { if ((action.id == "org.freedesktop.consolekit.system.stop" || action.id == "org.freedesktop.consolekit.system.restart") && subject.isInGroup("users")) { return subject.active ? polkit.Result.AUTH_ADMIN : polkit.Result.NO; } });
PolicyKit 0.105 und frühere Versionen dokumentieren dies in pklocalauthority(8) – /etc/polkit-1/localauthority/50-local.d/20-disallow-shutdown.pkla
:
[Disallow shutdown] Identity=unix-group:users Action=org.freedesktop.consolekit.system.stop;org.freedesktop.consolekit.system.restart ResultAny=no ResultInactive=no ResultActive=auth_admin
Die Action
s werden in der ConsoleKit-Richtliniendatei oder durch Ausführen von pkaction
aufgelistet .