Table of Contents
xauth - X authority file utility
[ -f authfile ] [ -vqibn ] [ command arg ... ]
The xauth program
is used to edit and display the authorization information used in connecting
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).
following commands may be used to manipulate authority files:
- -f authfile
- 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.
- 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.
- This option indicates
that xauth should operate verbosely and print status messages 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.
- This option indicates that xauth should ignore any authority file locks.
Normally, xauth will refuse to read or edit any authority files that have
been locked by other programs (usually xdm or another xauth).
- This option
indicates that xauth should attempt to break any authority file locks before
proceeding. Use this option only to clean up stale locks.
- 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.
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
- add displayname
- 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
- [timeout seconds] [group group-id] [data
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 displayname 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 for MIT-MAGIC-COOKIE-1.
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 connect 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 authorization. Note that
this is not the same data that gets written to the authorization 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...
entries for each of the specified displays are written to the indicated
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 standard output.
- [n]list [displayname...]
- 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; otherwise, they are
shown in a textual format. Key data is always displayed in the hexadecimal
format given in the description of the add command.
- [n]merge [filename...]
- 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 command 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 authority file.
- source filename
- 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.
- 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 output.
- 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 command.
- 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.
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
- to get the user's home directory if XAUTHORITY isn't defined.
- default authority file if XAUTHORITY isn't defined.
Users that have unsecure networks should take care to use encrypted
file transfer mechanisms 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 additional 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 truly
Jim Fulton, MIT X Consortium
Table of Contents