====== Les règles sous polkit ======
[[http://www.freedesktop.org/wiki/Software/polkit/|polkit]] permet d'exécuter des applications avec certains droits. Il peut être envisagé comme une alternative à **sudo**.
Dans cette page nous allons voir deux règles pour éteindre et redémarrer sa machine sous OpenBSD (lorsque l'on est sous une session graphique).
Par exemple [[http://docs.xfce.org/xfce/xfce4-session/start|xfce4-session]] est capable d'utiliser cette fonctionnalité.
**Il faut que DBus soit lancer au démarrage.**
===== Chercher les actions prédéfinies =====
La commande ''pkaction'' va lister toutes les « actions » disponibles. Celles qui nous intéresse sont :
* org.freedesktop.consolekit.system.restart
* org.freedesktop.consolekit.system.stop
Il nous faut maintenant définir les règles. Ces règles ((Ce sont de simples fichiers textes.)) sont recherchées tout d'abord dans les dossiers ''/etc/polkit-1/rules.d/'' et ''/usr/local/share/polkit-1/rules.d/'', puis elles sont classées par ordre alphabétique, en se basant sur le nom des fichiers.
> **polkitd** reads ''.rules'' files from the ''/etc/polkit-1/rules.d'' and ''/usr/share/polkit-1/rules.d'' directories by sorting the files in lexical order based on the basename on each file (if there's a tie, files in ''/etc'' are processed before files in ''/usr''). For example, for the following four files, the order is
>
> * ''/etc/polkit-1/rules.d/10-auth.rules''
> * ''/usr/share/polkit-1/rules.d/10-auth.rules''
> * ''/etc/polkit-1/rules.d/15-auth.rules''
> * ''/usr/share/polkit-1/rules.d/20-auth.rules''
==== Règle pour redémarrer l'ordinateur ====
Voici donc le fichier ''05-restart.rules''.
polkit.addRule (function (action, subject) {
if (action.id == "org.freedesktop.consolekit.system.restart" ||
action.id == "org.freedesktop.consolekit.system.restart-multiple-users"
&& subject.isInGroup ("users")) {
return polkit.Result.YES;
}
});
On autorise tous les utilisateurs appartenant au groupe **users** à pouvoir redémarrer l'ordinateur.
==== Règle pour arrêter l'ordinateur ====
Voici donc le fichier ''05-stop.rules''.
polkit.addRule (function (action, subject) {
if (action.id == "org.freedesktop.consolekit.system.stop" ||
action.id == "org.freedesktop.consolekit.system.stop-multiple-users"
&& subject.isInGroup ("users")) {
return polkit.Result.YES;
}
});
On autorise tous les utilisateurs appartenant au groupe **users** à pouvoir arrêter l'ordinateur.