bash - 如何以 root 身份打开桌面条目?

标签 bash user-interface root ubuntu-18.04

我在 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/

相关文章:

linux - 如何在bash中将一个txt文件中的文件名重命名为另一个txt文件中的文件名?

linux - 从 bash 脚本启动进程失败

c# - 目前有哪些Windows GUI框架值得学习?

C# 如何知道给定路径是否代表根驱动器?

linux - 删除/usr 目录后访问 BeagleBone (Debian) 上的/root 文件夹

php - 通过php和bash执行服务命令

python - Linux 上的 Redis 管道崩溃

javascript - 当父级固定高度时如何将div叠加在其父级之上

c++ - 在 c/c++ 中一次从文件中读取某些行

centos - 即使以 root 身份,dd 也返回被拒绝的权限