7

Я ssh'd в удаленный компьютер, и xforwarding работает нормально ... но как только я "sudo su -" или "sudo su user2", он больше не Xforwards ничего, что дает мне ошибку:

X11 connection rejected because of wrong authentication.
xterm Xt error: Can't open display: localhost:10.0

Есть идеи?

Спасибо

5 ответов5

6
  1. Включите пересылку X-11 в вашем клиенте
  2. Войдите как ваш обычный пользователь
  3. echo $DISPLAY чтобы получить связанный дисплей
  4. xauth list , найдите номер дисплея, который соответствует тому, что вы нашли в # 3, и скопируйте его
  5. Sudo для root xauth add <paste in what you copied from #4>
  6. Теперь вы можете выполнять команды от имени пользователя root и сможете установить соединение переадресации X11.
4

Прежде чем сделать sudo , сделайте это:

$ xauth extract /tmp/xauthstuff $DISPLAY

После того, как вы sudo , сделайте это:

# xauth merge /tmp/xauthstuff

Это работает для вас?

PS не забудьте rm /tmp/xauthstuff впоследствии

3

У меня нет доступа к учетной записи root, чтобы выполнить все вышеперечисленное, поэтому я воспользуюсь этим обходным путем.

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

ssh -Y <you>@<your_server>

Я обычно просто запускаю XTerm, чтобы убедиться, что у меня есть подключение. Если все хорошо, скопируйте.Файл XAuthority, который находится в домашнем каталоге <you> и помещен в открытый каталог.

cp ~/.Xauthority /tmp/tempXAuth

Убедитесь, что вы изменили этот файл в общедоступном каталоге chmod 777, чтобы учетная запись sudo могла использовать его на следующем шаге.

chmod 777 /tmp/tempXAuth

Теперь sudo для пользователя, вам нужно сделать работу как

sudo su - <other_user>

как только вы <other_user> , сделайте резервную копию существующего.Xauthority, а затем скопировать "хороший" один.

cp ~/.Xauthority ~/.Xauthority.bak
cp /tmp/tempXAuth ~/.Xauthority

у вас должна быть возможность запускать любые программы X и проверять их подлинность в текущем сеансе XServer.

2

Прежде чем вы будете sudo su user2 проверьте разрешения на вашем $ XAUTHORITY:
echo $XAUTHORITY
ls -l $XAUTHORITY


Если после смены пользователя вы по-прежнему ссылаетесь на тот же $ XAUTHORITY, но потеряли права доступа к файлу, это нарушит пересылку X11.
В моем случае быстрым решением было настроить права доступа к файлу $ XAUTHORITY перед переключением пользователя.

Имейте в виду, что если пользователи, которым вы не доверяете, получают доступ к вашему файлу $ XAUTHORITY, это может быть проблемой безопасности.

1

Как пользователь, который вы обычно входите в систему как тип:

cd

sudo cp .Xauthority /root/

Затем вы можете переключиться на root с помощью:

sudo su

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .