以前有人告诉过使用它sudo
来启动基于 GUI 的应用程序是个坏主意。
所以应该pkexec
改用。
我记得,所以我尝试使用终端在 Kubuntu 20.04 LTS 上启动 Kubuntu Driver Manager
pkexec kubuntu-driver-manager
但是此命令不起作用,它会崩溃并显示以下输出:
qt.qpa.xcb: could not connect to display
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: wayland-org.kde.kwin.qpa, dxcb, eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, xcb.
Aborted (core dumped)
我最近报告了错误 1885615。但我对这种行为感到非常惊讶。有趣的sudo kubuntu-driver-manager
是正常工作。我仍然可以使用- 命令
在 Kubuntu 上启动基于 Gtk 的应用程序,例如以root权限打开应用程序。pkexec
pkexec pluma
所以我的问题在标题中。
确实有某种黑客可以使用
pkexec
,而不是在sudo
没有特定 PolicyKit .policy文件的情况下启动应用程序。我们需要指定遗漏的环境变量,如下所示:实验我发现它只需要一个
/usr/share/polkit-1/actions/org.freedesktop.policykit.policy
文件即可操作。要启动具有该程序
pkexec
的适当.policy
文件的程序,目录中需要存在该/usr/share/polkit-1/actions
文件。它与使用哪个图形工具包(Gtk 或 Qt)无关。