Рейтинг:1

Отладить правила PolicyKit?

флаг mx

Я столкнулся с тем, что кажется простой проблемой, которая сводит меня с ума.

Я сделал чистую установку Kubuntu 20.04. Все отлично работает локально на машине, но мой основной вариант использования работает через удаленный рабочий стол с помощью xrdp. Я делал это много раз раньше и на многих машинах.

В этом случае я получаю очень распространенное всплывающее окно для org.freedesktop.packagekit.system-sources-refresh, но работающее только через RDP.

Первое, что я сделал, это создал файл 46-allow-update-repo.pkla в /etc/polkit-1/localauthority/50-local.d со следующим содержимым:

[Разрешить управление пакетами всем пользователям]
Идентификация=unix-пользователь:*
Действие = org.freedesktop.packagekit.system-sources-обновить
РезультатЛюбой=да
РезультатНеактивный=да
РезультатАктив=да 

На поведение это никак не повлияло.

В качестве грубой попытки обойти проблему я создал пользовательское правило в /etc/polkit-1/rules.d/49-allow-rdp-system-refresh.rules со следующим содержимым. Обратите внимание, что это было сделано только для устранения неполадок; Я не хочу запускать систему таким образом:

polkit.addRule (функция (действие, тема) {
    {
        polkit.log("action=" + действие);
        polkit.log("subject=" + тема);

        вернуть polkit.Result.YES;
    }
});

Это тоже не повлияло. Я также проверил файл /var/log/auth.log и не увидел строк журнала из правила выше. Что я вижу в файле журнала, который, по-видимому, связан с этой проблемой, так это следующие строки:

13 января, 17:11:24 ***** PackageKit: uid 1000 пытается получить org.freedesktop.packagekit.system-sources-refresh auth (only_trusted:0)
13 января, 17:11:24 ***** polkitd(authority=local): Оператору unix-session:c1 НЕ удалось пройти аутентификацию для получения авторизации для действия org.freedesktop.packagekit.system-sources-refresh for system-bus- name::1.77 [/usr/lib/x86_64-linux-gnu/libexec/DiscoverNotifier] (принадлежит unix-user:wadeh)
13 января 17:11:24 ***** PackageKit: uid 1000 не удалось получить авторизацию

Когда я запускаю локально, а не через RDP, журнал выглядит так:

13 января 17:13:07 ***** PackageKit: uid 1000 пытается получить org.freedesktop.packagekit.system-sources-refresh auth (only_trusted:0)
13 января 17:13:07 ***** PackageKit: uid 1000 получен для org.freedesktop.packagekit.system-sources-refresh

В этот момент я немного растерялся. Как будто polkit не видит моих изменений. Обратите внимание, что я перезагружаю систему после каждого изменения одного из файлов, просто чтобы убедиться, что все запускается с изменениями.

Установил сегодня все начисто, с ISO, который вчера скачал с ветки LTS. Номера версий следующие:

Плазменная версия KDE: 5.18.5 Платформы KDE Версия: 5.68.0 Версия Qt: 5.12.8 Версия ядра: 5.11.0-46-универсальная Тип ОС: 64 бит

Версия XRDP — 0.9.12.

muru avatar
флаг us
Ни одна версия Ubuntu не поддерживает правила JavaScript Polkit, iirc. Так что этот файл не сработал бы.
флаг mx
Итак, если правила JavaScript не работают, как бы вы устранили неполадки в чем-то подобном? Я также должен упомянуть, что я создал аналогичный файл pkla для всплывающего окна NetworkManager, и он отлично работал и дал ожидаемый результат. Любая попытка, которую я предпринял, чтобы избежать всплывающего окна обновления, по-прежнему терпит неудачу. Разочаровывает то, что это похоже на черный ящик. Я предполагаю, что что-то простое не так, но без возможности увидеть параметры, переданные в правило, или иным образом улучшить ведение журнала, я полностью слеп.
флаг mx
Вот текущий статус по этому поводу: я не могу заставить правило pkla соответствовать, независимо от того, что я пытаюсь. Я смог получить желаемое поведение, просто отредактировав значения по умолчанию для субъекта в каталоге /usr/share/polkit-1/actions, но это всего лишь обходной путь.
флаг mx
Я могу думать только о трех вещах, вызывающих проблему: 1) Файл pkla не распознается. Я склонен сбрасывать со счетов это, потому что у меня есть два других файла pkla, которые работают должным образом. 2) Действие не соответствует во время выполнения. Я склонен сбрасывать со счетов это, поскольку всплывающее диалоговое окно содержит строку действия в деталях (и я попытался скопировать и вставить ее непосредственно в правило, поэтому я знаю, что это правильно в файле pkla).
флаг mx
3) Тема не соответствует во время выполнения. Это кажется наиболее вероятным, поскольку сеанс xRDP явно ведет себя иначе, чем локальный сеанс. Но запись в файле auth.log показывает имя пользователя, как и ожидалось.
флаг mx
На данный момент я сдаюсь и просто иду с обходным путем. Если что-то привлечет мое внимание в будущем, я вернусь к этому. Я также приветствовал бы любые предложения по фактической отладке этого, вместо того, чтобы просто биться об него головой методом проб и ошибок.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.