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

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

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

$ sudo -u myuser DISPLAY=:1 xterm 

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

 Client is not authorized to connect to Server 

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

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

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

  • Проблема с libx11.so.6: undefined symbol: xcb_wait_for_reply64
  • Как сопоставить раскладку клавиатуры консоли с раскладкой клавиатуры X в Linux
  • Как использовать параметр setxkbmap -geometry?
  • использование функции скрипта вместо ввода с клавиатуры
  • «Протокол не указан» при запуске Xorg через lightdm, но работает при запуске напрямую
  • `xinit / usr / bin / firefox` vs` xinit firefox`
  • Map Caps Lock для управления в Linux Mint
  • Когда моя машина последний раз коснулась?
  • 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 - лучшая ОС в мире.