====== 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.