Ich versuche, nautilus als root auszuführen, aber wenn ich "sudo nautilus" vom Terminal aus starte, erhalte ich folgende Fehlermeldung:
Fehler: XDG_RUNTIME_DIR nicht in der Umgebung festgelegt.
(nautilus: 9341): Gtk-WARNING **: Display kann nicht geöffnet werden:
Das Problem tritt nicht auf, wenn ich versuche, nautilus als Nicht-Root-Benutzer auszuführen. Ich benutze Ubuntu 14.04. Weiß jemand, wie ich das beheben kann?
-X
Option beim Starten meiner SSH-Sitzung zu verwenden.Antworten:
Wenn Sie Software als ein anderer Benutzer ausführen, starten Sie in der Tat die neue minimale und isolierte Umgebung, in der einige "übermäßige" Variablen nicht vorkommen (unter anderem Variablen, die für das Einfügen von Bibliotheken oder das Festlegen bestimmter Berechtigungen verantwortlich sind). Ersetzen Sie Ihren
sudo nautilus
Anruf durch Folgendes: Es werden benutzerspezifische x Servereinstellungen aus der aktuellen Sitzung übernommen:Dies ist eine einmalige Low-Level-Lösung, die jedoch auf einem fehlerhaft konfigurierten Computer funktioniert. Wenn Sie Ihr
sudo
Problem dauerhaft beheben möchten, müssen Sie das Problem mit Ihrer Umgebungskonfiguration finden und wie in den anderen Antworten beschrieben beheben.quelle
sudo nautilus
sollte beim Ausführen vom Terminal aus wie gewohnt funktionieren. Wenn ich das vom Terminal aus bei einer Neuinstallation mache, öffnet es sich normalerweise wie gewohnt mit sudo.pkexec
mitsudo
Manpages und google für den entsprechenden Streit.Cannot open display
bedeutet, dass in der Konfigurationsdatei etwas fehlt, weil es geändert und aus der Umgebung entfernt wurde, wenn dies nicht der Fall sein sollte. Wie kann es dann dauerhaft in die Umgebung zurückgesetzt werden, damit ich mich nicht darum kümmern muss?env
bevor es ausgeführt wird,nautilus
und ersteres sorgt dafür, dass die Variablen für mich festgelegt werden. Sie können überprüfenman env
.env COMMAND ARG ...
Ich hatte auch das gleiche Problem auf Ubuntu 14.04. Terminal öffnen durch Drücken von,
Ctrl+ Alt+T
dann
sudo visudo
Ändern Sie die Zeile
Defaults env_keep = "https_proxy"
zu
Standard env_keep + = "https_proxy"
Es wirkte wie ein Zauber.
quelle
$XAUTHORITY
widerspricht dem Zweck.Um es einfacher zu machen - mehr erklärt das neue Booten meines Systems.
Nach allen Erklärungen hier bin ich zum Ergebnis gekommen - und "env" im Terminal hat schon gesagt, dass das für diese Session richtig ist:
Diese zwei Zeilen zur Verwendung der Umgebungsvariablen:
für das tmp verhalten habe ich gewählt:
mkdir -pv ~ / .cache / xdgr
Um die Umgebungsvariable zu setzen:
export XDG_RUNTIME_DIR = $ PATH: ~ / .cache / xdgr
Nach dem Schließen des Terminals und einem erneuten Öffnen für den Rückruf von env erfahren sie:
XDG_RUNTIME_DIR = / run / user / 1001
hinweis: es ist ok für den benutzer unter ubuntu, root braucht mehr (letzte info per term - mit 0700 berechtigungen)
quelle
Wenn dieser Fehler in Docker auftritt; das ist was ich mache
quelle