.desktop文件中的pkexec命令

我为Androxyde的Flashtool制作了一个.desktop文件(索尼Xperia设备的实用程序,我必须在其文件夹中打开一个可执行文件),该文件需要root权限才能使用fastboot实用程序。 我曾经使它与gksu工作,但我在Ubuntu 15.04上,而gksu现在已经老了。

我试图修改exec

 Exec=gksu /home/natasha/FlashTool/FlashTool 

 Exec=pkexec /home/natasha/FlashTool/FlashTool 

然后,我读到pkexec不允许运行X11应用程序,因此我以这种方式覆盖:

在此处输入图像描述

链接到Imgur.com上的完整图像

现在的问题是:它问我密码但Flashtool的GUI无法启动。 但是如果我在终端中执行该命令,则程序启动没有问题。 我能做什么?

在此处输入图像描述

链接到Imgur.com上的完整图像

/usr/share/polkit-1/actions/创建一个新文件

 sudo nano /usr/share/polkit-1/actions/FlashTool.policy 

并添加以下行:

     Run FlashTool Authentication is required to run FlashTool  no no auth_admin_keep  /home/natasha/FlashTool/FlashTool TRUE   

然后创建一个新文件/home/natasha/FlashTool/

 nano /home/natasha/FlashTool/flashtool-pkexec 

并添加以下行:

 #!/bin/sh pkexec "/home/natasha/FlashTool/FlashTool" "$@" 

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     Run FlashTool Authentication is required to run FlashTool  no no auth_admin_keep  /usr/bin/gedit TRUE   $ cat /usr/bin/gedit-pkexec #!/bin/sh pkexec "gedit" "$@" 

sudo -H足以启动一个图形应用程序,防止更改~/的用户配置文件,因为它将运行环境的主目录设置为root的主目录:

 Exec=sudo -H /home/natasha/FlashTool/FlashTool