我似乎无法从命令行启动 gparted。我正在使用带有 LXDE 的 Trisquel 8(基于 Ubuntu 16.04)。如果我尝试打开它,我会收到以下错误并且没有任何反应:
$ sudo gparted
(gpartedbin:7820): Gtk-WARNING **: cannot open display:
但是,它似乎可以从图形应用程序菜单中正常打开。
我在网上搜索了一下,一个建议是尝试:
xhost +localhost
然而,这并没有帮助。显然,在 Wayland 中以 root 身份从命令行打开 gtk 应用程序似乎存在问题;但是,我使用的是 X11。这只是在本地笔记本电脑上 - 不涉及 ssh-ing 或远程系统。
看起来很奇怪,因为我过去一直都能从命令行打开gparted。我也尝试过重新安装 gparted ,但这似乎没有帮助。
更新:
按照 meuh 在评论中的建议,我添加DISPLAY=:0
到 /etc/environment 文件中,所以在使用 sudo 时应该通过。但是,我仍然遇到错误,但它现在已更改:
$ sudo gparted
No protocol specified
(gpartedbin:5549): Gtk-WARNING **: cannot open display: :0
似乎现在正在传递 DISPLAY 变量,但我不确定“无协议”消息的含义。
要访问 X,您需要环境变量
DISPLAY
和XAUTHORITY
. 根据设置,sudo 可能会删除它们。您可以检查sudo env
以查看环境变量。为了保护您的用户环境,您可以使用
sudo -E
.HOME
这对您的用户家有陷阱设置,并且配置文件可能会获得错误的文件权限。但是,为避免这种情况,sudo -H
设置HOME
为/root
.将其结合为 gparted:
只有所需的变量可以设置为:
错误信息:
cannot open display:
手段DISPLAY
为空或不存在。no protocol specified
手段DISPLAY
已设置且有效,但XAUTHORITY
指向身份验证 cookie 未设置或 cookie 无效。或者,xhost +SI:localuser:root
允许 root 临时访问 X,直到注销。WAYLAND_DISPLAY
使用和访问 Wayland 也是如此XDG_RUNTIME_DIR
。Wayland 根访问问题也可以通过sudo -EH
. 有关详细信息和陷阱,XDG_RUNTIME_DIR
请参阅Wayland 是否支持图形 sudo?有
kdesudo
,gsudo
和其他一些sudo
s 可以解决这个问题。这是一个,我一起破解(未经安全审计/测试)。