server access control program for X
命令语法格式
xhost [[+-]name …]
命令描述
命令xhost用于向”允许与X服务器建立连接的列表“中添加和删除主机名或用户名。在主机的情况下,这提供了基本形式的隐私控制和安全性。它仅适用于工作站(单用户)环境,尽管它确实限制了最严重的滥用。 需要更复杂措施的环境应该实现基于用户的机制或使用协议中的钩子将其他身份验证数据传递给服务器。
命令支持的选项及含义
xhost接受以下命令行选项。 为安全起见,影响访问控制的选项只能从“控制主机”运行。 对于工作站,这与服务器是同一台机器。 对于X终端,它是登录主机。
如果没有给出命令行参数,则会打印一条消息,指示当前是否启用了访问控制,然后是允许连接的列表。 这是可以从控制主机以外的机器使用的唯一选项。
-help
显示一个使用信息。
[+]name
给定的name(加号是可选的)被添加到允许连接到X服务器的列表中。参数name可以是主机名或完整名称(有关详细信息,请参阅「NAMES」部分)。
-name
给定name将从允许连接到服务器的列表中删除。参数name可以是主机名或完整名称(有关详细信息,请参阅「NAMES」部分)。
现有连接不会中断,但新连接尝试将被拒绝。 请注意,允许删除当前机器;但是,将不允许进一步的连接(包括尝试将其添加回来)。重置服务器(从而断开所有连接)是再次允许本地连接的唯一方法。
+
即使不在列表中(即访问控制已关闭),也会向所有人授予访问权限。
–
访问仅限于列表中的访问(即,打开访问控制)。
NAMES
完整name语法为family:name,其中的family如下:
inet6 Internet host (IPv6)
dnet DECnet host
nis Secure RPC network name
krb Kerberos V5 principal
local contains only one name, the empty string
si Server Interpreted
该family不区分大小写。而name的格式因family而异。
使用Secure RPC时,可以指定网络独立网络名称(例如,“nis:unix.uid@domainname”),或者只使用用户名和尾随符号指定本地用户(例如,“nis:pat@”)。
为了与前R6 xhost向后兼容,假定包含at符号(@)的name位于family为nis中。否则,它们被假定为网络地址。如果编译为支持IPv6,则getaddrinfo(3)返回的所有IPv4和IPv6地址都将添加到相应inet或inet6系列的访问列表中。
当family为local时,一次指定所有本地连接。但是,服务器解释地址“si:localuser:username”可用于指定单个本地用户。 (有关详细信息,请参阅Xsecurity(7)手册页)
服务器解释的地址由区分大小写的类型标记和表示给定值的字符串组成,用冒号分隔。例如,“si:hostname:almas”是主机名类型的服务器解释地址,其值为almas。有关服务器解释地址的可用形式的更多信息,请参阅Xsecurity(7)手册页。
显示号n的初始访问控制列表可以由文件/etc/Xn.hosts设置,其中n是服务器的显示号。有关详细信息,请参阅Xserver(1)。
注意事项
您无法在命令行上指定显示,因为-display是一个有效的命令行参数(表示您要从访问列表中删除名为“display”的计算机)。
除非使用服务器解释的主机名类型地址,否则X服务器将存储网络地址,而不是主机名。 如果以某种方式在服务器仍在运行时更改主机的网络地址,并且您使用的是基于网络地址的身份验证形式,则必须使用xhost添加新地址和/或删除旧地址。
问题诊断
对于添加到访问控制列表中的每个name,将打印“name being added to access control list”形式的行。
对于从访问控制列表中删除的每个名称,将打印“name being removed from access control list”形式的行。
相关环境变量
DISPLAY
获取要使用的默认的主机和显示。
相关手册
X(7), Xsecurity(7), Xserver(1), xdm(1), xauth(1), getaddrinfo(3)
参考文献
- man 1 xhost, Version 7.7+7+b1
更新日志
- 11/17/2018 创建文章