"error: XDG_RUNTIME_DIR not set in the environment." when attempting to run nautilus as root
Solution 1
When you run software as another user you're in fact starting a new minimal isolated environment that doesn't carry on some "excessive" variables (among others variables responsible for injecting libraries or setting privileges). Replace your sudo nautilus
call with the following - it will carry on user-specific X server settings from the current session:
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY nautilus
This is a one time low level solution but it will work on a misconfigured machine. If you want to permanently "fix your sudo
" you need to find the issue with your environment configuration and correct it as described in other answers.
Solution 2
If you are getting this error in Docker ; this is what I do
# 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
Solution 3
I also had the same problem on Ubuntu 14.04. Open terminal by pressing,
Ctrl + Alt+ T
then sudo visudo
change the line
Defaults env_keep="https_proxy"
to
Defaults env_keep += "https_proxy"
It worked like charm.
Solution 4
To make it easy - more explained the new booting of my system.
After all explanations here I came to the result - and "env" in terminal said already that is right for these session:
These two rows to use the environment variable:
for the tmp behavior I have chosen:
mkdir -pv ~/.cache/xdgr
For setting the environment variable:
export XDG_RUNTIME_DIR=$PATH:~/.cache/xdgr
After closing the terminal and a new open for the recall of env they tells:
XDG_RUNTIME_DIR=/run/user/1001
note: it is ok for the user under ubuntu, root need more (last info by term - with 0700 permissions)
Related videos on Youtube
quantumbutterfly
Updated on September 18, 2022Comments
-
quantumbutterfly almost 2 years
I am attempting to run nautilus as root but when I run "sudo nautilus" from the terminal, I get the following error:
error: XDG_RUNTIME_DIR not set in the environment.
(nautilus:9341): Gtk-WARNING **: cannot open display:
The issue does not occur when I attempt to run nautilus as non-root. I am using ubuntu 14.04. Does anyone know how I can fix this?
-
Admin about 9 yearsJust for the record, I ended up here after I had the same error come up when trying to do X11Forwarding via ssh. Solution: I had forgotten to use the
-X
option when starting my ssh session.
-