我为 Androxyde 的 Flashtool(索尼 Xperia 设备的实用程序,我必须在其文件夹中打开一个可执行文件)创建了一个 .desktop 文件,它需要 root 权限才能使用 fastboot 实用程序。我曾经让它与 一起工作gksu
,但我在 Ubuntu 15.04 上,gksu 现在已经过时了。
我试图修改exec
行
Exec=gksu /home/natasha/FlashTool/FlashTool
至Exec=pkexec /home/natasha/FlashTool/FlashTool
然后,我读到 pkexec 不允许运行 X11 应用程序,所以我以这种方式覆盖:
现在的问题是:它询问我密码,但 Flashtool 的 GUI 没有启动。但是,如果我在终端中执行该命令,程序将毫无问题地启动。我能做些什么?
在中创建一个新文件
/usr/share/polkit-1/actions/
并添加以下行:
然后创建一个新文件
/home/natasha/FlashTool/
并添加以下行:
Exec
在您的desktop
文件中使用以下行:使用以下文件在我的系统 Ubuntu 15.04 GNOME 上测试:
你也可以改变
至
这样你就会被问及密码,程序会照常启动。
(请参阅如何从 Unity Launcher 以 root 身份启动应用程序?了解更多信息和推理。TL;DR:
sh -c
在 shell 中启动它,后续代码在其中运行,正如操作确认的那样。pkexec
然后以 root 身份启动“APP_COMMAND”但是需要环境变量才能真正启动 GUI 应用程序。)sudo -H
足以启动图形应用程序以防止更改 中的用户配置文件~/
,因为它将运行环境的主目录设置为 root 的主目录: