Я пытаюсь запустить nautilus от имени root, но когда я запускаю "sudo nautilus" из терминала, я получаю следующую ошибку:
ошибка: XDG_RUNTIME_DIR не задан в среде.
(nautilus:9341): Gtk-ПРЕДУПРЕЖДЕНИЕ **: не удается открыть дисплей:
Проблема не возникает, когда я пытаюсь запустить nautilus как некорневой. Я использую ubuntu 14.04. Кто-нибудь знает, как я могу это исправить?
Когда вы запускаете программное обеспечение от имени другого пользователя, вы фактически запускаете новую минимально изолированную среду, которая не содержит некоторых "избыточных" переменных (среди прочих переменных, ответственных за внедрение библиотек или настройку привилегий). Замените свой 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
У меня также была такая же проблема в Ubuntu 14.04.Откройте терминал, нажав,
Ctrl + Alt+ T
затем sudo visudo
измените строку
По умолчанию env_keep="https_proxy"
к
По умолчанию env_keep += "https_proxy"
Это сработало как заклинание.
Чтобы сделать это проще - подробнее объяснил новую загрузку моей системы.
После всех объяснений здесь я пришел к результату - и "env" в терминале уже сказал, что подходит для этой сессии:
Эти две строки для использования переменной среды:
для поведения tmp я выбрал:
mkdir -pv ~/.cache/xdgr
Для установки переменной среды:
экспорт XDG_RUNTIME_DIR=$PATH:~/.cache/xdgr
После закрытия терминала и нового открытия для отзыва env они сообщают:
XDG_RUNTIME_DIR=/выполнить/пользователь/1001
примечание: это нормально для пользователя под ubuntu, root нужно больше (последняя информация по сроку - с разрешениями 0700)
Просто для справки, я оказался здесь после того, как у меня возникла та же ошибка при попытке выполнить X11Forwarding через ssh. Решение: Я забыл использовать опцию -X
при запуске моего сеанса ssh.