xauth - X authority file utility
xauth [ -f authfile ] [ -vqibn ] [ command arg ... ]
The xauth program is used to edit and display the authorization information used in con-
necting to the X server. This program is usually used to extract authorization records
from one machine and merge them in on another (as is the case when using remote logins or
granting access to other users). Commands (described below) may be entered interactively,
on the xauth command line, or in scripts. Note that this program does not contact the X
server except when the generate command is used. Normally xauth is not used to create the
authority file entry in the first place; the program that starts the X server (often xdm
or startx) does that.
The following options may be used with xauth. They may be given individually (e.g., -q
-i) or may combined (e.g., -qi).
This option specifies the name of the authority file to use. By default, xauth
will use the file specified by the XAUTHORITY environment variable or .Xauthority
in the user's home directory.
-q This option indicates that xauth should operate quietly and not print unsolicited
status messages. This is the default if an xauth command is given on the command
line or if the standard output is not directed to a terminal.
-v This option indicates that xauth should operate verbosely and print status mes-
sages indicating the results of various operations (e.g., how many records have
been read in or written out). This is the default if xauth is reading commands
from its standard input and its standard output is directed to a terminal.
-i This option indicates that xauth should ignore any authority file locks. Nor-
mally, xauth will refuse to read or edit any authority files that have been locked
by other programs (usually xdm or another xauth).
-b This option indicates that xauth should attempt to break any authority file locks
before proceeding. Use this option only to clean up stale locks.
-n This option indicates that xauth should not attempt to resolve any hostnames, but
should simply always print the host address as stored in the authority file.
The following commands may be used to manipulate authority files:
add displayname protocolname hexkey
An authorization entry for the indicated display using the given protocol and key
data is added to the authorization file. The data is specified as an even-
lengthed string of hexadecimal digits, each pair representing one octet. The
first digit of each pair gives the most significant 4 bits of the octet, and the
second digit of the pair gives the least significant 4 bits. For example, a 32
character hexkey would represent a 128-bit value. A protocol name consisting of
just a single period is treated as an abbreviation for MIT-MAGIC-COOKIE-1.
generate displayname protocolname [trusted|untrusted]
[timeout seconds] [group group-id] [data hexdata]
This command is similar to add. The main difference is that instead of requiring
the user to supply the key data, it connects to the server specified in display-
name and uses the SECURITY extension in order to get the key data to store in the
authorization file. If the server cannot be contacted or if it does not support
the SECURITY extension, the command fails. Otherwise, an authorization entry for
the indicated display using the given protocol is added to the authorization file.
A protocol name consisting of just a single period is treated as an abbreviation
If the trusted option is used, clients that connect using this authorization will
have full run of the display, as usual. If untrusted is used, clients that con-
nect using this authorization will be considered untrusted and prevented from
stealing or tampering with data belonging to trusted clients. See the SECURITY
extension specification for full details on the restrictions imposed on untrusted
clients. The default is untrusted.
The timeout option specifies how long in seconds this authorization will be valid.
If the authorization remains unused (no clients are connected with it) for longer
than this time period, the server purges the authorization, and future attempts to
connect using it will fail. Note that the purging done by the server does not
delete the authorization entry from the authorization file. The default timeout
is 60 seconds.
The group option specifies the application group that clients connecting with this
authorization should belong to. See the application group extension specification
for more details. The default is to not belong to an application group.
The data option specifies data that the server should use to generate the autho-
rization. Note that this is not the same data that gets written to the authoriza-
tion file. The interpretation of this data depends on the authorization protocol.
The hexdata is in the same format as the hexkey described in the add command. The
default is to send no data.
[n]extract filename displayname...
Authorization entries for each of the specified displays are written to the indi-
cated file. If the nextract command is used, the entries are written in a numeric
format suitable for non-binary transmission (such as secure electronic mail). The
extracted entries can be read back in using the merge and nmerge commands. If the
filename consists of just a single dash, the entries will be written to the stan-
Authorization entries for each of the specified displays (or all if no displays
are named) are printed on the standard output. If the nlist command is used,
entries will be shown in the numeric format used by the nextract command; other-
wise, they are shown in a textual format. Key data is always displayed in the
hexadecimal format given in the description of the add command.
Authorization entries are read from the specified files and are merged into the
authorization database, superseding any matching existing entries. If the nmerge
command is used, the numeric format given in the description of the extract com-
mand is used. If a filename consists of just a single dash, the standard input
will be read if it hasn't been read before.
Authorization entries matching the specified displays are removed from the author-
The specified file is treated as a script containing xauth commands to execute.
Blank lines and lines beginning with a sharp sign (#) are ignored. A single dash
may be used to indicate the standard input, if it hasn't already been read.
info Information describing the authorization file, whether or not any changes have
been made, and from where xauth commands are being read is printed on the standard
exit If any modifications have been made, the authority file is written out (if
allowed), and the program exits. An end of file is treated as an implicit exit
quit The program exits, ignoring any modifications. This may also be accomplished by
pressing the interrupt character.
A description of all commands that begin with the given string (or all commands if
no string is given) is printed on the standard output.
? A short list of the valid commands is printed on the standard output.
Display names for the add, [n]extract, [n]list, [n]merge, and remove commands use the same
format as the DISPLAY environment variable and the common -display command line argument.
Display-specific information (such as the screen number) is unnecessary and will be
ignored. Same-machine connections (such as local-host sockets, shared memory, and the
Internet Protocol hostname localhost) are referred to as hostname/unix:displaynumber so
that local entries for different machines may be stored in one authority file.
The most common use for xauth is to extract the entry for the current display, copy it to
another machine, and merge it into the user's authority file on the remote machine:
% xauth extract - $DISPLAY | ssh otherhost xauth merge -
The following command contacts the server :0 to create an authorization using the MIT-
MAGIC-COOKIE-1 protocol. Clients that connect with this authorization will be untrusted.
% xauth generate :0 .
This xauth program uses the following environment variables:
to get the name of the authority file to use if the -f option isn't used.
HOME to get the user's home directory if XAUTHORITY isn't defined.
default authority file if XAUTHORITY isn't defined.
X(7), Xsecurity(7), xhost(1), Xserver(1), xdm(1), startx(1), Xau(3).
Users that have unsecure networks should take care to use encrypted file transfer mecha-
nisms to copy authorization entries between machines. Similarly, the MIT-MAGIC-COOKIE-1
protocol is not very useful in unsecure environments. Sites that are interested in addi-
tional security may need to use encrypted authorization mechanisms such as Kerberos.
Spaces are currently not allowed in the protocol name. Quoting could be added for the
Jim Fulton, MIT X Consortium
X Version 11 xauth 1.0.6 XAUTH(1)