- pklocalauthority è deprecato
- Hai bisogno di systemd con logind e polkit.
Azioni disponibili
pkaction
# or /usr/share/polkit-1/actions/
Dovresti guardare /usr/share/polkit-1/actions/org.freedesktop.login1.policy
Aggiungi regola
Per prima cosa inizia a monitorare i messaggi di sistema, così possiamo vedere se la nostra nuova regola funziona:
journalctl -f
Quindi crea il file /etc/polkit-1/rules.d/60-noreboot_norestart.rules
(in javascript).
In questo file aggiungiamo la logica per controllare le azioni e consentire users
in power
raggruppare o richiedere su
autorizzazione:
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;
}
}
});
La regola dovrebbe essere caricata e dovrebbe funzionare. Riferimenti sotto.
- 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
Innanzitutto, tieni presente che la funzione di arresto di ConsoleKit considera "utente singolo" e "utenti multipli" come due situazioni diverse:l'arresto del sistema richiede sempre l'autenticazione dell'amministratore se altri utenti hanno effettuato l'accesso.
Tutte queste azioni sono gestite da PolicyKit. Se desideri modificare le politiche, puoi farlo come descritto in polkit(8) – /etc/polkit-1/rules.d/20-disallow-shutdown.rules
:
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 e versioni precedenti lo documentano 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
Il Action
s sono elencati nel file dei criteri di ConsoleKit o eseguendo pkaction
.