“xdg_runtime_dir未在环境中设置”并且pkexec不起作用

时间:2014-12-11 13:34:33

标签: gedit ubuntu-server

我尝试在ubuntu-server 14.04上执行以下行:

$ sudo gedit /usr/local/svn/passwd-team

我收到此错误:

error: XDG_RUNTIME_DIR not set in the environment.

(gedit: 11805): Gtk-WARNING **: can not open display:

我用Google搜索帮助,看到我必须写:

pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY gedit

然后我收到以下消息:

=== AUTHENTICATING FOR org.freedesktop.policykit.exec ===
Authenticating is needed to run '/usr/bin/env' as the super user
Authenticating as: student,,, (student)
Password:
no talloc stackframe at ../source3/param/loadparm.c:4864, leaking memory
=== AUTHENTICATING COMPLETE ===
error: XDG_RUNTIME_DIR not set in the environment.
7
(gedit: 11807): Gtk-WARNING **: can not open display:

现在怎样?我只想编辑passwd-team文件。请指导我。 非常感谢, Orian。

编辑: 我使用nano来编辑该文件,但错误仍然存​​在。

4 个答案:

答案 0 :(得分:3)

在我ssh到任何其他用户后使用gedit时遇到类似问题。这可能是由于缺少权限。

请尝试以下方法: -

从当前用户打开一个新终端。 输入

sudo -i

这会提示输入root密码。输入,然后您就可以使用root权限进行访问。

然后尝试Gedit您要编辑的文件。如果您需要使用su为其他用户执行此操作,请在执行上述步骤后执行

su <username>

现在尝试gedit任何文件。适合我。

答案 1 :(得分:1)

我遇到了同样的问题。在我的情况下,我在下面运行命令:

sudo visudo

在打开的文件中,我删除了最后一行(env = http ...)并保存了文件。 然后一切正常。

答案 2 :(得分:0)

您的解释显示,您没有使用root权限运行命令,因为消息显示为&#34;需要进行身份验证才能运行&#39; / usr / bin / env&#39;作为超级用户&#34;

尝试将其作为

运行
sudo pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY gedit

然后屏幕要求输入root密码,输入你的密码就可以了。

答案 3 :(得分:0)

运行以下命令:

pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY gedit /usr/local/svn/passwd-team

在密码字段中输入您的用户帐户密码。

<强>解释

当您将gedit作为另一个用户(在本例中为root)运行时,您实际上正在启动新的最小且隔离的环境,该环境不会执行某些“过多”变量(其中包括负责注入库或设置某些变量的变量)权限)。上面的命令导致从当前会话进行用户特定的X服务器设置。

<强>参考文献:

  1. https://askubuntu.com/a/467994/185132