Answers:
当您以另一个用户的身份运行软件时,实际上是在启动一个新的最小化隔离环境,该环境不会包含一些“过多”变量(其中包括负责注入库或设置某些特权的变量)。将sudo nautilus
呼叫替换为以下内容-它会在当前会话中进行特定于用户的x服务器设置:
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY nautilus
这是一次性的低级别解决方案,但它将在配置错误的计算机上运行。如果要永久“修复sudo
”,则需要查找环境配置问题并按照其他答案中的说明进行纠正。
sudo nautilus
应从终端正常运行。通常,每当我从全新安装的终端上执行此操作时,它都会使用sudo正常打开。
pkexec
与sudo
手册页以及Google解决相关纠纷。
Cannot open display
表示配置文件中缺少某些内容时,是因为某些内容修改了它,并在不应该的情况下将其从环境中删除了。那么,如何才能将其永久设置回环境中呢?这样我就不必处理这个问题了?
env
之前先运行nautilus
,前者负责为我设置变量。您可以检查man env
。
env COMMAND ARG ...
我在Ubuntu 14.04上也遇到了同样的问题。通过按打开终端,
Ctrl+ Alt+T
然后 sudo visudo
换线
默认值env_keep =“ https_proxy”
至
默认值env_keep + =“ https_proxy”
它像魅力一样运作。
$XAUTHORITY
达到目的而设置相同。
-X
启动ssh会话时,我忘记使用该选项。