X11: Клиент не авторизовался при вызове с помощью sudo

Возможный дубликат:
Можно ли запустить графическую программу на рабочем столе другого пользователя с правами root?

Я пытаюсь сделать эквивалент:

  • Перенаправление PuTTY X11 не может пересылать Google Chrome
  • Флаг -X (пересылка X11) не работает в Windows
  • Механизм хранения паролей в судо
  • XKB: Могу ли я иметь восьмиуровневый ключ и иметь Ctrl, участвуя в выборе его уровней?
  • Отдельные мониторы с отдельным входом клавиатуры и мыши?
  • Как запустить ssh -t user @ remote 'sudo nohup bash -c "команда" в фоновом режиме
  • $ sudo -u myuser DISPLAY=:1 xterm 

    Однако, это дает мне следующую ошибку

     Client is not authorized to connect to Server 

    С другой стороны, я могу сделать это просто отлично:

     $ sudo -u -i myuser $ DISPLAY=:1 xterm 

    Почему X-сервер не позволяет запускать X11-приложение напрямую как другой пользователь, и есть ли способ, который я могу явно разрешить?

  • Почему перезагрузка PATH в команде sudo?
  • Почему при запуске sudo cp отображаются два процесса
  • Как изменить внешний вид приложений, запущенных через NoMachine?
  • При каждом перезагрузке придется переустанавливать драйвер NVidia
  • sudo: невозможно разрешить хост "hostname"
  • Знаки акцентов i3wm / debian
  • 2 Solutions collect form web for “X11: Клиент не авторизовался при вызове с помощью sudo”

    Разрешение другому пользователю подключиться к вашему X-серверу означает, что он может видеть ваш экран, видеть, что вы печатаете (например, пароли), убивать ваши приложения (завершая их подключение к X-серверу) и, таким образом, выходить из системы, если он убивает ваши оконный менеджер, заманивает вас поддельными окнами … Имея это в виду, легко понять, почему по умолчанию это запрещено.

    Чтобы разрешить другому пользователю доступ к вашему X-серверу, вы можете либо предоставить ему код доступа для вашего сервера (см. Вывод xauth list "$DISPLAY" или если другой пользователь является локальным, запустите xhost +si:localuser:myuser

    Если у вас есть пароль пользователя myuser или ключ в файлах ~ / .ssh / authorized_keys myuser, и ваша система не поддерживает xhost +si:localuser , вы можете попробовать ssh -X myuser@localhost xterm

    -X позволяет пересылать X через это ssh-соединение, создавая новый виртуальный X-сервер, доступный только для этого другого пользователя, который отправляет запросы на ваш X-сервер, не открывая его для любого процесса, выполняемого любым пользователем в системе, что обычно происходит, когда xhost встречает срочную необходимость или лень или ICBFRTFM, приводящую к xhost +localhost .

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

    Есть некоторые накладные расходы при пересылке X поверх ssh, как это, но если вы не используете что-то интенсивно графическое (например, 3D-игру), вы вряд ли заметите какое-либо снижение производительности. Добавление опции -o Ciphers=arcfour в ssh может повысить производительность.

    (Кстати, я запускал 3D-программы, такие как клиенты второго уровня, через соединение ssh -X подобное этому, подключение к другой машине в моей домашней локальной сети. Это не очень удобно, но она работает достаточно хорошо для тестирования)

    Linux и Unix - лучшая ОС в мире.