- pklocalauthority est obsolète
- Vous avez besoin de systemd avec logind et polkit.
Actions disponibles
pkaction
# or /usr/share/polkit-1/actions/
Vous devriez regarder /usr/share/polkit-1/actions/org.freedesktop.login1.policy
Ajouter une règle
Commencez par surveiller les messages du système, afin que nous puissions voir si notre nouvelle règle fonctionne :
journalctl -f
Créez ensuite le fichier /etc/polkit-1/rules.d/60-noreboot_norestart.rules
(en javascript).
Dans ce fichier, nous ajoutons une logique pour vérifier les actions et autoriser users
en power
groupe ou nécessite su
autorisation :
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 règle devrait être chargée et cela devrait fonctionner. Références ci-dessous.
- 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
Tout d'abord, notez que la fonction d'arrêt de ConsoleKit considère "un seul utilisateur" et "plusieurs utilisateurs" comme deux situations différentes - l'arrêt du système nécessite toujours l'authentification de l'administrateur si d'autres utilisateurs sont connectés.
Toutes ces actions sont gérées par PolicyKit. Si vous souhaitez ajuster les politiques, vous pouvez le faire comme décrit dans 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 et les versions antérieures documentent cela dans 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
Le Action
s sont répertoriés dans le fichier de stratégie ConsoleKit ou en exécutant pkaction
.