xhost — программа управления доступом к серверу X
СИНТАКСИС
xhost [[+-]name ...]
ОПИСАНИЕ
Программа xhost используется для добавления и удаления имен хостов или имен пользователей из списка, которым разрешено устанавливать соединения с сервером X. В случае хостов это обеспечивает элементарную форму контроля конфиденциальности и безопасности. Это достаточно для рабочей станции (однопользовательской среды), хотя и ограничивает наиболее серьезные злоупотребления. В средах, требующих более совершенных мер, следует использовать механизм, основанный на пользователях, или использовать хуки в протоколе для передачи других данных аутентификации на сервер.
ОПЦИИ
Xhost принимает следующие параметры командной строки, описанные ниже. В целях безопасности параметры, влияющие на контроль доступа, могут выполняться только с «управляющего хоста». Для рабочих станций это та же машина, что и сервер. Для X-терминалов — хост входа в систему.
-help Выводит сообщение об использовании.
[+]name Указанное имя (знак «+» является необязательным) добавляется в список, которому разрешено подключаться к серверу X. Имя может быть именем хоста или полным именем (см. раздел ИМЕНА для получения дополнительной информации).
-name Указанное имя удаляется из списка, которому разрешено подключаться к серверу. Имя может быть именем хоста или полным именем (см. раздел ИМЕНА для получения дополнительной информации). Существующие подключения не прерываются, но новые попытки подключения будут отклоняться. Обратите внимание, что текущую машину можно удалить; однако дальнейшие подключения (включая попытки добавить ее обратно) не будут разрешены. Единственный способ разрешить локальные подключения снова — перезапустить сервер (тем самым прервав все подключения).
+ Доступ предоставляется всем, даже если они не находятся в списке (т. е. контроль доступа отключен).
- Доступ ограничен только теми, кто находится в списке (т. е. контроль доступа включен).
nothing Если не указаны аргументы командной строки, выводится сообщение, указывающее, включен ли в настоящее время контроль доступа, за которым следует список тех, кому разрешено подключаться. Это единственный параметр, который можно использовать с машин, отличных от управляющего хоста.
ИМЕНА
Полное имя имеет синтаксис «family:name», где семейства следующие:
inet Хост в сети Интернет (IPv4)
inet6 Хост в сети Интернет (IPv6)
dnet Хост DECnet
nis Безопасное сетевое имя RPC
krb Основной объект Kerberos V5
local Содержит только одно имя, пустую строку
si Интерпретируемый сервером
Семейство не учитывает регистр. Формат имени варьируется в зависимости от семейства.
При использовании Secure RPC можно указать сетевое имя, независимое от сети (например, «nis:unix.uid@domainname»), или локального пользователя, просто указав имя пользователя и замыкающий символ «@» (например, «nis:pat@»).
Для обратной совместимости с версией xhost, предшествующей R6, имена, содержащие символ «@», считаются относящимися к семейству NIS. В противном случае они считаются интернет-адресами. Если программа скомпилирована с поддержкой IPv6, все адреса IPv4 и IPv6, возвращаемые функцией getaddrinfo(3), добавляются в список контроля доступа в соответствующих семействах inet или inet6.
Локальное семейство определяет все локальные соединения сразу. Однако можно использовать серверно-интерпретируемый адрес вида «si:localuser:username», чтобы указать конкретного локального пользователя. (Подробности см. в руководстве Xsecurity(7).)
Серверно-интерпретируемые адреса состоят из тега типа (с учетом регистра) и строки, представляющей данное значение, разделенных двоеточием. Например, «si:hostname:almas» — это серверно-интерпретируемый адрес типа hostname со значением almas. Дополнительную информацию о доступных формах серверно-интерпретируемых адресов см. в руководстве Xsecurity(7).
Начальный список контроля доступа для номера дисплея n можно задать с помощью файла /etc/Xn.hosts, где n — номер дисплея сервера. Подробности см. в руководстве Xserver(1).
ДИАГНОСТИКА
Для каждого имени, добавленного в список контроля доступа, выводится строка вида «имя добавляется в список контроля доступа». Для каждого имени, удаленного из списка контроля доступа, выводится строка вида «имя удаляется из списка контроля доступа».
СМОТРИТЕ ТАКЖЕ
X(7), Xsecurity(7), Xserver(1), xdm(1), xauth(1), getaddrinfo(3)
ОКРУЖАЮЩАЯ СРЕДА
DISPLAY, чтобы получить имя хоста и дисплей по умолчанию.
ОШИБКИ
Нельзя указать дисплей в командной строке, потому что -display — это допустимый аргумент командной строки (который указывает, что вы хотите удалить машину с именем «display» из списка контроля доступа).
X-сервер хранит сетевые адреса, а не имена хостов, если вы не используете серверно-интерпретируемый адрес типа hostname. Если каким-то образом сетевой адрес хоста изменяется, пока сервер все еще работает, и вы используете сетевой адрес в качестве основы для аутентификации, необходимо использовать xhost для добавления нового адреса и/или удаления старого адреса.
АВТОРЫ
Боб Шайфлер, Лаборатория компьютерных наук MIT, Джим Геттис, Проект «Афина» MIT (DEC).