Программе X требуется две части информации для подключения к дисплею X.
Требуется адрес дисплея, который обычно отображается :0при локальном входе в систему или :10, :11и т. Д. При удаленном входе в систему (но число может меняться в зависимости от того, сколько активных X-соединений). Адрес дисплея обычно указывается в DISPLAYпеременной окружения.
Требуется пароль для отображения. Пароли X-дисплея называются волшебными куки . Магические куки не указываются напрямую: они всегда хранятся в X авторитетных файлах, которые представляют собой набор записей вида «на дисплее :42есть куки 123456». Файл полномочий X обычно указывается в XAUTHORITYпеременной среды. Если $XAUTHORITYне установлено, программы используют ~/.Xauthority.
См. Открытие окна на удаленном дисплее X (почему «Не удается открыть дисплей»)? Больше подробностей.
В вашем случае DISPLAYустановлено, но программы, очевидно, не могут найти файл cookie. Проверьте значение XAUTHORITYв вашей сессии и под su.
Если XAUTHORITYне установлен в сеансе и suустанавливает HOMEпеременные окружения в домашнем каталог суперпользователя, то вам нужно установить , XAUTHORITYчтобы /home/msz/.Xauthorityгде /home/mszваш домашний каталог.
Если suудалить XAUTHORITYиз среды, либо положить его обратно, либо настроить, suчтобы не делать этого.
Если ваш домашний каталог находится в некоторых файловых системах, таких как NFS, root может не прочитать его напрямую. В этом случае вы можете скопировать .Xauthorityфайл в другое место в файловой системе, отличной от NFS:
XAUTHORITY_COPY=$(umask 077; mktemp)
cat "${XAUTHORITY:-~/.Xauthority}" "$XAUTHORITY_COPY"
XAUTHORITY="$XAUTHORITY_COPY" su
rm "$XAUTHORITY_COPY"
unset XAUTHORITY_COPY
export $(dbus-launch)или использовать,xhost [+]чтобы иметь возможность запускать программы с использованием X и вашей учетной записи суперпользователя.