命令行手册

Man » xauth 手册在线 - xauth 手册页的详细在线文档

🌍
xauth - X 授权文件实用程序

概要

xauth [ -f authfile ] [ -vqibn ] [ command arg ... ]

描述

xauth 程序用于编辑和显示用于连接到 X 服务器的授权信息。 此程序通常用于从一台机器提取授权记录,并在另一台机器上合并它们(例如,在使用远程登录或授予其他用户访问权限时)。 可以通过交互方式、在 xauth 命令中或在脚本中输入命令(如下所述)。 请注意,此程序不会与 X 服务器通信,除非使用 generate 命令。 通常,xauth 不用于创建授权文件条目;启动 X 服务器的程序(通常是 xdm 或 startx)会执行此操作。

选项

以下选项可与 xauth 一起使用。 可以单独使用它们(例如,-q -i),也可以组合使用(例如,-qi)。

-f authfile

此选项指定要使用的授权文件的名称。 默认情况下,xauth 将使用 XAUTHORITY 环境变量或用户主目录中的 .Xauthority 文件。

-q  此选项表示 xauth 应安静运行,并且不打印未请求的状态消息。 如果在命令行中给出了 xauth 命令,或者标准输出未重定向到终端,则这是默认设置。

-v  此选项表示 xauth 应以详细模式运行,并打印状态消息,指示各种操作的结果(例如,已读取或写入的记录数)。 如果 xauth 从其标准输入读取命令,并且其标准输出重定向到终端,则这是默认设置。

-i  此选项表示 xauth 应忽略任何授权文件锁。 通常,xauth 将拒绝读取或编辑已被其他程序(通常是 xdm 或另一个 xauth)锁定的任何授权文件。

-b  此选项表示 xauth 应尝试在继续之前中断任何授权文件锁。 仅使用此选项来清理过时的锁。

-n  此选项表示 xauth 不应尝试解析任何主机名,而应始终按存储在授权文件中的方式打印主机地址。

-V  此选项显示 xauth 可执行文件的版本号。

命令

可以使用以下命令来操作授权文件:

add displayname protocolname hexkey

将指示的显示器的授权条目添加到授权文件中,使用给定的协议和密钥数据。 数据指定为偶数长度的十六进制数字字符串,每对代表一个字节。 每对中的第一个数字给出字节的最高有效 4 位,该对中的第二个数字给出最低有效 4 位。 例如,32 个字符的十六进制密钥将代表一个 128 位的值。 仅由单个点组成的协议名称被视为 MIT-MAGIC-COOKIE-1 的缩写。


generate displayname protocolname [trusted|untrusted]
[timeout seconds] [group group-id] [data hexdata]

此命令与 add 类似。 主要区别在于,它不是要求用户提供密钥数据,而是连接到 displayname 中指定的服务器,并使用 SECURITY 扩展来获取要存储在授权文件中的密钥数据。如果无法联系到服务器或服务器不支持 SECURITY 扩展,则命令将失败。 否则,将为指示的显示,使用给定的协议,在授权文件中添加一个授权条目。 仅包含单个句点的协议名称被视为 MIT-MAGIC-COOKIE-1 的缩写。

如果使用 trusted 选项,则使用此授权连接的客户端将像往常一样拥有对显示的完全访问权限。 如果使用 untrusted,则使用此授权连接的客户端将被视为不受信任的客户端,并被阻止窃取或篡改属于受信任客户端的数据。 有关对不受信任的客户端施加的限制的完整详细信息,请参阅 SECURITY 扩展规范。 默认值为 untrusted。

timeout 选项指定此授权有效的秒数。 如果授权在超过此时间段后仍未被使用(没有客户端与之连接),则服务器将清除该授权,并且未来尝试使用它进行连接都将失败。 请注意,服务器执行的清除操作不会从授权文件中删除授权条目。 默认超时时间为 60 秒。

group 选项指定连接到此授权的客户端应属于的应用程序组。 有关更多详细信息,请参阅应用程序组扩展规范。 默认情况下,不属于任何应用程序组。

