As regras do PolicyKit nunca entram em vigor

12

Estou tentando escrever um novo .rulesarquivo para o PolicyKit. Minha tentativa de teste (no diretório /etc/polkit-1/rules.d/) fica assim:

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

Mas até onde eu sei, esse código nunca é executado. O testarquivo ainda está lá e não há saída de log após executar algo como$ pkexec -u otheruser bash

(Tentei marcar os .rulesarquivos como executáveis.)

Keidax
fonte

Respostas:

15

Se você estiver no Ubuntu 19.04 (ou inferior) , ainda estará usando a versão antiga do PolKit, onde não há arquivos .rules, mas apenas arquivos .pkla e .conf.

No prompt de comando, faça:

pkaction --version

Se for <0,106, você poderá usar apenas a sintaxe antiga.

Você pode criar um arquivo .pkla em /etc/polkit-1/localauthority/

Bart
fonte
11
O Ubuntu 15.10 ainda está na versão antiga. pkaction --versionpkaction version 0.105
Roger Binns 24/03
5
Ubuntu 18.04 ainda carrega 0.105 !!!! Oh meu!!!!
Osqui
11
E mesmo nenhuma versão 0.106+ está em repositórios para Ubuntu! AMD!
Suncatcher 6/18
2
Ubuntu 19.04 pkaction version 0.105. Novos arquivos de regras são gravados em JavaScript sem suporte.
Denis Denisov
0

Para funcionar como esperado, você deve colocar seus próprios .rulesarquivos em:

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

Observe que ele também deve resolver esta questão .

Sylvain Pineau
fonte
Mover o arquivo para lá não parecia mudar nada. Além disso, de acordo com os documentos do polkit e o wiki do Arch , /etc/polkit-1/rules.ddeve ser usado para a configuração do usuário. Portanto, não tenho certeza de que diferença faz a alteração de diretórios.
Keidax
@ Keidax: qual é o nome do seu .rulesarquivo?
22614 Sylvain Pineau
Atualmente/usr/share/polkit-1/rules.d/10-udisks-personal.rules
Keidax