Aturan PolicyKit tidak pernah berlaku

12

Saya mencoba menulis .rulesfile baru untuk PolicyKit. Upaya pengujian saya (dalam direktori /etc/polkit-1/rules.d/) terlihat seperti ini:

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

Tapi sejauh yang saya tahu, kode ini tidak pernah berjalan. The testfile masih ada, dan tidak ada keluaran log setelah menjalankan sesuatu seperti$ pkexec -u otheruser bash

(Saya sudah mencoba menandai .rulesfile sebagai executable.)

Keidax
sumber

Jawaban:

15

Jika Anda menggunakan Ubuntu 19.04 (atau lebih rendah) maka Anda masih menggunakan versi lama PolKit, di mana tidak ada file .rules tetapi hanya file .pkla dan .conf.

Pada prompt perintah, lakukan:

pkaction --version

Jika tertulis <0.106, maka Anda hanya dapat menggunakan sintaks lama.

Anda dapat membuat file .pkla di /etc/polkit-1/localauthority/

Bart
sumber
1
Ubuntu 15.10 masih dalam versi lama. pkaction --versionmemberipkaction version 0.105
Roger Binns
5
Ubuntu 18.04 masih membawa 0.105 !!!! Astaga!!!!
Osqui
1
Dan bahkan tidak ada versi 0.106+ dalam repo untuk Ubuntu! OH TUHAN!
Suncatcher
2
ubuntu 19.04 pkaction version 0.105. File aturan baru ditulis dalam JavaScript tidak didukung.
Denis Denisov
0

Agar berfungsi seperti yang diharapkan, Anda harus meletakkan .rulesfile Anda sendiri di:

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

Perhatikan bahwa ini juga harus menyelesaikan pertanyaan ini .

Sylvain Pineau
sumber
Memindahkan file di sana sepertinya tidak mengubah apa pun. Juga, menurut dokumen polkit dan Arch wiki , /etc/polkit-1/rules.dharus digunakan untuk konfigurasi pengguna. Jadi saya tidak yakin apa bedanya mengubah direktori.
Keidax
@ Keidax: apa nama .rulesfile Anda ?
Sylvain Pineau
Saat ini/usr/share/polkit-1/rules.d/10-udisks-personal.rules
Keidax