Правила PolicyKit никогда не вступают в силу

12

Я пытаюсь написать новый .rulesфайл для PolicyKit. Моя тестовая попытка (в каталоге /etc/polkit-1/rules.d/) выглядит так:

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

Но, насколько я могу судить, этот код никогда не запускается. testФайл все еще там, и там нет никакого вывода журнала после запуска что - то вроде$ pkexec -u otheruser bash

(Я попытался пометить .rulesфайлы как исполняемые.)

Keidax
источник

Ответы:

15

Если вы используете Ubuntu 19.04 (или ниже), вы все еще используете старую версию PolKit, в которой нет файлов .rules, а есть только файлы .pkla и .conf.

В командной строке выполните:

pkaction --version

Если он говорит <0.106, то вы можете использовать только старый синтаксис.

Вы можете создать файл .pkla в /etc/polkit-1/localauthority/

Барт
источник
1
Ubuntu 15.10 все еще на старой версии. pkaction --versionдаетpkaction version 0.105
Роджер Биннс
5
Ubuntu 18.04 по-прежнему несет 0.105 !!!! О мой !!!!
Оски
1
И даже нет версии 0.106+ в репозиториях для Ubuntu! О, МОЙ БОГ!
Suncatcher
2
Убунту 19.04 pkaction version 0.105. Новые файлы правил написаны на JavaScript без поддержки.
Денис Денисов
0

Чтобы работать должным образом, вы должны поместить свои собственные .rulesфайлы в:

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

Обратите внимание, что это также должно решить этот вопрос .

Сильвен Пино
источник
Перемещение файла там, похоже, ничего не изменило. Также, в соответствии с документами polkit и Arch wiki , /etc/polkit-1/rules.dследует использовать для конфигурации пользователя. Так что я не уверен, какая разница с изменением каталогов.
Кейдакс
@Keidax: как называется ваш .rulesфайл?
Сильвен Пино,
В настоящее время/usr/share/polkit-1/rules.d/10-udisks-personal.rules
Keidax