Ошибка в команде "cat file | xclip"

5143

Команда работает с пользователем «heo». Но я получаю сообщение об ошибке "$ su another_user; cat file | xclip":

No protocol specified Error: Can't open display: :0.0 

Суперпользователь имеет черный CLI, без сообщения об ошибке или текста, с помощью команды xauth.

  1. Как я могу сохранить один и тот же дисплей со многими пользователями?

  2. Как я могу изменить отображение на: 0 или: 1 для всех пользователей?

  3. Почему команда xauth черная с одним суперпользователем?

0
А теперь я обновил ответ. derobert 15 лет назад 0

2 ответа на вопрос

5
derobert

xclip не может общаться с вашим X-сервером. Убедитесь, что $ DISPLAY установлен правильно. Другие X-клиенты работают с тем же параметром $ DISPLAY?

Это:

$ echo 'hello' | xclip 

у меня просто отлично работает

редактировать

Вы получаете ошибку после suобращения к другому пользователю, потому что у этого пользователя нет соответствующих разрешений для подключения к вашему X-серверу. X использует протокол проверки прав доступа, известный как MIT magic cookie, который работает путем создания случайной строки для использования в качестве пароля. Этот пароль хранится в файле $XAUTHORITY, или ~/.Xauthorityесли переменная окружения не установлена. Это управляется xauthинструментом. Например,

$ xauth list … Feynman/unix:0 MIT-MAGIC-COOKIE-1 <<redacted>> … 

Я не уверен, для чего вы делаете su, но:

  • если это так, вы можете прочитать файл, а затем просто запустить cat от имени другого пользователя и направить вывод su в xclip. Таким образом, xclip работает как ваш пользователь и работает.
  • если вы пытаетесь установить буфер обмена для сеанса X другого пользователя, то вам нужно будет установить $DISPLAYотображение $XAUTHORITYэтого пользователя и файл полномочий X этого пользователя. Просмотрите ConsoleKit (если вы его используете) и /var/lib/gdm(если вы используете gdm), чтобы найти указанные вещи.

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

PS: $DISPLAYссылка на какой X-сервер они вошли в систему. Если вы не настроили несколько работающих серверов (чтобы одновременно могли войти несколько пользователей), это будет одинаковым для всех пользователей.

Когда вы открываете терминал и запускаете `xauth list`, какие сообщения об ошибках вы получаете? derobert 15 лет назад 0
0
ILMostro_7

Развернув другой ответ, пользователь «sudo» не может использовать сеанс или отображение X непривилегированного пользователя. Обходной путь может быть использовать su -c.

$ sudo su # echo 'hello' | su -c 'xclip -selection clipboard' nonprivusername

Похожие вопросы