我在 usr/share/applications
中放置了一个桌面条目运行一个 Java jar,看起来像:
[Desktop Entry]
Encoding=UTF-8
Exec=pkexec /usr/bin/java -jar something-something.jar
Icon=default.png
Type=Application
Terminal=false
Name=foo
GenericName=bar
StartupNotify=false
Categories=Game
我需要将 JAR 运行为 root
,所以我尝试使用 pkexec
出现 GUI 密码提示,以便我可以将 JAR 运行为 sudo
(我使用的是 Ubuntu 18)。但是,它不起作用,当我尝试在终端中打开桌面条目(使用类似 xdg-open
)时,我得到: Refusing to render service to dead parents
我相信问题出在我使用 pkexec
上。虽然我有兴趣知道为什么 pkexec
不适合我的使用,我想知道我可以做什么来运行 sudo
的 JAR从图形用户界面?这样,当我单击菜单中的桌面条目时,会出现密码提示。
编辑:
其实我一直在用gtk-open
并得到已故 parent 的错误。 xdg-open
结果只是在 vim
中打开桌面条目.
最佳答案
pkexec
是PolicyKit 的一部分,它允许更精细的权限分配。要使用 pkexec 执行具有图形用户界面的程序,您可以使用以下调用:
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /usr/bin/java -jar something-something.jar
关于bash - 如何以 root 身份打开桌面条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57780242/