PolicyKit-Regeln werden niemals wirksam

12

Ich versuche, eine neue .rulesDatei für PolicyKit zu schreiben . Mein Testversuch (im Verzeichnis /etc/polkit-1/rules.d/) sieht folgendermaßen aus:

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;
});

Aber soweit ich das beurteilen kann, wird dieser Code niemals ausgeführt. Die testDatei ist noch vorhanden und es gibt keine Protokollausgabe, nachdem so etwas ausgeführt wurde$ pkexec -u otheruser bash

(Ich habe versucht, die .rulesDateien als ausführbar zu markieren .)

Keidax
quelle

Antworten:

15

Wenn Sie mit Ubuntu 19.04 (oder niedriger) arbeiten, verwenden Sie immer noch die alte Version von PolKit, in der keine .rules-Dateien, sondern nur .pkla- und .conf-Dateien vorhanden sind.

Führen Sie an der Eingabeaufforderung Folgendes aus:

pkaction --version

Wenn <0.106 angezeigt wird, können Sie nur die alte Syntax verwenden.

Sie können eine .pkla-Datei in erstellen /etc/polkit-1/localauthority/

Bart
quelle
1
Ubuntu 15.10 ist immer noch auf der alten Version. pkaction --versiongibtpkaction version 0.105
Roger Binns
5
Ubuntu 18.04 trägt noch 0.105 !!!! Oh mein!!!!
Osqui
1
Und selbst keine Version 0.106+ ist für Ubuntu in Repos! OH MEIN GOTT!
Suncatcher
2
Ubuntu 19.04 pkaction version 0.105. Neue Regeldateien werden ohne Unterstützung in JavaScript geschrieben.
Denis Denisov
0

Um wie erwartet zu arbeiten, müssen Sie Ihre eigenen .rulesDateien ablegen in:

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

Beachten Sie, dass es auch diese Frage lösen sollte .

Sylvain Pineau
quelle
Das Verschieben der Datei dorthin schien nichts zu ändern. Auch nach dem polkit docs und der Arch Wiki , /etc/polkit-1/rules.dsollte für die Benutzerkonfiguration verwendet werden. Ich bin mir also nicht sicher, welchen Unterschied das Ändern von Verzeichnissen macht.
Keidax
@ Keidax: Wie heißt deine .rulesDatei?
Sylvain Pineau
Derzeit/usr/share/polkit-1/rules.d/10-udisks-personal.rules
Keidax