Правила 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файли як виконувані.)

Відповіді:


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
ubuntu 19.04 pkaction version 0.105. Нові файли правил записуються в JavaScript, що не підтримується.
Денис Денисов

0

Щоб працювати, як очікувалося, вам потрібно помістити власні .rulesфайли:

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

Зауважте, що це також повинно вирішити це питання .


Переміщення файлу там, схоже, нічого не змінило. Також, згідно з документами polkit та вікі Arch , /etc/polkit-1/rules.dслід використовувати для налаштування користувача. Тож я не впевнений, яка різниця у зміні каталогів.
Кейдакс

@Keidax: як називається ваш .rulesфайл?
Сільвейн Пано

На даний момент/usr/share/polkit-1/rules.d/10-udisks-personal.rules
Кейдакс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.