Припустимо, ви хочете, щоб жорстокі сили набули зв’язок із X ...
Припустимо, ви вже виконуєте свої команди на сервері (де працює X), інакше спочатку з цим працюйте, а потім використовуйте 'ssh -X user @ server) від клієнта;).
Можливо, існує кілька способів запуску команд xauth, наприклад, ви можете використовувати "sudo", але це може втратити або змінити змінні середовища. Необхідно зберегти такі змінні середовища: DISPLAY та XAUTHORITY. Щоб перевірити, чи це так, ви можете запустити "echo $ XAUTHORITY" таким же чином, як і команди, але переконайтеся, що ви не розширюєте змінні середовища перед тим, як виконати ці команди. Наприклад, спробуйте: sudo bash -c 'echo "$ XAUTHORITY"', щоб побачити, що насправді XAUTHORITY є після запуску свого судо (якщо воно зникне, можливо, вам доведеться щось додати до файлу sudoers, дивіться в іншому місці).
Зрештою, запустіть таку команду як користувач, до якого ви хочете отримати доступ, на сервері:
xauth info
Це покаже 'файл файла', який буде використовуватися (/root/.Xauthority за замовчуванням, для root, або щось на кшталт /home/theuser/.Xauthority). Якщо він показує правильний .Xauthority файл, то вам не потрібно турбуватися про змінну середовища XAUTHORITY насправді (насправді я не знаю, коли це не стане, за винятком випадків, якщо ви хочете маніпулювати нестандартним місцем цього файлу ).
Видаліть цей файл (якщо він навіть існує):
rm /root/.Xauthority
Замініть /root/.Xauthority
правильний файл XAUTHORITY для вашої справи.
Відтворіть його, але порожнє (це потрібно для багатьох команд):
touch /root/.Xauthority
У цей момент ви отримаєте помилку, вказану в протоколі , навіть якщо раніше ви невірні MIT-MAGIC-COOKIE-1 . Знайдіть файл авторитету, який використовує X-сервер на даний момент:
ps aux | grep Xorg
Це повинно показувати щось на кшталт:
root 1153 0.0 1.0 149560 44464 tty7 Ss+ dec02 0:00 /usr/lib/xorg/Xorg -nolisten tcp -auth /var/run/sddm/{ef18c483-7891-4e82-80ef-2c8f9bd79711} -background none -noreset -displayfd 17 vt7
Назва файлу після -auth
- це те, що вам потрібно в наступній команді. Запустити це як корінь:
sudo xauth -f '/var/run/sddm/{ef18c483-7891-4e82-80ef-2c8f9bd79711}' list
Тут перелічено 32-значний шістнадцятковий ключ. Наприклад, вихід може бути:
hostname/unix:0 MIT-MAGIC-COOKIE-1 c0eaf749aa252101a0f57d5087089db7
Використовуйте це для створення файлу .Xauthority (як користувача, якому потрібно знову ввійти):
xauth add $DISPLAY MIT-MAGIC-COOKIE-1 c0eaf749aa252101a0f57d5087089db7
замініть 'c0eaf749aa252101a0f57d5087089db7' тим, що було повернуто командою list для вас. Тепер ваш .Xauthority повинен бути розміром 51 байт, і ви можете підключитися до X-сервера (знову).