Я пытаюсь запустить nautilus от имени пользователя root, но когда я запускаю «sudo nautilus» из терминала, я получаю следующую ошибку:
ошибка: XDG_RUNTIME_DIR не установлен в среде.
(nautilus: 9341): Gtk-WARNING **: невозможно открыть дисплей:
Проблема не возникает, когда я пытаюсь запустить nautilus без полномочий root. Я использую Ubuntu 14.04. Кто-нибудь знает, как я могу это исправить?
-X
опцию при запуске сеанса SSH.Ответы:
Когда вы запускаете программное обеспечение от имени другого пользователя, вы фактически запускаете новую минимальную и изолированную среду, которая не содержит некоторых «чрезмерных» переменных (среди прочих переменных, отвечающих за внедрение библиотек или установку определенных привилегий). Замените ваш
sudo nautilus
вызов следующим - он будет выполнять пользовательские настройки сервера x из текущего сеанса:Это одноразовое решение низкого уровня, но оно будет работать на неправильно настроенной машине. Если вы хотите навсегда «починить» свою
sudo
проблему, вам нужно найти проблему с конфигурацией вашей среды и исправить ее, как описано в других ответах.источник
sudo nautilus
должен работать как обычно с терминала при запуске. Обычно, когда я делаю это из терминала при новой установке, он открывается как обычно с помощью sudo.pkexec
иsudo
справочные страницы, а также Google для соответствующего спора.Cannot open display
означает, что чего-то не хватает в его файле конфигурации, потому что что-то изменило его и удалило из среды, когда это не должно происходить. Так как же тогда его можно вернуть обратно в окружающую среду, чтобы мне не приходилось с этим сталкиваться?env
перед запуском,nautilus
а первый позаботился о настройке переменных для меня. Вы можете проверитьman env
.env COMMAND ARG ...
У меня тоже была такая же проблема на Ubuntu 14.04. Откройте терминал, нажав,
Ctrl+ Alt+T
тогда
sudo visudo
изменить линию
По умолчанию env_keep = "https_proxy"
в
По умолчанию env_keep + = "https_proxy"
Это работает как шарм.
источник
$XAUTHORITY
не поддающейся цели.Чтобы было проще - подробнее объясняется новая загрузка моей системы.
После всех объяснений здесь я пришел к результату - и «env» в терминале уже сказал, что подходит для этой сессии:
Эти две строки используют переменную среды:
для поведения tmp я выбрал:
mkdir -pv ~ / .cache / xdgr
Для установки переменной среды:
export XDG_RUNTIME_DIR = $ PATH: ~ / .cache / xdgr
После закрытия терминала и нового открытия для отзыва env они говорят:
XDG_RUNTIME_DIR = / работа / пользователь / 1001
примечание: это нормально для пользователя под Ubuntu, пользователю root нужно больше (последняя информация по сроку - с разрешениями 0700)
источник
Если вы получаете эту ошибку в Docker; это то чем я занимаюсь
источник