"ошибка: XDG_RUNTIME_DIR не установлен в среде." при попытке запустить наутилус как root

Я пытаюсь запустить nautilus от имени пользователя root, но когда я запускаю "sudo nautilus" из терминала, я получаю следующую ошибку:

ошибка: XDG_RUNTIME_DIR не установлен в среде.

(nautilus: 9341): Gtk-WARNING **: не может открыть дисплей:

Проблема не возникает, когда я пытаюсь запустить nautilus без полномочий root. Я использую Ubuntu 14.04. Кто-нибудь знает, как я могу это исправить?

4 ответа

Решение

Когда вы запускаете программное обеспечение как другой пользователь, вы фактически запускаете новую минимальную и изолированную среду, которая не содержит некоторых "чрезмерных" переменных (среди прочих переменных, отвечающих за внедрение библиотек или установку определенных привилегий). Замените свой sudo nautilus Вызовите со следующим - он будет выполнять пользовательские настройки сервера x из текущего сеанса:

pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY nautilus

Это одноразовое решение низкого уровня, но оно будет работать на неправильно настроенной машине. Если вы хотите навсегда "исправить ваши sudo"вам нужно найти проблему с конфигурацией вашей среды и исправить ее, как описано в других ответах.

Если вы получаете эту ошибку в 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

Чтобы было проще - подробнее объясняется новая загрузка моей системы.

После всех объяснений здесь я пришел к результату - и "env" в терминале уже сказал, что подходит для этой сессии:

Эти две строки используют переменную среды:

для поведения tmp я выбрал:

mkdir -pv ~ /.cache / xdgr

Для установки переменной среды:

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

После закрытия терминала и нового открытия для отзыва env они говорят:

XDG_RUNTIME_DIR = / работа / пользователь /1001

примечание: это нормально для пользователя под Ubuntu, пользователю root нужно больше (последняя информация по сроку - с разрешениями 0700)

У меня тоже была такая же проблема на Ubuntu 14.04. Откройте терминал, нажав,

Ctrl + Alt+ T

затем sudo visudo

изменить линию

По умолчанию env_keep="https_proxy"

в

По умолчанию env_keep += "https_proxy"

Это работает как шарм.

Другие вопросы по тегам