Программная эмуляция временной потери подключения к Интернету

Чтобы подключиться к чужому сеансу X11, вам потребуется правильное значение переменной среды DISPLAYи содержимое файла ~/.Xauthorityдругого пользователя.

Если user1зарегистрирован локально, их значение переменной DISPLAY почти всегда равно :0.0, так как это первый локальный дисплей X11.

Как user2, вы можете сделать это:

export DISPLAY=':0.0'
sudo cp ~user1/.Xauthority $TMP/user1_Xauthority
sudo chown user2 $TMP/user1_Xauthority
export XAUTHORITY=$TMP/user1_Xauthority
xclock &

Поскольку DISPLAY=':0.0'указывает приложениям X11 подключаться к локальному дисплею через сокет UNIX, расположенный в /tmp/.X11-unix/X0, эти команды должны выполняться на том же хосте, на котором установлен физический дисплей.

Исторически сложилось так, что протокол X11 изначально разрабатывался также для того, чтобы можно было подключаться к дисплею по сети, используя TCP-порт (6000 + номер дисплея ), но это оказалось небезопасно, и на современных Linux/ Системы Unix обычно отключены по умолчанию, поэтому использование чего-то вроде export DISPLAY=remotehost:0.0для передачи вывода вашего приложения X11 на дисплей, подключенный к remotehost, не будет работать, если специально не включено (, и включение этого обычно является плохой идеей ).

1
09.12.2020, 09:24
0 ответов

Теги

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