web-dev-qa-db-fra.com

Les règles du PolicyKit n'entrent jamais en vigueur

J'essaie d'écrire un nouveau fichier .rules pour PolicyKit. Ma tentative de test (dans le répertoire /etc/polkit-1/rules.d/) ressemble à ceci:

polkit.addRule(function(action, subject) {
    polkit.spawn(["rm","/home/gabriel/test"]);
    if (action.id == "org.freedesktop.policykit.exec") {
        polkit.log("action=" + action);
        polkit.log("subject=" + subject);
    }
    return polkit.Result.NOT_HANDLED;
});

Mais pour autant que je sache, ce code n'est jamais exécuté. Le fichier test est toujours présent et il n'y a pas de sortie de journal après l'exécution de quelque chose comme $ pkexec -u otheruser bash

(J'ai essayé de marquer les fichiers .rules comme exécutables.)

9
Keidax

Si vous êtes sur buntu 19.04 (ou inférieur) , vous utilisez toujours l'ancienne version de PolKit, où il n'y a pas de fichiers .rules, mais uniquement des fichiers .pkla et .conf.

Sur l'invite de commande, faites:

pkaction --version

Si la valeur est inférieure à 0,106, vous ne pouvez utiliser que l'ancienne syntaxe.

Vous pouvez créer un fichier .pkla dans /etc/polkit-1/localauthority/

11
Bart

Pour fonctionner comme prévu, vous devez placer vos propres fichiers .rules dans:

/usr/share/polkit-1/rules.d

Notez qu'il devrait également résoudre ceci question .

0
Sylvain Pineau