pkexec не запускает графический интерфейс polkit в Lubuntu / LXDE

В соответствии с: https://stackoverflow.com/a/17748092/108802

Вам необходимо установить gcc-multilibs.

sudo apt-get install gcc-multilib g++-multilib
Затем [... ] указать 32-битный хост и передать 32-битные флаги компиляции:
./configure --host=i686-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
1
задан 19 April 2015 в 21:00

2 ответа

Я использую альтернативное решение для принятого ответа. Я предпочитаю использовать lxpolkit вместо policykit-1-gnome, поскольку он предназначен для LXDE.

Эта проблема с pkexec, не запускающая экран проверки подлинности, очень распространена. Первое, что нужно проверить, - установить графический интерфейс набора политик (либо lxpolkit или policykit-1-gnome), установленный и настроенный для LXDE, поскольку эти пакеты помечены как удаленные во время крупного обновления lubuntu. По-видимому, ни один из них не включен при установке дистрибутива.

Решение

Установите lxpolkit. sudo apt-get install lxpolkit Выход и вход в систему. Установите lxpolkit в качестве агента политики по умолчанию. В меню перейдите к Preferences > Default applications for LXSession (или запустите lxsession-default-apps в терминале). В первом разделе «Запуск приложений» (обновление: менеджер приложений по умолчанию 14.10 отличается. Используйте вкладку Core applications.) Перейдите к опции для Polkit agent и убедитесь, что выбран lxpolkit.

Вместо использования пакета policykit-1-gnome, lxsession теперь будет использовать lxpolkit для LXDE.

Почему приложения запущены с помощью pkexec Дон 't Запуск из меню LXDE

Это сводится к тому, что приложения в системе X11 запускаются с помощью pkexec.

Приложения, отображаемые в меню lxpanel, сохраняются и настраиваются в либо /usr/share/applications (элементы глобального меню), либо ~/.local/share/applications (зависит от пользователя). См. LXDE Wiki - Главное меню

В этих каталогах вы найдете файл .desktop для каждого из приложений, появляющихся в вашем меню. Вот пример /usr/share/applications/synaptic.desktop:

[Desktop Entry]
Name=Synaptic Package Manager
GenericName=Package Manager
Comment=Install, remove and upgrade software packages
Exec=synaptic-pkexec
Icon=synaptic
Terminal=false
Type=Application
Categories=PackageManager;GTK;System;Settings;
NotShowIn=KDE;
X-Ubuntu-Gettext-Domain=synaptic

Обратите внимание на строку pkexec .

В отсутствие интерфейса набора политик пользователю обычно запрашивают пароль в командной строке. Поскольку это элемент меню, он запускается в фоновом режиме, и для ввода пароля нет командной строки. Следовательно, вы должны убедиться, что используете lxpolkit. Или, если вы предпочитаете polkit gnome, установите пакет policykit-1-gnome, который запускает меню входа в систему, когда используется pkexec. Я удалил пакет policykit-1-gnome, и использование lxpolkit хорошо работает для всех приложений.

Альтернативные решения

Использовать gksudo Вместо pkexec Вы могли бы щелкнуть правой кнопкой мыши приложения, такие как синаптические в выберите «Свойства» и измените поле «Команда» с synaptic-pkexec на gksudo synaptic. Или через командную строку скопируйте исходный файл в каталог приложений вашего пользователя с помощью sudo cp /usr/share/applications/synaptic.desktop ${HOME}/.local/share/applications/synaptic.desktop

Затем отредактируйте строку Exec=synaptic-pkexec и замените ее на Exec=gksudo synaptic

gksudo's «основная цель заключается в том, чтобы запускать графические команды, которым нужен root без необходимости запуска эмулятора X-терминала и напрямую использовать su. " - LXDE Wiki - Главное меню

И не зря!

Это, конечно, требует, чтобы каждое приложение, основанное на pkexec, редактировалось для запуска с помощью gksudo, что требует больше работы с вашей стороны, если вы используете lxpanel. Хорошее сравнение функций безопасности и удобства использования для gksudo и PolicyKit можно найти в Запуск Sudo Графически .

Использовать gksudo Вместо pkexec [ ! d28] Это больше, чем я хочу, но может быть полезно в некоторых ситуациях. Я не рекомендую делать это без сильного понимания написания действий PolicyKit.

Действия, доступные вам через polkit, будут зависеть от установленных вами пакетов. Некоторые из них используются в нескольких настольных средах (org.freedesktop.), Некоторые из них относятся к DE (org.gnome.), А некоторые относятся к одной программе (org.archlinux.pkexec.gparted.policy). Команда pkaction перечисляет все действия, определенные в / usr / share / polkit-1 / actions для быстрой справки.

Вот пример, который я не тестировал, из написания PolicyKit Actions :

Действия, доступные вам через polkit, будут зависеть от пакетов, которые вы установили. Некоторые из них используются в нескольких настольных средах (org.freedesktop.), Некоторые из них относятся к DE (org.gnome.), А некоторые относятся к одной программе (org.archlinux.pkexec.gparted.policy). Команда pkaction перечисляет все действия, определенные в / usr / share / polkit-1 / actions, для быстрой ссылки.

$ pkexec gparted
, затем создайте новый файл
/usr/share/polkit-1/actions/org.freedesktop.policykit.pkexec.policy
со следующим содержимым:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>

  <action id="org.freedesktop.policykit.pkexec.run-gparted">
    <description>Run GParted</description>
    <message>Authentication is required to run GParted</message>
    <defaults>
      <allow_any>no</allow_any>
      <allow_inactive>no</allow_inactive>
      <allow_active>auth_admin_keep</allow_active>
    </defaults>
    <annotate key="org.freedesktop.policykit.exec.path">/usr/sbin/gparted</annotate>
    <annotate key="org.freedesktop.policykit.exec.allow_gui">TRUE</annotate>
  </action>

</policyconfig>
Другие действия могут быть добавлены в один и тот же файл.

Например. если вы хотите запустить gparted с правами root с помощью

3
ответ дан 25 May 2018 в 08:48

Используется предложение щелкнуть правой кнопкой мыши по синаптической записи в меню в разделе «Служебные программы», выбрать «Свойства», затем вкладку «Ввод рабочего стола» и сменить synaptic-pkexec на gksudo synaptic.

Это не сработало, поэтому я

Для меня, пытаясь использовать gksudo, появилось сообщение о том, как установить gksu. Когда я попытался установить, в результате появилось сообщение о том, что gksu уже установлен (и все еще не работает). Я удалил gksu и переустановил, и теперь синаптика прекрасно работает.

0
ответ дан 25 May 2018 в 08:48

Другие вопросы по тегам:

Похожие вопросы: