Zasady PolicyKit nigdy nie wchodzą w życie

12

Próbuję napisać nowy .rulesplik dla PolicyKit. Moja próba testowa (w katalogu /etc/polkit-1/rules.d/) wygląda następująco:

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

Ale o ile wiem, ten kod nigdy nie jest uruchamiany. testPlik nadal istnieje i nie ma wyjścia dziennika po uruchomieniu coś$ pkexec -u otheruser bash

(Próbowałem oznaczyć .rulespliki jako pliki wykonywalne).

Keidax
źródło

Odpowiedzi:

15

Jeśli korzystasz z systemu Ubuntu 19.04 (lub nowszego), nadal używasz starej wersji PolKit, w której nie ma plików .rules, a jedynie pliki .pkla i .conf.

W wierszu polecenia wykonaj:

pkaction --version

Jeśli mówi <0,106, możesz użyć tylko starej składni.

Możesz utworzyć plik .pkla w /etc/polkit-1/localauthority/

Bart
źródło
1
Ubuntu 15.10 jest nadal w starej wersji. pkaction --versiondajepkaction version 0.105
Roger Binns
5
Ubuntu 18.04 nadal nosi 0,105 !!!! O mój!!!!
Osqui
1
I nawet żadna wersja 0.106+ nie jest dostępna w repozytoriach dla Ubuntu! O MÓJ BOŻE!
Suncatcher
2
ubuntu 19.04 pkaction version 0.105. Nowe pliki reguł są zapisywane w JavaScript nieobsługiwane.
Denis Denisov,
0

Aby działać zgodnie z oczekiwaniami, musisz umieścić własne .rulespliki w:

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

Pamiętaj, że powinno to również rozwiązać to pytanie .

Sylvain Pineau
źródło
Przeniesienie pliku tam nic nie zmieniło. Ponadto, zgodnie z dokumentacją polkit i wiki Arch , /etc/polkit-1/rules.dnależy użyć do konfiguracji użytkownika. Nie jestem więc pewien, co robi zmiana katalogów.
Keidax
@Keidax: jak nazywa się twój .rulesplik?
Sylvain Pineau
Obecnie/usr/share/polkit-1/rules.d/10-udisks-personal.rules
Keidax,