Le regole di PolicyKit non entrano mai in vigore


12

Sto cercando di scrivere un nuovo .rulesfile per PolicyKit. Il mio tentativo di test (nella directory /etc/polkit-1/rules.d/) è simile al seguente:

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

Ma per quanto ne so, questo codice non viene mai eseguito. Il testfile è ancora lì e non c'è output del log dopo aver eseguito qualcosa del genere$ pkexec -u otheruser bash

(Ho provato a contrassegnare i .rulesfile come eseguibili.)

Risposte:


15

Se usi Ubuntu 19.04 (o precedente), stai ancora usando la vecchia versione di PolKit, dove non ci sono file .rules ma solo file .pkla e .conf.

Al prompt dei comandi, eseguire:

pkaction --version

Se dice <0.106, allora puoi usare solo la vecchia sintassi.

Puoi creare un file .pkla in /etc/polkit-1/localauthority/


1
Ubuntu 15.10 è ancora nella vecchia versione. pkaction --versionpkaction version 0.105
Roger Binns il

5
Ubuntu 18.04 trasporta ancora 0.105 !!!! Oh mio!!!!
Osqui,

1
E anche nessuna versione 0.106+ è in repository per Ubuntu! OH MIO DIO!
Suncatcher,

2
ubuntu 19.04 pkaction version 0.105. I nuovi file delle regole sono scritti in JavaScript non supportati.
Denis Denisov,

0

Per funzionare come previsto, devi inserire i tuoi .rulesfile:

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

Si noti che dovrebbe anche risolvere questa domanda .


Spostare il file lì non sembrava cambiare nulla. Inoltre, secondo i documenti polkit e il wiki di Arch , /etc/polkit-1/rules.ddovrebbe essere usato per la configurazione dell'utente. Quindi non sono sicuro di quale differenza faccia la modifica delle directory.
Keidax,

@Keidax: come si chiama il tuo .rulesfile?
Sylvain Pineau,

Attualmente/usr/share/polkit-1/rules.d/10-udisks-personal.rules
Keidax,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.