Форум сообщества Runtu.org
Июль 16, 2018, 11:43:04 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Новости: Доступна для загрузки релизная версия дистрибутива Runtu LITE 18.04 - 201805

Подробнее
   Начало   Помощь Поиск Войти Регистрация  
Страниц: 1   Вниз
  Печать  
Автор Тема: Запуск программ с использованием pkexec  (Прочитано 12599 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Пользователь.
Местный
*****
Offline Offline

Сообщений: 3214


« : Июнь 02, 2013, 23:47:50 »

Запуск программ с использованием pkexec


В Runtu Gnome 12.04 программа Synaptic запускается командой
Код:
pkexec /usr/sbin/synaptic


Захотелось разобраться как это работает.

В man pkexec написано, что pkexec предназначена для выполнения команды от имени другого пользователя.
Внизу руководства был рекомендован man polkit, посмотрел и в нем информацию.

Что понял:
В системе должен быть установлен пакет policykit-1-gnome, он имеется.
Для выполнения команды с помощью pkexec, нужно создать для нее правило в /usr/share/polkit-1/actions/
Например для Synaptic:   /usr/share/polkit-1/actions/com.ubuntu.pkexec.synaptic.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="com.ubuntu.pkexec.synaptic">
    <message>Authentication is required to run the Synaptic Package Manager</message>
    <icon_name>synaptic</icon_name>
    <defaults>
      <allow_any>auth_admin</allow_any>
      <allow_inactive>auth_admin</allow_inactive>
      <allow_active>auth_admin</allow_active>
    </defaults>
    <annotate key="org.freedesktop.policykit.exec.path">/usr/sbin/synaptic</annotate>
    <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
  </action>

</policyconfig>

Сначала идет стандартная шапка.
В теге <policyconfig></policyconfig> уже прописаны правила для запуска Synaptic через pkexec.
id - идентификатор процесса
message - сообщение в всплывающем окне при запуске
icon_name - название иконки, которая будет отображена в всплывающем окне при запуске
В теге <defaults></defaults> указано как выполнять команду (с паролем, без пароля, или запретить запуск)
allow_any - для прочих
allow_inactive - для неактивной сессии
allow_active - для активной сессии, то есть для текущего пользователя
auth_admin - каждый раз при запуске спрашивать пароль
annotate key="org.freedesktop.policykit.exec.path" - путь к исполняемому файлу
annotate key="org.freedesktop.policykit.exec.allow_gui" - запуск в графическом режиме

Для пробы создал правило для nautilus
Код:
<?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="com.ubuntu.pkexec.nautilus">
    <message>Authentication is required to run the Nautilus</message>
    <message xml:lang="ru">Авторизация выполняется для запуска Nautilus</message>
    <icon_name>nautilus</icon_name>
    <defaults>
      <allow_any>auth_admin</allow_any>
      <allow_inactive>auth_admin</allow_inactive>
      <allow_active>auth_admin</allow_active>
    </defaults>
    <annotate key="org.freedesktop.policykit.exec.path">/usr/bin/nautilus</annotate>
    <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
  </action>

</policyconfig>


Выложил эту информацию,так как считаю что пригодится.
« Последнее редактирование: Июнь 02, 2013, 23:50:22 от Пользователь. » Записан
ek-nfn
Местный
*****
Offline Offline

Сообщений: 1135


« Ответ #1 : Октябрь 29, 2017, 17:02:45 »

Правила из данного каталога затираются (у меня так) при обновлении утилиты (synaptic  в данном случае).
Для незатираемых пользовательских правил рекомендуют использовать каталог /etc/polkit-1
Но переход PolicyKit на JavaScript  с версии  0.106 вносит такой хаос в интернетовские советы по настройке пользовательских правил, что так и остается непонятным как настраивать это в клонах Ubuntu (Ubuntu c Debian так и продолжают сидеть на версии 0.105.)
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Valid XHTML 1.0! Valid CSS!