data 选项指定服务器应用来生成授权的数据。 请注意,这与写入授权文件的数据不同。 此数据的解释取决于授权协议。 hexdata 的格式与 add 命令中描述的 hexkey 相同。 默认情况下,不发送任何数据。

[n]extract filename displayname...

为指定的每个显示,将授权条目写入指示的文件。 如果使用 nextract 命令,则这些条目将以数字格式写入,该格式适用于非二进制传输(例如安全电子邮件)。 可以使用 merge 和 nmerge 命令将提取的条目读回。 如果文件名仅包含一个破折号,则条目将被写入标准输出。


[n]list [displayname...]

为指定的显示器(或者如果没有指定显示器,则为所有显示器)打印授权条目到标准输出。 如果使用 nlist 命令,则条目将以 nextract 命令使用的数字格式显示;否则,它们将以文本格式显示。 关键数据始终以 add 命令描述中给出的十六进制格式显示。

[n]merge [filename...]

从指定的文件中读取授权条目,并将其合并到授权数据库中,以替换任何匹配的现有条目。 如果使用 nmerge 命令,则使用 extract 命令中给出的数字格式。 如果文件名仅包含单个破折号,则如果尚未读取,将从标准输入读取。

remove displayname...

从授权文件中删除与指定显示器匹配的授权条目。

source filename

将指定的文件视为包含要执行的 xauth 命令的脚本。 将忽略空行和以井号 (#) 开头的行。 可以使用单个破折号来指示标准输入,如果尚未读取。

info 信息,描述授权文件,无论是否进行了任何更改,以及从哪里读取 `xauth` 命令,这些信息都将打印到标准输出。

exit 如果进行了任何修改,则将授权文件写入(如果允许),然后程序退出。 将文件末尾视为隐式退出命令。

quit 程序退出,忽略所有修改。 这也可以通过按中断字符来实现。

version 此命令显示 `xauth` 可执行文件的版本号。

help [string]

将描述所有以给定字符串开头的命令(如果没有给定字符串,则描述所有命令)打印到标准输出。

? 打印一个有效的命令的简短列表到标准输出。

显示名称

^ dd[n]extract[n]list[n]mergeremove 命令的显示名称使用与 DISPLAY 环境变量和常见的 -display 命令行参数相同的格式。 显示特定的信息(如屏幕编号)是不必要的,并且将被忽略。 同一机器上的连接(如本地主机套接字、共享内存和 Internet 协议主机名 localhost)称为 hostname/unix:displaynumber,以便可以将不同机器的本地条目存储在同一个授权文件中。

示例

^ auth 的最常见用法是从当前显示器提取条目,将其复制到另一台机器,并将其合并到远程机器上的用户的授权文件中:

%  xauth extract - $DISPLAY | ssh otherhost xauth merge

以下命令联系服务器 :0 以使用 MIT-MAGICCOOKIE-1 协议创建授权。 使用此授权连接的客户端将是不受信任的。 % xauth generate :0 .


环境

此 xauth 程序使用以下环境变量:

XAUTHORITY
用于获取要使用的授权文件的名称(如果未使用 -f 选项)。

HOME 用于获取用户的家目录(如果未定义 XAUTHORITY)。

文件

$HOME/.Xauthority
如果未定义 XAUTHORITY,则为默认的授权文件。

参见

X(7), Xsecurity(7), xhost(1), Xserver(1), xdm(1), startx(1), Xau(3)。

错误

在不安全的网络中,用户应注意使用加密的文件传输机制来复制机器之间的授权条目。 同样,MIT-MAGIC-COOKIE-1 协议在不安全的环境中并不是很有用。 如果有兴趣使用额外的安全性,站点可能需要使用加密的授权机制,例如 Kerberos。

目前协议名称中不允许使用空格。 可以添加引号以满足真正喜欢折腾的人。

作者

Jim Fulton, MIT X Consortium