«Ошибка: XDG_RUNTIME_DIR не установлен в среде.» При попытке запустить nautilus от имени пользователя root

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

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

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

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

17
задан 28 April 2014 в 05:02

4 ответа

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

pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY nautilus

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

17
ответ дан 28 April 2014 в 05:02

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

Ctrl + Alt + T

затем sudo visudo

изменить строку

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

на

Значения по умолчанию env_keep + = "https_proxy"

Это сработало отлично.

1
ответ дан 28 April 2014 в 05:02
  • 1
    Спасибо за Ваше предложение я попробовал ctrl + высокий звук + f2, и я смог войти в систему, но нет никакого графического интерфейса пользователя. Это просто регистрирует меня в командную строку. I' d ценят дальнейшую справку – Lanre 31 October 2015 в 03:23

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

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

Эти две строки для использования переменной среды:

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

mkdir -pv ~ / .cache / xdgr

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

экспорт XDG_RUNTIME_DIR = $ PATH: ~ / .cache / xdgr

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

XDG_RUNTIME_DIR = / run / user / 1001

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

1
ответ дан 7 October 2019 в 22:34

Если вы получаете эту ошибку в 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
0
ответ дан 7 October 2019 в 22:34

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

Похожие вопросы: