web-dev-qa-db-fra.com

"erreur: XDG_RUNTIME_DIR non défini dans l'environnement." en essayant d'exécuter Nautilus en tant que racine

J'essaie de lancer Nautilus en tant que racine, mais lorsque je lance "Sudo Nautilus" depuis le terminal, le message d'erreur suivant s'affiche:

erreur: XDG_RUNTIME_DIR non défini dans l'environnement.

(Nautilus: 9341): Gtk-WARNING **: impossible d'ouvrir l'écran:

Le problème ne se produit pas lorsque j'essaie d'exécuter Nautilus en tant qu'utilisateur non root. J'utilise Ubuntu 14.04. Est-ce que quelqu'un sait comment je peux résoudre ce problème?

13
quantumbutterfly

Lorsque vous exécutez un logiciel en tant qu’autre utilisateur, vous démarrez en fait le nouvel environnement minimal et isolé qui ne contient pas de variables "excessives" (parmi d’autres variables responsables de l’injection de bibliothèques ou de la définition de certains privilèges). Remplacez votre appel Sudo nautilus par le suivant: il conservera les paramètres de serveur x spécifiques à l'utilisateur à partir de la session en cours:

pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY nautilus

Il s'agit d'une solution unique de bas niveau mais elle fonctionnera sur une machine mal configurée. Si vous souhaitez "réparer définitivement votre Sudoname__", vous devez rechercher le problème dans la configuration de votre environnement et le corriger comme indiqué dans d'autres réponses.

13
cprn

J'ai également eu le même problème sur Ubuntu 14.04. Ouvrir le terminal en appuyant sur,

Ctrl + AltT

alors Sudo visudo

changer la ligne

Valeurs par défaut env_keep = "https_proxy"

à

Valeurs par défaut env_keep + = "https_proxy"

Cela a fonctionné comme un charme.

1
Om Prakash

Pour simplifier les choses, expliquait plus en détail le nouveau démarrage de mon système.

Après toutes les explications, je suis arrivé au résultat - et "env" dans le terminal a déjà dit que c’est bien pour ces sessions:

Ces deux lignes pour utiliser la variable d'environnement:

pour le comportement tmp j'ai choisi:

mkdir -pv ~/.cache/xdgr

Pour définir la variable d'environnement:

export XDG_RUNTIME_DIR = $ CHEMIN: ~/.cache/xdgr

Après la fermeture du terminal et une nouvelle ouverture pour le rappel de env, ils racontent:

XDG_RUNTIME_DIR =/run/user/1001

note: c'est correct pour l'utilisateur sous ubuntu, la racine a besoin de plus (dernière information par terme - avec les autorisations 0700)

1
Andrew

Si vous obtenez cette erreur dans Docker; c'est ce que je fais

# 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
0
Alex Punnen