“错误:XDG_RUNTIME_DIR 未在环境中设置。” 尝试以 root 身份运行 nautilus 时

qua*_*fly 18 sudo nautilus

我试图以 root 身份运行 nautilus,但是当我从终端运行“sudo nautilus”时,出现以下错误:

错误:XDG_RUNTIME_DIR 未在环境中设置。

(nautilus:9341): Gtk-WARNING **: 无法打开显示:

当我尝试以非 root 用户身份运行 nautilus 时不会出现此问题。我正在使用 ubuntu 14.04。有谁知道我该如何解决这个问题?

cpr*_*prn 19

当您以其他用户身份运行软件时,您实际上是在启动一个新的最小隔离环境,该环境不会携带一些“过多”变量(以及负责注入库或设置权限的其他变量)。将您的sudo nautilus调用替换为以下内容 - 它将从当前会话中执行用户特定的 X 服务器设置:

pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY nautilus
Run Code Online (Sandbox Code Playgroud)

这是一次性的低级解决方案,但它可以在配置错误的机器上运行。如果您想永久“修复您的sudo”,您需要找到环境配置的问题并按照其他答案中的描述进行更正。


Ale*_*nen 6

如果您在 Docker 中遇到此错误;这就是我所做的

# sudo xhost +
access control disabled, clients can connect from any host
# export DISPLAY=:0.0
# docker run -it --env DISPLAY=unix$DISPLAY --privileged  --volume /tmp/.X11-unix:/tmp/.X11-unix .. rest of your Docker arugments
Run Code Online (Sandbox Code Playgroud)