MIT-MAGIC-COOKIE-1: Не позволяет мне запускать команды GUI как root. Что я могу сделать, чтобы это исправить?

MIT-MAGIC-COOKIE-1: Не позволяет мне запускать команды GUI как root. Что я могу сделать, чтобы это исправить?

Я использую дистрибутив PureOS GNU/Linux (на основе Debian/Ubuntu). Я установил XDM в качестве менеджера дисплеев. После того, как я вошел в сеанс X как root, у меня возникла ошибка. Я больше не могу запускать команды GUI как root в сеансе X без прав root. Я получил сообщения об ошибках, в которых говорилось, что мой MIT-MAGIC-COOKIE-1 неверен. Похоже, это связано с файлом .Xauthority или переменной $XAUTHORITY.

Я видел на нескольких форумах в Интернете несколько паллиативов для этой проблемы. Запустить xhostкак не-root с аргументами в различных формах; но это отключает аутентификацию системы, открывая уязвимости безопасности; кроме того, это нужно делать в каждом сеансе X. Запустить sudo -sE; но это сохраняет не-root среды. Запустить su-to-root -X -c [command] %U; это сработало. Запустить ssh -YXC [user]@[machine-name] [command]; это сработало. Но это обходные пути, которые не решают исходную проблему.

DISPLAY=:0 /usr/bin/xhost +local:не сработало. Ни то , ни другое su - root -c [command]. Ни то, ни другое touch ~/.Xauthority; xauth generate $DISPLAY . trusted; xauth add ${HOST}$DISPLAY . $(xxd -l 16 -p /dev/urandom); xauth merge .Xauthority; мне выдало ошибку unable to rename authority file /var/lib/xdm/authdir/authfiles/, use /var/lib/xdm/authdir/authfiles/-n.

После некоторых исследований (в которых мне помог пакет x11vnc), я только что обнаружил, что файл, содержащий правильный волшебный cookie, — это /var/lib/xdm/authdir/authfiles/A\:0-[whatever]. Как ни странно, копирование его в новый файл .Xauthority просто не сработало в первый раз, но сработало во второй. Поэтому я создал , export XAUTHORITY="/var/lib/xdm/authdir/authfiles/A:0-[whatever]"и это, казалось, решило проблему. Однако, когда я создал export XAUTHORITY="/var/lib/xdm/authdir/authfiles/*", он не сработал; но самое странное, что echo $XAUTHORITYпоказывает полный путь к файлу.

Кроме того, я удалил и файл .Xauthority, и переменную $XAUTHORITY из моего не-root пользователя и перезагрузил свое устройство, чтобы посмотреть, будут ли какие-либо побочные эффекты в этой учетной записи. Как ни странно, до перезагрузки не-root пользователь может запускать команды GUI даже без них. После перезагрузки переменная $XAUTHORITY из моего не-root пользователя указывала на /tmp/.Xauth[whatever].

Кроме того, я заметил, что при каждой перезагрузке компьютера пользователь, не являющийся пользователем root, получает новый волшебный файл cookie, который соответствует файлу A:0-[whatever] (шестнадцатеричный дамп показал, что они содержат совпадающие шестнадцатеричные строки).

Это поднимает ряд вопросов: почему пользователь root перестал получать от системы случайные волшебные куки? Какой процесс генерирует и доставляет эти волшебные куки? Есть ли команда для root, чтобы сгенерировать правильные куки?

Связанный контент