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 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).
  - -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.
 
  - -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 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.
 
  - -i
 
  - 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).
 
  - -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.
 
  - -V
 
  - This option shows the version number of the xauth executable.
 
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 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...
 
  - Authorization 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.
 
  - remove
    displayname...
 
  - 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.
 
  - 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 output.
 
  - 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 command.
 
  - quit
 
  - The program exits, ignoring any modifications. This may also be
      accomplished by pressing the interrupt character.
 
  - version
 
  - This command shows the version number of the xauth executable.
 
  - help
    [string]
 
  - 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:
  - XAUTHORITY
 
  - 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.
 
  - $HOME/.Xauthority
 
  - 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 insecure 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 insecure 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 perverse.
Jim Fulton, MIT X Consortium