Утилита xhost в Unix/Linux
Xhost это утилита для изменения параметров доступа к X-серверу из пакета X11-xserver-utils. Данная утилита, является частью безопасности X11. Она управляет списком удаленного сервера, который может установить соединение с локальным X сервером. Так же, данная программа, используется для добавления и удаления хостов или пользователей в список, разрешенный для подключения к X-серверу.
В случае с хостами это обеспечивает рудиментарную форму контроля конфиденциальности и безопасности. Этого достаточно для рабочей станции в одмнотользовательском (single user, not multi user) режиме.
Установка xhost в Unix/Linux
Иногда, данная утилита не присутствует в ОС и по этому, нужно ее установить.
Установка xhost в DEB ОС
Выполняем установку:
# apt-get install x11-xserver-utils x11-utils
Для поиска можно использовать:
# apt-cache search xhost x11-xserver-utils - X server utilities
Как-то так.
Установка xhost в RPM ОС
Выполняем установку:
# yum install xorg-x11-server-utils -y
Дополнительные пакеты:
# yum install -y xorg-x11-app* # yum groupinstall -y 'X Window System' # yum install -y xorg-x11-xauth xorg-x11-fonts-* xorg-x11-utils xterm # yum -y groupinstall fonts
Для поиска можно использовать:
# yum whatprovides "*/xhost"
Как-то так.
Установка xhost в MacOS X
Выполняем установку homebrew — Установка homebrew на Mac OS X и после чего, выполняем:
$ brew install Caskroom/cask/xquartz
Как-то так.
Использование xhost в Unix/Linux
Данная утилита имеет следующий синтаксис:
$ xhost [[+−] remote_host_name ...]
Опции:
- -help — Служит командой для вывода помощи по командам и опциям.
- +name — Добавляет «name» (название IP или хостнейма) в список, кто имеет право подключаться к X-серверу.
- -name — Удаляет «name» (название IP или хостнейма) со списка тех, кто имеет право подключаться к X-серверу.
- + — Контроль доступа к X-серверу отключен; разрешение всем и отовсюду.
- — — Контроль доступа к X-серверу включен; разрешение только по списку.
- <ничего> — Если аргументов не указано то выводится информации о текущем состоянии разрешения подключений.
Выведем информацию о текущем состоянии разрешений пользователей или хостов на подключение:
$ xhost
Разрешить полный доступ к X-серверу (всем и отовюсду):
# xhost +
Запретить доступ к X-серверу (разрешение только по списку):
# xhost -
Разрешить запуск графических программ от имени root на локальной машине:
# xhost local:root
Разрешить запуск графических программ от имени root на локальной машине:
# xhost local:root
Или:
# xhost +si:localuser:root
Разрешить запуск графических программ с 192.168.13.113 на локальной машине:
# xhost + 192.168.13.113
Запретить запуск графических программ с 192.168.13.113 на локальной машине:
# xhost - 192.168.13.113
Можно указать вот так:
- 192.168.13.113:0 Нулевой дисплей на компьютере Sky
- 192.168.13.113:0.1 Первый экран нулевого дисплея данного компьютера
- 192.168.13.113:3 Третий дисплей данного компьютера
Чаще всего имя дисплея — это или просто «:0.0», или «компьютер:0.0». Чтобы узнать какой дисплей используется в системе, выполните:
$ echo $DISPLAY
Чтобы установить DISPLAY переменную, выполните (bash):
$ DISPLAY=192.168.13.113:0.0; export DISPLAY
Чтобы установить DISPLAY переменную, выполните (bash):
$ setenv DISPLAY 192.168.13.113:0.0
xhost + — огромная дыра в безопасности, поскольку она дает каждому доступ к вашим ресурсам X-сервера (не только вашему дисплею, но также и вашу мышь и клавиатуру), поэтому каждый может читать или изменять то, что вы набираете/нажимаете. Плохая привычка использовать «xhost +». Даже когда вы используете «xhost + localhost», вы открываете доступ всем людям кто на localhost-е. Тогда, как быть и что исользовать? Простейшим способом является ssh-туннелирование.
$ ssh -X oracle@localhost Last login: Fri Max 2 11:33:55 2017 from localhost $ if xterm -e true; then echo success; fi success
Другой способ это — использовать cookie X:
$ xauth extract ~/my-x-cookie $DISPLAY< $ setfacl -m u:oracle:r ~/my-x-cookie $ su - oracle -c "DISPLAY=$DISPLAY bash" Password: $ if xterm -e true; then echo success; fi Xlib: connection to ":0.0" refused by server Xlib: No protocol specified xterm Xt error: Can't open display: :0.0 $ xauth merge ~lsc/my-x-cookie xauth: creating new authority file ~oracle/.Xauthority $ if xterm -e true; then echo success; fi success
Можно создать алиас:
alias oracle=' xauth extract $HOME/my-x-cookie $DISPLAY; setfacl -m u:oracle:r $HOME/my-x-cookie; su - oracle -c "export DISPLAY=$DISPLAY; xauth merge $HOME/my-x-cookie; bash"'
Вот и все, статья «Утилита xhost в Unix/Linux» подошла к завершению.