Я сделал .desktop файл для Flashtool Androxyde (утилита для устройств Xperia Sony, которые я должен открыть с исполняемым файлом в его папке), который требует полномочий пользователя root использовать fastboot утилиты. Я раньше заставлял его работать с gksu
, но я нахожусь на Ubuntu 15.04, и gksu теперь стар.
Я пытался изменить exec
строка от
Exec=gksu /home/natasha/FlashTool/FlashTool
кому: Exec=pkexec /home/natasha/FlashTool/FlashTool
Затем я читал о pkexec, не позволяет запускать приложения X11 и таким образом, я переопределяю таким образом:
Свяжитесь с полным образом на Imgur.com
Проблема теперь: Это спрашивает меня пароль, но GUI Flashtool не запускается. НО если я выполняю ту команду в терминале, программа запускается без проблем. Что я могу сделать?
Создайте новый файл в /usr/share/polkit-1/actions/
sudo nano /usr/share/polkit-1/actions/FlashTool.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-FlashTool">
<description>Run FlashTool</description>
<message>Authentication is required to run FlashTool</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">/home/natasha/FlashTool/FlashTool</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">TRUE</annotate>
</action>
</policyconfig>
<час> Тогда создают новый файл /home/natasha/FlashTool/
nano /home/natasha/FlashTool/flashtool-pkexec
и добавляют строки ниже:
#!/bin/sh
pkexec "/home/natasha/FlashTool/FlashTool" "$@"
<час> Использование строка ниже для Exec
в Вашем desktop
файл:
Exec=/home/natasha/FlashTool/flashtool-pkexec
<час> Протестированный в моей системе Ubuntu 15.04 GNOME со следующими файлами:
<час>$ cat /usr/share/applications/gedit.root.desktop
[Desktop Entry]
Name=Gedit as root
GenericName=Text Editor
X-GNOME-FullName=
Comment=
Exec=gedit-pkexec
Icon=gedit
Terminal=false
Type=Application
Categories=GNOME;System;Filesystem;Settings;
StartupNotify=true
X-Ubuntu-Gettext-Domain=gedit
$ cat /usr/share/polkit-1/actions/gedit.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-FlashTool">
<description>Run FlashTool</description>
<message>Authentication is required to run FlashTool</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/bin/gedit</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">TRUE</annotate>
</action>
</policyconfig>
$ cat /usr/bin/gedit-pkexec
#!/bin/sh
pkexec "gedit" "$@"
sudo -H
достаточно для запуска графического приложения, предотвращающего изменения в конфигурационных файлах пользователя в ~/
, так как оно устанавливает корневой каталог рабочей среды на корневой каталог корня:
Exec=sudo -H /home/natasha/FlashTool/FlashTool