- Вопрос или проблема
- Ответ или решение
- Решение проблемы "Authorization required, but no authorization protocol specified" в сессии XRDP
- Причины проблемы
- Шаги по устранению
- 1. Настройка прав доступа с помощью xhost
- 2. Переменная окружения DISPLAY
- 3. Перезапуск дисплей-менеджера
- Дополнительные рекомендации
- Заключение
Вопрос или проблема
Существовал похожий вопрос, но он касался Cygwin. Мой вопрос касается RDP. Я установил XRDP на компьютере с Linux и использовал удаленное соединение рабочего стола Windows для подключения к нему. Внутри окна RDP я открыл терминал и ввел sudo nautilus
, чтобы запустить файловый менеджер от имени root. Но я получил следующее.
Требуется авторизация, но протокол авторизации не указан
(org.gnome.Nautilus:75012): Gtk-WARNING **: 08:40:24.020: не удается открыть
дисплей: :10.0
Принятый ответ на вышеупомянутый вопрос заключался в следующем: $ DISPLAY=:0.0 xhost <remote_hostname_or_ip>
, но когда я попробовал DISPLAY=:0.0 xhost localhost
, я получил
xhost: не удается открыть дисплей “:0.0”
Если я попытаюсь DISPLAY=:10.0 xhost localhost
, я получаю
Требуется авторизация, но протокол авторизации не указан
xhost: не удается открыть дисплей “:10.0”
Есть ли способ решить эту проблему XRDP? Проблема с появлением запроса пароля для sudo была самой большой головной болью, и, похоже, никто не знает решения.
У меня была такая же проблема (по крайней мере, я так думаю), и я верю, что найденное мною решение может помочь тем, кто ищет решение. Проблема была связана с сервером отображения Wayland, под которым запуск графического приложения с правами root завершается неудачей. Простой способ решения — добавить root
в xhost
. Выполните следующую команду (от вашего имени, т.е. без sudo
).
xhost si:localuser:root
Некоторые справедливо утверждают, что этот подход немного хакерский для модели безопасности Wayland, и они предлагают решение с временным изменением (смотрите #594183).
Я использую Fedora и занимался работой с openGL, когда столкнулся с этой ошибкой. Использование ответа Арсения не решило мою проблему.
Мое решение заключалось в перезапуске моего дисплейного менеджера:
sudo systemctl restart display-manager
Ответ или решение
Решение проблемы "Authorization required, but no authorization protocol specified" в сессии XRDP
При использовании XRDP для подключения к Linux-системе с помощью Remote Desktop Connection из Windows, часто возникают проблемы с авторизацией при попытке запустить графическое приложение с привилегиями root, например, при использовании команды sudo nautilus
. Одним из типичных сообщений об ошибках является "Authorization required, but no authorization protocol specified".
Причины проблемы
-
Проблемы с дисплей-сервером:
- В современных дистрибутивах Linux может использоваться Wayland вместо X11, что влияет на выполнение GUI-приложений с правами root.
- На XRDP сессиях дисплей может быть недоступен или неправильно настроен.
-
Проблемы с переменной DISPLAY:
- Разные дисплей-сессии могут иметь разные номера
DISPLAY
, что требует точной настройки для передачи соответствующих прав.
- Разные дисплей-сессии могут иметь разные номера
Шаги по устранению
1. Настройка прав доступа с помощью xhost
Для устранения проблемы с доступом лучше всего использовать утилиту xhost
, чтобы разрешить доступ для пользователя root:
- Подключитесь к вашей Linux системе через XRDP.
-
Откройте терминал и выполните следующую команду:
xhost si:localuser:root
Эта команда добавляет пользователя root в список разрешенных для доступа к текущему дисплею. Обратите внимание, что такая настройка может быть не оптимальна с точки зрения безопасности, особенно в условиях Wayland. Имейте это в виду перед применением.
2. Переменная окружения DISPLAY
Убедитесь, что переменная DISPLAY
настроена правильно. Для XRDP сессий она может быть установлена в значение :10
или другое, в зависимости от настройки вашей системы. Для этого попробуйте выполнить:
echo $DISPLAY
Если значение отличается, попробуйте явно установить его перед запуском nautilus
:
export DISPLAY=:10
sudo nautilus
3. Перезапуск дисплей-менеджера
Если проблема не решается, одним из вариантов является перезапуск дочернего дисплей-менеджера:
sudo systemctl restart display-manager
Этот шаг может помочь сбросить настройки и восстановить доступ к дисплею.
Дополнительные рекомендации
-
Проверка системных журналов: Если все перечисленные решения не дали результата, рекомендуется проверить системные журналы на предмет ошибок, связанных с XRDP, Wayland или X11.
-
Смена GUI-приложений: Если
nautilus
продолжает вызывать проблемы, рассмотрите возможность использования других файловых менеджеров или командной строки для выполнения задач с правами root.
Заключение
Проблема с ошибкой "Authorization required, but no authorization protocol specified" в сессии XRDP может быть решена несколькими способами, начиная от конфигурации xhost
до перезапуска дисплей-менеджера. Понимание контекста использования может помочь в более точной настройке и избежать лишних проблем в будущем.