home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-bin / x11r6.1 / man / cat1 / xdm.0 < prev    next >
Encoding:
Text File  |  1996-10-17  |  62.9 KB  |  1,519 lines

  1.  
  2.  
  3.  
  4. XDM(1)                               XDM(1)
  5.  
  6.  
  7. NNAAMMEE
  8.        xdm  -  X  Display  Manager  with  support for XDMCP, host
  9.        chooser
  10.  
  11. SSYYNNOOPPSSIISS
  12.        xxddmm [ --ccoonnffiigg _c_o_n_f_i_g_u_r_a_t_i_o_n___f_i_l_e ] [ --nnooddaaeemmoonn ] [  --ddeebbuugg
  13.        _d_e_b_u_g___l_e_v_e_l  ]  [  --eerrrroorr  _e_r_r_o_r___l_o_g___f_i_l_e  ]  [ --rreessoouurrcceess
  14.        _r_e_s_o_u_r_c_e___f_i_l_e ] [ --sseerrvveerr _s_e_r_v_e_r___e_n_t_r_y ] [  --sseessssiioonn  _s_e_s_-
  15.        _s_i_o_n___p_r_o_g_r_a_m ]
  16.  
  17. DDEESSCCRRIIPPTTIIOONN
  18.        _X_d_m  manages  a    collection of X displays, which may be on
  19.        the local host or remote servers.  The design of     _x_d_m  was
  20.        guided  by  the needs of X terminals as well as the X Con-
  21.        sortium standard XDMCP, the _X _D_i_s_p_l_a_y _M_a_n_a_g_e_r _C_o_n_t_r_o_l _P_r_o_-
  22.        _t_o_c_o_l.  _X_d_m provides services similar to those provided by
  23.        _i_n_i_t, _g_e_t_t_y and _l_o_g_i_n on     character  terminals:    prompting
  24.        for  login name and password, authenticating the user, and
  25.        running a ``session.''
  26.  
  27.        A ``session'' is defined by the lifetime of  a  particular
  28.        process;      in  the  traditional    character-based     terminal
  29.        world, it is the user's login shell.  In the _x_d_m     context,
  30.        it  is an arbitrary session manager.  This is because in a
  31.        windowing environment, a user's login shell  process  does
  32.        not  necessarily     have  any  terminal-like  interface with
  33.        which to connect.  When a  real    session     manager  is  not
  34.        available,  a window manager or terminal emulator is typi-
  35.        cally used as the ``session manager,'' meaning that termi-
  36.        nation of this process terminates the user's session.
  37.  
  38.        When  the  session  is terminated, _x_d_m resets the X server
  39.        and (optionally) restarts the whole process.
  40.  
  41.        When _x_d_m receives an Indirect query via XDMCP, it can  run
  42.        a  _c_h_o_o_s_e_r  process to perform an XDMCP BroadcastQuery (or
  43.        an XDMCP Query to specified hosts) on behalf of    the  dis-
  44.        play  and  offer a menu of possible hosts that offer XDMCP
  45.        display management.  This feature is useful with X  termi-
  46.        nals that do not offer a host menu themselves.
  47.  
  48.        Because    _x_d_m  provides the first interface that users will
  49.        see, it is designed to be simple to use and easy     to  cus-
  50.        tomize  to  the    needs of a particular site.  _X_d_m has many
  51.        options, most of which have reasonable  defaults.   Browse
  52.        through    the  various sections of this manual, picking and
  53.        choosing the things you want to    change.      Pay  particular
  54.        attention  to  the  SSeessssiioonn  PPrrooggrraamm  section,  which will
  55.        describe how to set up the style of session desired.
  56.  
  57. OOVVEERRVVIIEEWW
  58.        _x_d_m is highly configurable, and most of its  behavior  can
  59.        be  controlled  by  resource files and shell scripts.  The
  60.        names of these files themselves are  resources  read  from
  61.  
  62.  
  63.  
  64. X Version 11           Release 6.1                1
  65.  
  66.  
  67.  
  68.  
  69.  
  70. XDM(1)                               XDM(1)
  71.  
  72.  
  73.        the  file  _x_d_m_-_c_o_n_f_i_g  or  the  file  named by the --ccoonnffiigg
  74.        option.
  75.  
  76.        _x_d_m offers display management two different ways.  It  can
  77.        manage  X  servers running on the local machine and speci-
  78.        fied in _X_s_e_r_v_e_r_s, and it can manage remote X servers (typ-
  79.        ically X terminals) using XDMCP (the XDM Control Protocol)
  80.        as specified in the _X_a_c_c_e_s_s file.
  81.  
  82.        The resources of the X clients  run  by    _x_d_m  outside  the
  83.        user's  session,     including _x_d_m's own login window, can be
  84.        affected by setting resources in the _X_r_e_s_o_u_r_c_e_s file.
  85.  
  86.        For X terminals that do not offer a menu of hosts  to  get
  87.        display management from, _x_d_m can collect willing hosts and
  88.        run the _c_h_o_o_s_e_r program to offer the user a menu.   For    X
  89.        displays     attached  to  a host, this step is typically not
  90.        used, as the local host does the display management.
  91.  
  92.        After resetting the X server, _x_d_m runs the  _X_s_e_t_u_p  script
  93.        to  assist  in  setting    up the screen the user sees along
  94.        with the _x_l_o_g_i_n widget.
  95.  
  96.        The _x_l_o_g_i_n widget, which _x_d_m presents, offers the familiar
  97.        login and password prompts.
  98.  
  99.        After  the  user     logs in, _x_d_m runs the _X_s_t_a_r_t_u_p script as
  100.        root.
  101.  
  102.        Then _x_d_m runs the _X_s_e_s_s_i_o_n script as the user.  This  sys-
  103.        tem  session file may do some additional startup and typi-
  104.        cally runs the _._x_s_e_s_s_i_o_n script in the user's home  direc-
  105.        tory.   When  the  _X_s_e_s_s_i_o_n  script  exits, the session is
  106.        over.
  107.  
  108.        At the end of the session, the _X_r_e_s_e_t  script  is  run  to
  109.        clean  up,  the    X  server  is reset, and the cycle starts
  110.        over.
  111.  
  112.        The file     _/_u_s_r_/_X_1_1_R_6_/_l_i_b_/_X_1_1_/_x_d_m_/_x_d_m_-_e_r_r_o_r_s  will  contain
  113.        error  messages    from _x_d_m and anything output to stderr by
  114.        _X_s_e_t_u_p_, _X_s_t_a_r_t_u_p_, _X_s_e_s_s_i_o_n or _X_r_e_s_e_t.  When you have trou-
  115.        ble getting _x_d_m working, check this file to see if _x_d_m has
  116.        any clues to the trouble.
  117.  
  118. OOPPTTIIOONNSS
  119.        All of these options, except --ccoonnffiigg itself, specify  val-
  120.        ues  that  can also be specified in the configuration file
  121.        as resources.
  122.  
  123.        --ccoonnffiigg _c_o_n_f_i_g_u_r_a_t_i_o_n___f_i_l_e
  124.           Names  the  configuration     file,    which    specifies
  125.           resources      to   control     the   behavior     of  _x_d_m_.
  126.           _<_X_R_o_o_t_>_/_l_i_b_/_X_1_1_/_x_d_m_/_x_d_m_-_c_o_n_f_i_g is the default.  See
  127.  
  128.  
  129.  
  130. X Version 11           Release 6.1                2
  131.  
  132.  
  133.  
  134.  
  135.  
  136. XDM(1)                               XDM(1)
  137.  
  138.  
  139.           the section CCoonnffiigguurraattiioonn FFiillee.
  140.  
  141.        --nnooddaaeemmoonn
  142.           Specifies     ``false''  as the value for the DDiissppllaayy--
  143.           MMaannaaggeerr..ddaaeemmoonnMMooddee resource.  This  suppresses  the
  144.           normal  daemon  behavior, which is for _x_d_m to close
  145.           all file descriptors, disassociate itself from  the
  146.           controlling  terminal,  and put itself in the back-
  147.           ground when it first starts up.
  148.  
  149.        --ddeebbuugg _d_e_b_u_g___l_e_v_e_l
  150.           Specifies the numeric  value  for     the  DDiissppllaayyMMaann--
  151.           aaggeerr..ddeebbuuggLLeevveell  resource.  A non-zero value causes
  152.           _x_d_m to print lots of debugging  statements  to  the
  153.           terminal;      it   also   disables     the  DDiissppllaayyMMaann--
  154.           aaggeerr..ddaaeemmoonnMMooddee resource, forcing _x_d_m to    run  syn-
  155.           chronously.  To interpret these debugging messages,
  156.           a copy of the source  code  for  _x_d_m  is    almost    a
  157.           necessity.  No attempt has been made to rationalize
  158.           or standardize the output.
  159.  
  160.        --eerrrroorr _e_r_r_o_r___l_o_g___f_i_l_e
  161.           Specifies      the    value    for    the    DDiissppllaayyMMaann--
  162.           aaggeerr..eerrrroorrLLooggFFiillee     resource.   This  file     contains
  163.           errors from _x_d_m as  well    as  anything  written  to
  164.           stderr by the various scripts and programs run dur-
  165.           ing the progress of the session.
  166.  
  167.        --rreessoouurrcceess _r_e_s_o_u_r_c_e___f_i_l_e
  168.           Specifies      the    value    for    the    DDiissppllaayyMMaann--
  169.           aaggeerr**rreessoouurrcceess resource.    This file is loaded using
  170.           _x_r_d_b to specify configuration  parameters     for  the
  171.           authentication widget.
  172.  
  173.        --sseerrvveerr _s_e_r_v_e_r___e_n_t_r_y
  174.           Specifies     the value for the DDiissppllaayyMMaannaaggeerr..sseerrvveerrss
  175.           resource.     See the section LLooccaall SSeerrvveerr  SSppeecciiffiiccaa--
  176.           ttiioonn for a description of this resource.
  177.  
  178.        --uuddppPPoorrtt _p_o_r_t___n_u_m_b_e_r
  179.           Specifies       the      value      for    the   DDiissppllaayyMMaann--
  180.           aaggeerr..rreeqquueessttPPoorrtt resource.   This     sets  the  port-
  181.           number  which  _x_d_m will monitor for XDMCP requests.
  182.           As XDMCP uses the registered  well-known    UDP  port
  183.           177, this resource should not be changed except for
  184.           debugging.
  185.  
  186.        --sseessssiioonn _s_e_s_s_i_o_n___p_r_o_g_r_a_m
  187.           Specifies the value for the  DDiissppllaayyMMaannaaggeerr**sseessssiioonn
  188.           resource.     This indicates the program to run as the
  189.           session after the user has logged in.
  190.  
  191.        --xxrrmm _r_e_s_o_u_r_c_e___s_p_e_c_i_f_i_c_a_t_i_o_n
  192.           Allows an arbitrary resource to be specified, as in
  193.  
  194.  
  195.  
  196. X Version 11           Release 6.1                3
  197.  
  198.  
  199.  
  200.  
  201.  
  202. XDM(1)                               XDM(1)
  203.  
  204.  
  205.           most X Toolkit applications.
  206.  
  207. RREESSOOUURRCCEESS
  208.        At  many     stages     the  actions  of  _x_d_m    can be controlled
  209.        through the use of its configuration file, which is in the
  210.        X  resource format.  Some resources modify the behavior of
  211.        _x_d_m on all displays, while others modify its behavior on a
  212.        single  display.      Where actions relate to a specific dis-
  213.        play, the display name is inserted into the resource  name
  214.        between    ``DisplayManager''  and     the  final resource name
  215.        segment.
  216.  
  217.        For local displays, the resource name  and  class  are  as
  218.        read from the _X_s_e_r_v_e_r_s file.
  219.  
  220.        For remote displays, the resource name is what the network
  221.        address of the display resolves to.  See the  rreemmoovveeDDoommaaiinn
  222.        resource.   The    name must match exactly; _x_d_m is not aware
  223.        of all the network aliases that might reach a  given  dis-
  224.        play.   If  the    name  resolve fails, the address is used.
  225.        The resource class is as sent by the display in the  XDMCP
  226.        Manage request.
  227.  
  228.        Because    the  resource manager uses colons to separate the
  229.        name of the resource from its value and dots  to     separate
  230.        resource     name parts, _x_d_m substitutes underscores for both
  231.        dots and colons when generating the  resource  name.   For
  232.        example,     DDiissppllaayyMMaannaaggeerr..eexxppoo__xx__oorrgg__00..ssttaarrttuupp  is the name
  233.        of the resource which defines the startup shell    file  for
  234.        the ``expo.x.org:0'' display.
  235.  
  236.        DDiissppllaayyMMaannaaggeerr..sseerrvveerrss
  237.           This  resource either specifies a file name full of
  238.           server entries, one per line (if the  value  starts
  239.           with  a  slash), or a single server entry.  See the
  240.           section LLooccaall SSeerrvveerr SSppeecciiffiiccaattiioonn for the details.
  241.  
  242.        DDiissppllaayyMMaannaaggeerr..rreeqquueessttPPoorrtt
  243.           This  indicates  the UDP port number which _x_d_m uses
  244.           to listen for incoming XDMCP requests.  Unless  you
  245.           need  to    debug  the  system,  leave  this with its
  246.           default value of 177.
  247.  
  248.        DDiissppllaayyMMaannaaggeerr..eerrrroorrLLooggFFiillee
  249.           Error output is normally    directed  at  the  system
  250.           console.     To  redirect  it, set this resource to a
  251.           file name.  A method to send these messages to _s_y_s_-
  252.           _l_o_g  should  be developed for systems which support
  253.           it; however, the wide variety  of     interfaces  pre-
  254.           cludes any system-independent implementation.  This
  255.           file also contains any output directed to stderr by
  256.           the _X_s_e_t_u_p_, _X_s_t_a_r_t_u_p_, _X_s_e_s_s_i_o_n and _X_r_e_s_e_t files, so
  257.           it will contain descriptions of problems    in  those
  258.           scripts as well.
  259.  
  260.  
  261.  
  262. X Version 11           Release 6.1                4
  263.  
  264.  
  265.  
  266.  
  267.  
  268. XDM(1)                               XDM(1)
  269.  
  270.  
  271.        DDiissppllaayyMMaannaaggeerr..ddeebbuuggLLeevveell
  272.           If  the  integer    value of this resource is greater
  273.           than zero, reams of debugging information     will  be
  274.           printed.    It also disables daemon mode, which would
  275.           redirect the information into the     bit-bucket,  and
  276.           allows  non-root users to run _x_d_m_, which would nor-
  277.           mally not be useful.
  278.  
  279.        DDiissppllaayyMMaannaaggeerr..ddaaeemmoonnMMooddee
  280.           Normally, _x_d_m attempts to make itself into a daemon
  281.           process  unassociated  with  any terminal.  This is
  282.           accomplished by forking and leaving the parent pro-
  283.           cess  to    exit,  then  closing file descriptors and
  284.           releasing the controlling terminal.  In some  envi-
  285.           ronments    this  is not desired (in particular, when
  286.           debugging).  Setting  this  resource  to    ``false''
  287.           will disable this feature.
  288.  
  289.        DDiissppllaayyMMaannaaggeerr..ppiiddFFiillee
  290.           The  filename  specified will be created to contain
  291.           an ASCII representation of the  process-id  of  the
  292.           main  _x_d_m     process.   _X_d_m also uses file locking on
  293.           this file to attempt to eliminate multiple  daemons
  294.           running  on  the    same  machine,    which would cause
  295.           quite a bit of havoc.
  296.  
  297.        DDiissppllaayyMMaannaaggeerr..lloocckkPPiiddFFiillee
  298.           This is the resource  which  controls  whether  _x_d_m
  299.           uses file locking to keep multiple display managers
  300.           from running amok.  On  System  V,  this    uses  the
  301.           _l_o_c_k_f library call, while on BSD it uses _f_l_o_c_k_.
  302.  
  303.        DDiissppllaayyMMaannaaggeerr..aauutthhDDiirr
  304.           This  names  a  directory     under    which  _x_d_m stores
  305.           authorization files while initializing the session.
  306.           The  default  value is _<_X_R_o_o_t_>_/_l_i_b_/_X_1_1_/_x_d_m_.  Can be
  307.           overridden for  specific    displays  by  DisplayMan-
  308.           ager._D_I_S_P_L_A_Y.authFile.
  309.  
  310.        DDiissppllaayyMMaannaaggeerr..aauuttooRReessccaann
  311.           This  boolean controls whether _x_d_m rescans the con-
  312.           figuration, servers, access control and authentica-
  313.           tion  keys files after a session terminates and the
  314.           files have changed.  By  default    it  is    ``true.''
  315.           You  can force _x_d_m to reread these files by sending
  316.           a SIGHUP to the main process.
  317.  
  318.        DDiissppllaayyMMaannaaggeerr..rreemmoovveeDDoommaaiinnnnaammee
  319.           When computing the display name for XDMCP     clients,
  320.           the  name     resolver  will     typically create a fully
  321.           qualified host name for the terminal.  As     this  is
  322.           sometimes     confusing,  _x_d_m  will    remove the domain
  323.           name portion of the host name if it is the same  as
  324.           the  domain  name     of  the  local     host  when  this
  325.  
  326.  
  327.  
  328. X Version 11           Release 6.1                5
  329.  
  330.  
  331.  
  332.  
  333.  
  334. XDM(1)                               XDM(1)
  335.  
  336.  
  337.           variable is set.    By default the value is ``true.''
  338.  
  339.        DDiissppllaayyMMaannaaggeerr..kkeeyyFFiillee
  340.           XDM-AUTHENTICATION-1   style  XDMCP  authentication
  341.           requires that a private key be shared  between  _x_d_m
  342.           and the terminal.     This resource specifies the file
  343.           containing those values.    Each entry  in    the  file
  344.           consists    of a display name and the shared key.  By
  345.           default, _x_d_m does     not  include  support    for  XDM-
  346.           AUTHENTICATION-1,     as  it requires DES which is not
  347.           generally distributable because  of  United  States
  348.           export restrictions.
  349.  
  350.        DDiissppllaayyMMaannaaggeerr..aacccceessssFFiillee
  351.           To  prevent unauthorized XDMCP service and to allow
  352.           forwarding of XDMCP  IndirectQuery  requests,  this
  353.           file  contains  a     database  of hostnames which are
  354.           either allowed direct access to  this  machine,  or
  355.           have  a  list  of     hosts to which queries should be
  356.           forwarded to.  The format of this file is described
  357.           in the section XXDDMMCCPP AAcccceessss CCoonnttrrooll..
  358.  
  359.        DDiissppllaayyMMaannaaggeerr..eexxppoorrttLLiisstt
  360.           A     list  of additional environment variables, sepa-
  361.           rated by white space, to pass  on     to  the  _X_s_e_t_u_p,
  362.           _X_s_t_a_r_t_u_p, _X_s_e_s_s_i_o_n, and _X_r_e_s_e_t programs.
  363.  
  364.        DDiissppllaayyMMaannaaggeerr..rraannddoommFFiillee
  365.           A     file  to checksum to generate the seed of autho-
  366.           rization keys.  This should be a file that  changes
  367.           frequently.  The default is _/_d_e_v_/_m_e_m.
  368.  
  369.        DDiissppllaayyMMaannaaggeerr..ggrreeeetteerrLLiibb
  370.           On  systems  that     support  a  dynamically-loadable
  371.           greeter library, the name of the library.      Default
  372.           is _<_X_R_o_o_t_>_/_l_i_b_/_X_1_1_/_x_d_m_/_l_i_b_X_d_m_G_r_e_e_t_._s_o.
  373.  
  374.        DDiissppllaayyMMaannaaggeerr..cchhooiicceeTTiimmeeoouutt
  375.           Number  of  seconds  to wait for display to respond
  376.           after user has selected a host  from  the     chooser.
  377.           If  the display sends an XDMCP IndirectQuery within
  378.           this time, the request is forwarded to  the  chosen
  379.           host.   Otherwise,  it  is assumed to be from a new
  380.           session and the chooser is offered again.      Default
  381.           is 15.
  382.  
  383.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..rreessoouurrcceess
  384.           This  resource specifies the name of the file to be
  385.           loaded by _x_r_d_b as the resource  database    onto  the
  386.           root window of screen 0 of the display.  The _X_s_e_t_u_p
  387.           program, the Login widget, and _c_h_o_o_s_e_r will use the
  388.           resources     set  in  this    file.  This resource data
  389.           base is loaded just before the authentication  pro-
  390.           cedure is started, so it can control the appearance
  391.  
  392.  
  393.  
  394. X Version 11           Release 6.1                6
  395.  
  396.  
  397.  
  398.  
  399.  
  400. XDM(1)                               XDM(1)
  401.  
  402.  
  403.           of the login window.  See the  section  AAuutthheennttiiccaa--
  404.           ttiioonn  WWiiddggeett,, which describes the various resources
  405.           that are appropriate to place in this file.   There
  406.           is   no    default     value    for  this  resource,  but
  407.           _<_X_R_o_o_t_>_/_l_i_b_/_X_1_1_/_x_d_m_/_X_r_e_s_o_u_r_c_e_s is the  conventional
  408.           name.
  409.  
  410.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..cchhoooosseerr
  411.           Specifies     the program run to offer a host menu for
  412.           Indirect queries redirected  to  the  special  host
  413.           name  CHOOSER.   _<_X_R_o_o_t_>_/_l_i_b_/_X_1_1_/_x_d_m_/_c_h_o_o_s_e_r is the
  414.           default.    See the sections XXDDMMCCPP AAcccceessss CCoonnttrrooll and
  415.           CChhoooosseerr.
  416.  
  417.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..xxrrddbb
  418.           Specifies     the  program used to load the resources.
  419.           By default, _x_d_m uses _<_X_R_o_o_t_>_/_b_i_n_/_x_r_d_b.
  420.  
  421.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..ccpppp
  422.           This specifies the name of the C preprocessor which
  423.           is used by _x_r_d_b.
  424.  
  425.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..sseettuupp
  426.           This  specifies  a  program  which is run (as root)
  427.           before offering the Login window.     This may be used
  428.           to  change  the appearance of the screen around the
  429.           Login window or to put up other windows (e.g.,  you
  430.           may  want     to  run  _x_c_o_n_s_o_l_e here).  By default, no
  431.           program is run.  The conventional name for  a  file
  432.           used  here  is  _X_s_e_t_u_p.  See the section SSeettuupp PPrroo--
  433.           ggrraamm..
  434.  
  435.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..ssttaarrttuupp
  436.           This specifies a program which  is  run  (as  root)
  437.           after  the  authentication  process  succeeds.   By
  438.           default, no program is run.  The conventional  name
  439.           for  a file used here is _X_s_t_a_r_t_u_p.  See the section
  440.           SSttaarrttuupp PPrrooggrraamm..
  441.  
  442.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..sseessssiioonn
  443.           This specifies the session to be executed (not run-
  444.           ning  as    root).     By default, _<_X_R_o_o_t_>_/_b_i_n_/_x_t_e_r_m is
  445.           run.  The conventional name is _X_s_e_s_s_i_o_n.     See  the
  446.           section SSeessssiioonn PPrrooggrraamm..
  447.  
  448.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..rreesseett
  449.           This  specifies  a  program  which is run (as root)
  450.           after the session terminates.  By default, no  pro-
  451.           gram is run.  The conventional name is _X_r_e_s_e_t.  See
  452.           the section RReesseett PPrrooggrraamm..
  453.  
  454.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..ooppeennDDeellaayy
  455.  
  456.  
  457.  
  458.  
  459.  
  460. X Version 11           Release 6.1                7
  461.  
  462.  
  463.  
  464.  
  465.  
  466. XDM(1)                               XDM(1)
  467.  
  468.  
  469.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..ooppeennRReeppeeaatt
  470.  
  471.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..ooppeennTTiimmeeoouutt
  472.  
  473.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..ssttaarrttAAtttteemmppttss
  474.           These numeric resources control the behavior of _x_d_m
  475.           when   attempting     to  open  intransigent     servers.
  476.           ooppeennDDeellaayy is the length of the pause  (in     seconds)
  477.           between successive attempts, ooppeennRReeppeeaatt is the num-
  478.           ber of attempts to make, ooppeennTTiimmeeoouutt is the  amount
  479.           of  time to wait while actually attempting the open
  480.           (i.e., the maximum time  spent  in  the  _c_o_n_n_e_c_t(2)
  481.           system  call)  and  ssttaarrttAAtttteemmppttss     is the number of
  482.           times this entire process is done before giving  up
  483.           on the server.  After ooppeennRReeppeeaatt attempts have been
  484.           made, or if ooppeennTTiimmeeoouutt seconds elapse in any  par-
  485.           ticular  attempt,     _x_d_m  terminates and restarts the
  486.           server, attempting to connect again.  This  process
  487.           is repeated ssttaarrttAAtttteemmppttss times, at which point the
  488.           display is declared dead    and  disabled.     Although
  489.           this  behavior  may  seem     arbitrary,  it     has been
  490.           empirically developed and works quite well on  most
  491.           systems.    The default values are 5 for ooppeennDDeellaayy, 5
  492.           for ooppeennRReeppeeaatt, 30 for ooppeennTTiimmeeoouutt and 4 for  ssttaarr--
  493.           ttAAtttteemmppttss.
  494.  
  495.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..ppiinnggIInntteerrvvaall
  496.  
  497.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..ppiinnggTTiimmeeoouutt
  498.           To  discover  when  remote  displays disappear, _x_d_m
  499.           occasionally pings them, using an X connection  and
  500.           _X_S_y_n_c  calls.   ppiinnggIInntteerrvvaall specifies the time (in
  501.           minutes) between    each  ping  attempt,  ppiinnggTTiimmeeoouutt
  502.           specifies     the  maximum amount of time (in minutes)
  503.           to wait for the terminal to respond to the request.
  504.           If  the  terminal     does not respond, the session is
  505.           declared dead and terminated.  By default, both are
  506.           set  to  5 minutes.  If you frequently use X termi-
  507.           nals which can become isolated  from  the     managing
  508.           host,  you  may  wish  to increase this value.  The
  509.           only worry is that sessions will continue to  exist
  510.           after  the terminal has been accidentally disabled.
  511.           _x_d_m will not  ping  local     displays.   Although  it
  512.           would  seem  harmless,  it  is  unpleasant when the
  513.           workstation session is terminated as  a  result  of
  514.           the server hanging for NFS service and not respond-
  515.           ing to the ping.
  516.  
  517.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..tteerrmmiinnaatteeSSeerrvveerr
  518.           This  boolean  resource  specifies  whether  the    X
  519.           server  should  be terminated when a session termi-
  520.           nates (instead of resetting it).    This  option  can
  521.           be used when the server tends to grow without bound
  522.           over time, in order to limit the amount of time the
  523.  
  524.  
  525.  
  526. X Version 11           Release 6.1                8
  527.  
  528.  
  529.  
  530.  
  531.  
  532. XDM(1)                               XDM(1)
  533.  
  534.  
  535.           server is run.  The default value is ``false.''
  536.  
  537.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..uusseerrPPaatthh
  538.           _X_d_m sets the PATH environment variable for the ses-
  539.           sion to this value.  It should be a colon separated
  540.           list  of directories; see _s_h(1) for a full descrip-
  541.           tion.    ``:/bin:/usr/bin:/usr/X11R6/bin:/usr/ucb''
  542.           is  a  common  setting.    The  default value can be
  543.           specified at build time in the X system  configura-
  544.           tion file with DefaultUserPath.
  545.  
  546.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..ssyysstteemmPPaatthh
  547.           _X_d_m  sets     the  PATH  environment     variable for the
  548.           startup and reset scripts     to  the  value     of  this
  549.           resource.      The default for this resource is speci-
  550.           fied at build time by the     DefaultSystemPath  entry
  551.           in      the      system      configuration        file;
  552.           ``/etc:/bin:/usr/bin:/usr/X11R6/bin:/usr/ucb'' is a
  553.           common choice.  Note the absence of ``.'' from this
  554.           entry.  This is a good practice to follow for root;
  555.           it  avoids many common Trojan Horse system penetra-
  556.           tion schemes.
  557.  
  558.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..ssyysstteemmSShheellll
  559.           _X_d_m sets the SHELL  environment  variable     for  the
  560.           startup  and  reset  scripts  to    the value of this
  561.           resource.     It is _/_b_i_n_/_s_h by default.
  562.  
  563.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..ffaaiillssaaffeeCClliieenntt
  564.           If the default session fails to execute,    _x_d_m  will
  565.           fall  back  to  this program.  This program is exe-
  566.           cuted with no arguments,    but  executes  using  the
  567.           same  environment     variables  as    the session would
  568.           have had (see the     section  SSeessssiioonn  PPrrooggrraamm).   By
  569.           default, _<_X_R_o_o_t_>_/_b_i_n_/_x_t_e_r_m is used.
  570.  
  571.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..ggrraabbSSeerrvveerr
  572.  
  573.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..ggrraabbTTiimmeeoouutt
  574.           To  improve security, _x_d_m grabs the server and key-
  575.           board while reading the login  name  and    password.
  576.           The  ggrraabbSSeerrvveerr  resource     specifies  if the server
  577.           should  be   held      for    the   duration     of   the
  578.           name/password  reading.  When ``false,'' the server
  579.           is ungrabbed after the keyboard grab succeeds, oth-
  580.           erwise  the server is grabbed until just before the
  581.           session begins.  The  default  is     ``false.''   The
  582.           ggrraabbTTiimmeeoouutt resource specifies the maximum time _x_d_m
  583.           will wait for the grab to succeed.   The    grab  may
  584.           fail  if    some other client has the server grabbed,
  585.           or possibly if the network latencies are very high.
  586.           This resource has a default value of 3 seconds; you
  587.           should be cautious when raising it, as a    user  can
  588.           be  spoofed  by a look-alike window on the display.
  589.  
  590.  
  591.  
  592. X Version 11           Release 6.1                9
  593.  
  594.  
  595.  
  596.  
  597.  
  598. XDM(1)                               XDM(1)
  599.  
  600.  
  601.           If the grab  fails,  _x_d_m    kills  and  restarts  the
  602.           server (if possible) and the session.
  603.  
  604.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..aauutthhoorriizzee
  605.  
  606.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..aauutthhNNaammee
  607.           aauutthhoorriizzee     is  a    boolean     resource  which controls
  608.           whether _x_d_m generates and     uses  authorization  for
  609.           the  local server connections.  If authorization is
  610.           used, aauutthhNNaammee is a list    of  authorization  mecha-
  611.           nisms to use, separated by white space.  XDMCP con-
  612.           nections dynamically  specify  which  authorization
  613.           mechanisms are supported, so aauutthhNNaammee is ignored in
  614.           this case.  When aauutthhoorriizzee is set for a display and
  615.           authorization   is   not    available,  the     user  is
  616.           informed by having a different message displayed in
  617.           the   login   widget.   By  default,  aauutthhoorriizzee  is
  618.           ``true.''     aauutthhNNaammee is ``MIT-MAGIC-COOKIE-1,''  or,
  619.           if      XDM-AUTHORIZATION-1      is      available,
  620.           ``XDM-AUTHORIZATION-1 MIT-MAGIC-COOKIE-1.''
  621.  
  622.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..aauutthhFFiillee
  623.           This file is used to communicate the  authorization
  624.           data from _x_d_m to the server, using the --aauutthh server
  625.           command line option.  It should be kept in a direc-
  626.           tory which is not world-writable as it could easily
  627.           be removed, disabling the     authorization    mechanism
  628.           in  the server.  If not specified, a name is gener-
  629.           ated from DisplayManager.authDir and  the     name  of
  630.           the display.
  631.  
  632.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..aauutthhCCoommppllaaiinn
  633.           If  set to ``false,'' disables the use of the uunnssee--
  634.           ccuurreeGGrreeeettiinngg in the login window.     See the  section
  635.           AAuutthheennttiiccaattiioonn WWiiddggeett..  The default is ``true.''
  636.  
  637.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..rreesseettSSiiggnnaall
  638.           The  number  of  the  signal _x_d_m sends to reset the
  639.           server.  See the section    CCoonnttrroolllliinngg  tthhee  SSeerrvveerr..
  640.           The default is 1 (SIGHUP).
  641.  
  642.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..tteerrmmSSiiggnnaall
  643.           The number of the signal _x_d_m sends to terminate the
  644.           server.  See the section    CCoonnttrroolllliinngg  tthhee  SSeerrvveerr..
  645.           The default is 15 (SIGTERM).
  646.  
  647.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..rreesseettFFoorrAAuutthh
  648.           The original implementation of authorization in the
  649.           sample server  reread  the  authorization     file  at
  650.           server  reset  time,  instead  of when checking the
  651.           initial connection.  As _x_d_m  generates  the  autho-
  652.           rization    information just before connecting to the
  653.           display, an old server  would  not  get  up-to-date
  654.           authorization  information.   This  resource causes
  655.  
  656.  
  657.  
  658. X Version 11           Release 6.1                   10
  659.  
  660.  
  661.  
  662.  
  663.  
  664. XDM(1)                               XDM(1)
  665.  
  666.  
  667.           _x_d_m to send SIGHUP to the server after  setting  up
  668.           the  file,  causing  an  additional server reset to
  669.           occur, during  which  time  the  new  authorization
  670.           information   will   be    read.     The  default  is
  671.           ``false,'' which will work for all MIT servers.
  672.  
  673.        DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..uusseerrAAuutthhDDiirr
  674.           When _x_d_m is unable  to  write  to     the  usual  user
  675.           authorization  file ($HOME/.Xauthority), it creates
  676.           a unique file name in this directory and points the
  677.           environment  variable  XAUTHORITY     at  the  created
  678.           file.  It uses _/_t_m_p by default.
  679.  
  680. CCOONNFFIIGGUURRAATTIIOONN FFIILLEE
  681.        First, the _x_d_m configuration file should be set up.   Make
  682.        a  directory  (usually  _<_X_R_o_o_t_>_/_l_i_b_/_X_1_1_/_x_d_m, where <XRoot>
  683.        refers to the root of the X11 install tree) to contain all
  684.        of  the    relevant  files.  In the examples that follow, we
  685.        use /usr/X11R6 as the value of <XRoot>.
  686.  
  687.        Here is a reasonable configuration file,     which    could  be
  688.        named _x_d_m_-_c_o_n_f_i_g:
  689.  
  690.  
  691.         DisplayManager.servers:           /usr/X11R6/lib/X11/xdm/Xservers
  692.         DisplayManager.errorLogFile:       /usr/X11R6/lib/X11/xdm/xdm-errors
  693.         DisplayManager*resources:           /usr/X11R6/lib/X11/xdm/Xresources
  694.         DisplayManager*startup:           /usr/X11R6/lib/X11/xdm/Xstartup
  695.         DisplayManager*session:           /usr/X11R6/lib/X11/xdm/Xsession
  696.         DisplayManager.pidFile:           /usr/X11R6/lib/X11/xdm/xdm-pid
  697.         DisplayManager._0.authorize:       true
  698.         DisplayManager*authorize:           false
  699.  
  700.  
  701.        Note  that  this     file mostly contains references to other
  702.        files.  Note also that some of the resources are specified
  703.        with ``*'' separating the components.  These resources can
  704.        be made unique for each different  display,  by    replacing
  705.        the  ``*'' with the display-name, but normally this is not
  706.        very useful.  See the RReessoouurrcceess    section     for  a     complete
  707.        discussion.
  708.  
  709. XXDDMMCCPP AACCCCEESSSS CCOONNTTRROOLL
  710.        The   database    file   specified   by    the   DDiissppllaayyMMaann--
  711.        aaggeerr..aacccceessssFFiillee provides information  which  _x_d_m     uses  to
  712.        control    access    from  displays    requesting XDMCP service.
  713.        This file contains three types of entries:  entries  which
  714.        control    the  response  to  Direct  and Broadcast queries,
  715.        entries which control the response  to  Indirect     queries,
  716.        and macro definitions.
  717.  
  718.        The  format of the Direct entries is simple, either a host
  719.        name or a pattern, which is distinguished from a host name
  720.        by  the    inclusion  of  one  or    more meta characters (`*'
  721.  
  722.  
  723.  
  724. X Version 11           Release 6.1                   11
  725.  
  726.  
  727.  
  728.  
  729.  
  730. XDM(1)                               XDM(1)
  731.  
  732.  
  733.        matches any sequence of 0  or  more  characters,     and  `?'
  734.        matches    any  single character) which are compared against
  735.        the host name of the display device.  If the  entry  is    a
  736.        host   name,   all  comparisons    are  done  using  network
  737.        addresses, so any name which converts to the correct  net-
  738.        work  address  may  be used.  For patterns, only canonical
  739.        host names are used in the comparison, so ensure that  you
  740.        do  not attempt to match aliases.  Preceding either a host
  741.        name or a pattern with a `!' character causes hosts  which
  742.        match that entry to be excluded.
  743.  
  744.        An  Indirect  entry  also contains a host name or pattern,
  745.        but follows it with a list of  host  names  or  macros  to
  746.        which indirect queries should be sent.
  747.  
  748.        A  macro     definition  contains  a macro name and a list of
  749.        host names and other macros that the macro expands to.  To
  750.        distinguish  macros from hostnames, macro names start with
  751.        a `%' character.     Macros may be nested.
  752.  
  753.        Indirect entries may also specify to have _x_d_m run  _c_h_o_o_s_e_r
  754.        to  offer  a menu of hosts to connect to.  See the section
  755.        CChhoooosseerr.
  756.  
  757.        When checking access for a particular display  host,  each
  758.        entry  is  scanned  in  turn  and the first matching entry
  759.        determines the response.     Direct and Broadcast entries are
  760.        ignored    when  scanning    for  an     Indirect entry and vice-
  761.        versa.
  762.  
  763.        Blank lines are ignored,     `#'  is  treated  as  a  comment
  764.        delimiter causing the rest of that line to be ignored, and
  765.        `\_n_e_w_l_i_n_e' causes the  newline  to  be  ignored,     allowing
  766.        indirect host lists to span multiple lines.
  767.  
  768.        Here is an example Xaccess file:
  769.  
  770.        #
  771.        # Xaccess - XDMCP access control file
  772.        #
  773.  
  774.        #
  775.        # Direct/Broadcast query entries
  776.        #
  777.  
  778.        !xtra.lcs.mit.edu   # disallow direct/broadcast service for xtra
  779.        bambi.ogi.edu       # allow access from this particular display
  780.        *.lcs.mit.edu       # allow access from any display in LCS
  781.  
  782.        #
  783.        # Indirect query entries
  784.        #
  785.  
  786.        %HOSTS           expo.lcs.mit.edu xenon.lcs.mit.edu \
  787.  
  788.  
  789.  
  790. X Version 11           Release 6.1                   12
  791.  
  792.  
  793.  
  794.  
  795.  
  796. XDM(1)                               XDM(1)
  797.  
  798.  
  799.                excess.lcs.mit.edu kanga.lcs.mit.edu
  800.  
  801.        extract.lcs.mit.edu xenon.lcs.mit.edu   #force extract to contact xenon
  802.        !xtra.lcs.mit.edu   dummy           #disallow indirect access
  803.        *.lcs.mit.edu       %HOSTS           #all others get to choose
  804.  
  805. CCHHOOOOSSEERR
  806.        For X terminals that do not offer a host menu for use with
  807.        Broadcast or Indirect queries, the _c_h_o_o_s_e_r program can  do
  808.        this  for  them.     In the _X_a_c_c_e_s_s file, specify ``CHOOSER''
  809.        as the first entry in the  Indirect  host  list.      _C_h_o_o_s_e_r
  810.        will  send  a  Query request to each of the remaining host
  811.        names in the list and offer a menu of all the  hosts  that
  812.        respond.
  813.  
  814.        The  list  may consist of the word ``BROADCAST,'' in which
  815.        case _c_h_o_o_s_e_r will send a Broadcast instead, again offering
  816.        a menu of all hosts that respond.  Note that on some oper-
  817.        ating systems, UDP packets cannot be  broadcast,     so  this
  818.        feature will not work.
  819.  
  820.        Example _X_a_c_c_e_s_s file using _c_h_o_o_s_e_r:
  821.  
  822.        extract.lcs.mit.edu CHOOSER %HOSTS      #offer a menu of these hosts
  823.        xtra.lcs.mit.edu       CHOOSER BROADCAST   #offer a menu of all hosts
  824.  
  825.        The  program  to     use for _c_h_o_o_s_e_r is specified by the DDiiss--
  826.        ppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..cchhoooosseerr resource.  For more    flexibil-
  827.        ity  at    this  step,  the chooser could be a shell script.
  828.        _C_h_o_o_s_e_r is the session manager here; it is run instead  of
  829.        a child _x_d_m to manage the display.
  830.  
  831.        Resources  for this program can be put into the file named
  832.        by DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..rreessoouurrcceess.
  833.  
  834.        When the user selects a host, _c_h_o_o_s_e_r prints the host cho-
  835.        sen,  which  is    read  by  the parent _x_d_m, and exits.  _x_d_m
  836.        closes its connection to the  X    server,     and  the  server
  837.        resets  and  sends  another  IInnddiirreecctt  XDMCP request.  _x_d_m
  838.        remembers   the      user's    choice    (for    DDiissppllaayyMMaann--
  839.        aaggeerr..cchhooiicceeTTiimmeeoouutt  seconds)  and  forwards the request to
  840.        the chosen host, which starts a session on that display.
  841.  
  842. LLOOCCAALL SSEERRVVEERR SSPPEECCIIFFIICCAATTIIOONN
  843.        The resource DDiissppllaayyMMaannaaggeerr..sseerrvveerrss gives a server  speci-
  844.        fication     or,  if  the values starts with a slash (/), the
  845.        name of a file containing server specifications,     one  per
  846.        line.
  847.  
  848.        Each  specification  indicates a display which should con-
  849.        stantly be managed and which is    not  using  XDMCP.   This
  850.        method  is  used typically for local servers only.  If the
  851.        resource or the file named by the resource is  empty,  _x_d_m
  852.        will offer XDMCP service only.
  853.  
  854.  
  855.  
  856. X Version 11           Release 6.1                   13
  857.  
  858.  
  859.  
  860.  
  861.  
  862. XDM(1)                               XDM(1)
  863.  
  864.  
  865.        Each  specification  consists  of at least three parts:    a
  866.        display name, a display class, a display     type,    and  (for
  867.        local servers) a command line to start the server.  A typ-
  868.        ical entry for local display number 0 would be:
  869.  
  870.      :0 Digital-QV local /usr/X11R6/bin/X :0
  871.  
  872.        The display types are:
  873.  
  874.        local     local display: _x_d_m must run the server
  875.        foreign     remote display: _x_d_m opens an X connection to a running server
  876.  
  877.  
  878.        The display name must be something that can be  passed  in
  879.        the  --ddiissppllaayy option to an X program.  This string is used
  880.        to generate the display-specific     resource  names,  so  be
  881.        careful    to  match the names (e.g., use ``:0 Sun-CG3 local
  882.        /usr/X11R6/bin/X :0''  instead  of  ``localhost:0  Sun-CG3
  883.        local  /usr/X11R6/bin/X    :0''  if your other resources are
  884.        specified as ``DisplayManager._0.session'').  The  display
  885.        class   portion    is  also  used    in  the     display-specific
  886.        resources, as the class of the resource.     This  is  useful
  887.        if  you    have a large collection of similar displays (such
  888.        as a  corral  of     X  terminals)    and  would  like  to  set
  889.        resources  for groups of them.  When using XDMCP, the dis-
  890.        play is required to specify the display class, so the man-
  891.        ual  for     your  particular  X terminal should document the
  892.        display class string for your device.  If it doesn't,  you
  893.        can run _x_d_m in debug mode and look at the resource strings
  894.        which it generates for that device, which will include the
  895.        class string.
  896.  
  897.        When  _x_d_m  starts a session, it sets up authorization data
  898.        for the server.    For local  servers,  _x_d_m  passes  ``--aauutthh
  899.        _f_i_l_e_n_a_m_e'' on the server's command line to point it at its
  900.        authorization data.  For XDMCP  servers,     _x_d_m  passes  the
  901.        authorization  data  to    the  server  via the AAcccceepptt XDMCP
  902.        request.
  903.  
  904. RREESSOOUURRCCEESS FFIILLEE
  905.        The _X_r_e_s_o_u_r_c_e_s file  is    loaded    onto  the  display  as    a
  906.        resource     database using _x_r_d_b_.  As the authentication wid-
  907.        get reads this database before  starting     up,  it  usually
  908.        contains parameters for that widget:
  909.  
  910.         xlogin*login.translations: #override\
  911.          Ctrl<Key>R: abort-display()\n\
  912.          <Key>F1: set-session-argument(failsafe) finish-field()\n\
  913.          <Key>Return: set-session-argument() finish-field()
  914.         xlogin*borderWidth: 3
  915.         xlogin*greeting: CLIENTHOST
  916.         #ifdef COLOR
  917.         xlogin*greetColor: CadetBlue
  918.         xlogin*failColor: red
  919.  
  920.  
  921.  
  922. X Version 11           Release 6.1                   14
  923.  
  924.  
  925.  
  926.  
  927.  
  928. XDM(1)                               XDM(1)
  929.  
  930.  
  931.         #endif
  932.  
  933.  
  934.        Please note the translations entry; it specifies a few new
  935.        translations for the widget which allow    users  to  escape
  936.        from  the  default  session  (and  avoid troubles that may
  937.        occur in it).  Note that if #override  is  not  specified,
  938.        the  default  translations are removed and replaced by the
  939.        new value, not a very useful result as some of the default
  940.        translations  are  quite     useful (such as ``<Key>: insert-
  941.        char ()'' which responds to normal typing).
  942.  
  943.        This file may also contain resources for the setup program
  944.        and _c_h_o_o_s_e_r.
  945.  
  946. SSEETTUUPP PPRROOGGRRAAMM
  947.        The  _X_s_e_t_u_p  file  is  run  after the server is reset, but
  948.        before the Login window is offered.  The file is typically
  949.        a  shell     script.  It is run as root, so should be careful
  950.        about security.    This is the  place  to    change    the  root
  951.        background or bring up other windows that should appear on
  952.        the screen along with the Login widget.
  953.  
  954.        In addition to any specified by DDiissppllaayyMMaannaaggeerr..eexxppoorrttLLiisstt,
  955.        the following environment variables are passed:
  956.  
  957.         DISPLAY       the associated display name
  958.         PATH       the value of DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..ssyysstteemmPPaatthh
  959.         SHELL       the value of DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..ssyysstteemmSShheellll
  960.         XAUTHORITY       may be set to an authority file
  961.  
  962.        Note  that since _x_d_m grabs the keyboard, any other windows
  963.        will not be able to receive keyboard input.  They will  be
  964.        able to interact with the mouse, however; beware of poten-
  965.        tial    security       holes    here.      If     DDiissppllaayyMMaann--
  966.        aaggeerr.._D_I_S_P_L_A_Y..ggrraabbSSeerrvveerr is set, _X_s_e_t_u_p will not be able to
  967.        connect to the display at all.  Resources for this program
  968.        can   be      put    into   the   file  named  by  DDiissppllaayyMMaann--
  969.        aaggeerr.._D_I_S_P_L_A_Y..rreessoouurrcceess.
  970.  
  971.        Here is a sample _X_s_e_t_u_p script:
  972.  
  973.         #!/bin/sh
  974.         # Xsetup_0 - setup script for one workstation
  975.         xcmsdb < /usr/X11R6/lib/monitors/alex.0
  976.         xconsole -geometry 480x130-0-0 -notify -verbose -exitOnFail &
  977.  
  978.  
  979. AAUUTTHHEENNTTIICCAATTIIOONN WWIIDDGGEETT
  980.        The authentication widget reads a name/password pair  from
  981.        the  keyboard.    Nearly    every imaginable parameter can be
  982.        controlled with a resource.   Resources    for  this  widget
  983.        should    be   put  into    the  file  named  by  DDiissppllaayyMMaann--
  984.        aaggeerr.._D_I_S_P_L_A_Y..rreessoouurrcceess.     All  of  these     have  reasonable
  985.  
  986.  
  987.  
  988. X Version 11           Release 6.1                   15
  989.  
  990.  
  991.  
  992.  
  993.  
  994. XDM(1)                               XDM(1)
  995.  
  996.  
  997.        default    values,     so it is not necessary to specify any of
  998.        them.
  999.  
  1000.        xxllooggiinn..LLooggiinn..wwiiddtthh,,  xxllooggiinn..LLooggiinn..hheeiigghhtt,,  xxllooggiinn..LLooggiinn..xx,,
  1001.           xxlloo-- ggiinn..LLooggiinn..yy
  1002.           The geometry of the Login widget is  normally  com-
  1003.           puted  automatically.   If  you wish to position it
  1004.           elsewhere, specify each of these resources.
  1005.  
  1006.        xxllooggiinn..LLooggiinn..ffoorreeggrroouunndd
  1007.           The color used to display the typed-in user name.
  1008.  
  1009.        xxllooggiinn..LLooggiinn..ffoonntt
  1010.           The font used to display the typed-in user name.
  1011.  
  1012.        xxllooggiinn..LLooggiinn..ggrreeeettiinngg
  1013.           A string which identifies this window.  The default
  1014.           is ``X Window System.''
  1015.  
  1016.        xxllooggiinn..LLooggiinn..uunnsseeccuurreeGGrreeeettiinngg
  1017.           When X authorization is requested in the configura-
  1018.           tion file for this display and none is in use, this
  1019.           greeting     replaces  the    standard  greeting.   The
  1020.           default is ``This is an unsecure session''
  1021.  
  1022.        xxllooggiinn..LLooggiinn..ggrreeeettFFoonntt
  1023.           The font used to display the greeting.
  1024.  
  1025.        xxllooggiinn..LLooggiinn..ggrreeeettCCoolloorr
  1026.           The color used to display the greeting.
  1027.  
  1028.        xxllooggiinn..LLooggiinn..nnaammeePPrroommpptt
  1029.           The string displayed to prompt  for  a  user  name.
  1030.           _X_r_d_b strips trailing white space from resource val-
  1031.           ues, so to add spaces at    the  end  of  the  prompt
  1032.           (usually    a  nice     thing),  add spaces escaped with
  1033.           backslashes.  The default is ``Login:  ''
  1034.  
  1035.        xxllooggiinn..LLooggiinn..ppaasssswwddPPrroommpptt
  1036.           The string displayed to prompt for a password.  The
  1037.           default is ``Password:  ''
  1038.  
  1039.        xxllooggiinn..LLooggiinn..pprroommppttFFoonntt
  1040.           The font used to display both prompts.
  1041.  
  1042.        xxllooggiinn..LLooggiinn..pprroommppttCCoolloorr
  1043.           The color used to display both prompts.
  1044.  
  1045.        xxllooggiinn..LLooggiinn..ffaaiill
  1046.           A     message  which is displayed when the authentica-
  1047.           tion fails.  The default is ``Login incorrect''
  1048.  
  1049.        xxllooggiinn..LLooggiinn..ffaaiillFFoonntt
  1050.           The font used to display the failure message.
  1051.  
  1052.  
  1053.  
  1054. X Version 11           Release 6.1                   16
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060. XDM(1)                               XDM(1)
  1061.  
  1062.  
  1063.        xxllooggiinn..LLooggiinn..ffaaiillCCoolloorr
  1064.           The color used to display the failure message.
  1065.  
  1066.        xxllooggiinn..LLooggiinn..ffaaiillTTiimmeeoouutt
  1067.           The number of seconds that the failure  message  is
  1068.           displayed.  The default is 30.
  1069.  
  1070.        xxllooggiinn..LLooggiinn..ttrraannssllaattiioonnss
  1071.           This  specifies the translations used for the login
  1072.           widget.  Refer to the X Toolkit documentation for a
  1073.           complete    discussion  on translations.  The default
  1074.           translation table is:
  1075.  
  1076.            Ctrl<Key>H:      delete-previous-character() \n\
  1077.            Ctrl<Key>D:      delete-character() \n\
  1078.            Ctrl<Key>B:      move-backward-character() \n\
  1079.            Ctrl<Key>F:      move-forward-character() \n\
  1080.            Ctrl<Key>A:      move-to-begining() \n\
  1081.            Ctrl<Key>E:      move-to-end() \n\
  1082.            Ctrl<Key>K:      erase-to-end-of-line() \n\
  1083.            Ctrl<Key>U:      erase-line() \n\
  1084.            Ctrl<Key>X:      erase-line() \n\
  1085.            Ctrl<Key>C:      restart-session() \n\
  1086.            Ctrl<Key>\\:      abort-session() \n\
  1087.            <Key>BackSpace:delete-previous-character() \n\
  1088.            <Key>Delete:      delete-previous-character() \n\
  1089.            <Key>Return:      finish-field() \n\
  1090.            <Key>:      insert-char() \
  1091.  
  1092.  
  1093.        The actions which are supported by the widget are:
  1094.  
  1095.        delete-previous-character
  1096.           Erases the character before the cursor.
  1097.  
  1098.        delete-character
  1099.           Erases the character after the cursor.
  1100.  
  1101.        move-backward-character
  1102.           Moves the cursor backward.
  1103.  
  1104.        move-forward-character
  1105.           Moves the cursor forward.
  1106.  
  1107.        move-to-begining
  1108.           (Apologies about the spelling  error.)   Moves  the
  1109.           cursor to the beginning of the editable text.
  1110.  
  1111.        move-to-end
  1112.           Moves the cursor to the end of the editable text.
  1113.  
  1114.        erase-to-end-of-line
  1115.           Erases all text after the cursor.
  1116.  
  1117.  
  1118.  
  1119.  
  1120. X Version 11           Release 6.1                   17
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126. XDM(1)                               XDM(1)
  1127.  
  1128.  
  1129.        erase-line
  1130.           Erases the entire text.
  1131.  
  1132.        finish-field
  1133.           If the cursor is in the name field, proceeds to the
  1134.           password field; if the cursor is    in  the     password
  1135.           field,  checks  the current name/password pair.  If
  1136.           the name/password pair is     valid,     _x_d_m  starts  the
  1137.           session.     Otherwise  the     failure  message is dis-
  1138.           played and the user is prompted again.
  1139.  
  1140.        abort-session
  1141.           Terminates and restarts the server.
  1142.  
  1143.        abort-display
  1144.           Terminates the server, disabling it.   This  action
  1145.           is  not  accessible  in  the default configuration.
  1146.           There are various reasons to stop _x_d_m on    a  system
  1147.           console,    such  as  when    shutting the system down,
  1148.           when using  _x_d_m_s_h_e_l_l,  to     start    another     type  of
  1149.           server,  or to generally access the console.  Send-
  1150.           ing _x_d_m a SIGHUP will restart the display.  See the
  1151.           section CCoonnttrroolllliinngg XXDDMM.
  1152.  
  1153.        restart-session
  1154.           Resets the X server and starts a new session.  This
  1155.           can be used when the resources  have  been  changed
  1156.           and  you    want  to test them or when the screen has
  1157.           been overwritten with system messages.
  1158.  
  1159.        insert-char
  1160.           Inserts the character typed.
  1161.  
  1162.        set-session-argument
  1163.           Specifies a single word argument which is passed to
  1164.           the  session  at    startup.  See the section SSeessssiioonn
  1165.           PPrrooggrraamm.
  1166.  
  1167.        allow-all-access
  1168.           Disables access control in the server.  This can be
  1169.           used when the .Xauthority file cannot be created by
  1170.           _x_d_m_.  Be very careful using this; it might be  bet-
  1171.           ter  to  disconnect  the    machine     from the network
  1172.           before doing this.
  1173.  
  1174. SSTTAARRTTUUPP PPRROOGGRRAAMM
  1175.        The _X_s_t_a_r_t_u_p program is run as root when the user logs in.
  1176.        It  is typically a shell script.     Since it is run as root,
  1177.        _X_s_t_a_r_t_u_p should be very careful about security.     This  is
  1178.        the  place  to put commands which add entries to _/_e_t_c_/_u_t_m_p
  1179.        (the _s_e_s_s_r_e_g program may be  useful  here),  mount  users'
  1180.        home  directories  from file servers, or abort the session
  1181.        if logins are not allowed.
  1182.  
  1183.  
  1184.  
  1185.  
  1186. X Version 11           Release 6.1                   18
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192. XDM(1)                               XDM(1)
  1193.  
  1194.  
  1195.        In addition to any specified by DDiissppllaayyMMaannaaggeerr..eexxppoorrttLLiisstt,
  1196.        the following environment variables are passed:
  1197.  
  1198.         DISPLAY       the associated display name
  1199.         HOME       the initial working directory of the user
  1200.         USER       the user name
  1201.         PATH       the value of DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..ssyysstteemmPPaatthh
  1202.         SHELL       the value of DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..ssyysstteemmSShheellll
  1203.         XAUTHORITY       may be set to an authority file
  1204.  
  1205.  
  1206.        No  arguments  are  passed to the script.  _X_d_m waits until
  1207.        this script exits before starting the  user  session.   If
  1208.        the  exit value of this script is non-zero, _x_d_m discontin-
  1209.        ues the session and starts another authentication cycle.
  1210.  
  1211.        The sample _X_s_t_a_r_t_u_p file shown here prevents  login  while
  1212.        the file _/_e_t_c_/_n_o_l_o_g_i_n exists.  Thus this is not a complete
  1213.        example, but simply a demonstration of the available func-
  1214.        tionality.
  1215.  
  1216.        Here is a sample _X_s_t_a_r_t_u_p script:
  1217.  
  1218.         #!/bin/sh
  1219.         #
  1220.         # Xstartup
  1221.         #
  1222.         # This program is run as root after the user is verified
  1223.         #
  1224.         if [ -f /etc/nologin ]; then
  1225.          xmessage -file /etc/nologin -timeout 30 -center
  1226.          exit 1
  1227.         fi
  1228.         sessreg -a -l $DISPLAY -x /usr/X11R6/lib/xdm/Xservers $USER
  1229.         /usr/X11R6/lib/xdm/GiveConsole
  1230.         exit 0
  1231.  
  1232. SSEESSSSIIOONN PPRROOGGRRAAMM
  1233.        The  _X_s_e_s_s_i_o_n  program  is the command which is run as the
  1234.        user's session.    It is run with    the  permissions  of  the
  1235.        authorized user.
  1236.  
  1237.        In addition to any specified by DDiissppllaayyMMaannaaggeerr..eexxppoorrttLLiisstt,
  1238.        the following environment variables are passed:
  1239.  
  1240.         DISPLAY       the associated display name
  1241.         HOME       the initial working directory of the user
  1242.         USER       the user name
  1243.         PATH       the value of DDiissppllaayyMMaannaaggeerr.._D_I_S_P_L_A_Y..uusseerrPPaatthh
  1244.         SHELL       the user's default shell (from _g_e_t_p_w_n_a_m)
  1245.         XAUTHORITY       may be set to a non-standard authority file
  1246.         KRB5CCNAME       may be set to a Kerberos credentials cache name
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252. X Version 11           Release 6.1                   19
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258. XDM(1)                               XDM(1)
  1259.  
  1260.  
  1261.        At most installations, _X_s_e_s_s_i_o_n should look in $HOME for a
  1262.        file  _._x_s_e_s_s_i_o_n_,     which    contains  commands that each user
  1263.        would like to use as  a    session.   _X_s_e_s_s_i_o_n  should  also
  1264.        implement  a  system  default session if no user-specified
  1265.        session exists.    See the section TTyyppiiccaall UUssaaggee.
  1266.  
  1267.        An argument may be passed to this program from the authen-
  1268.        tication     widget     using the `set-session-argument' action.
  1269.        This can be used to select different  styles  of     session.
  1270.        One  good  use  of  this     feature  is to allow the user to
  1271.        escape from the ordinary     session  when    it  fails.   This
  1272.        allows  users  to  repair their own _._x_s_e_s_s_i_o_n if it fails,
  1273.        without requiring administrative intervention.  The  exam-
  1274.        ple following demonstrates this feature.
  1275.  
  1276.        This  example  recognizes  the  special ``failsafe'' mode,
  1277.        specified in the translations in the _X_r_e_s_o_u_r_c_e_s    file,  to
  1278.        provide    an  escape  from  the  ordinary session.  It also
  1279.        requires that the .xsession file be executable so we don't
  1280.        have to guess what shell it wants to use.
  1281.  
  1282.         #!/bin/sh
  1283.         #
  1284.         # Xsession
  1285.         #
  1286.         # This is the program that is run as the client
  1287.         # for the display manager.
  1288.  
  1289.         case $# in
  1290.         1)
  1291.          case $1 in
  1292.          failsafe)
  1293.               exec xterm -geometry 80x24-0-0
  1294.               ;;
  1295.          esac
  1296.         esac
  1297.  
  1298.         startup=$HOME/.xsession
  1299.         resources=$HOME/.Xresources
  1300.  
  1301.         if [ -f "$startup" ]; then
  1302.          exec "$startup"
  1303.         else
  1304.          if [ -f "$resources" ]; then
  1305.               xrdb -load "$resources"
  1306.          fi
  1307.          twm &
  1308.          xman -geometry +10-10 &
  1309.          exec xterm -geometry 80x24+10+10 -ls
  1310.         fi
  1311.  
  1312.  
  1313.        The  user's  _._x_s_e_s_s_i_o_n file might look something like this
  1314.        example.     Don't forget that the    file  must  have  execute
  1315.  
  1316.  
  1317.  
  1318. X Version 11           Release 6.1                   20
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324. XDM(1)                               XDM(1)
  1325.  
  1326.  
  1327.        permission.
  1328.         #! /bin/csh
  1329.         # no -f in the previous line so .cshrc gets run to set $PATH
  1330.         twm &
  1331.         xrdb -merge "$HOME/.Xresources"
  1332.         emacs -geometry +0+50 &
  1333.         xbiff -geometry -430+5 &
  1334.         xterm -geometry -0+50 -ls
  1335.  
  1336. RREESSEETT PPRROOGGRRAAMM
  1337.        Symmetrical  with _X_s_t_a_r_t_u_p, the _X_r_e_s_e_t script is run after
  1338.        the user session has terminated.     Run as root,  it  should
  1339.        contain    commands  that    undo  the  effects of commands in
  1340.        _X_s_t_a_r_t_u_p_, removing entries from    _/_e_t_c_/_u_t_m_p  or  unmounting
  1341.        directories  from file servers.    The environment variables
  1342.        that were passed to _X_s_t_a_r_t_u_p are also passed to _X_r_e_s_e_t.
  1343.  
  1344.        A sample _X_r_e_s_e_t script:
  1345.         #!/bin/sh
  1346.         #
  1347.         # Xreset
  1348.         #
  1349.         # This program is run as root after the session ends
  1350.         #
  1351.         sessreg -d -l $DISPLAY -x /usr/X11R6/lib/xdm/Xservers $USER
  1352.         /usr/X11R6/lib/xdm/TakeConsole
  1353.         exit 0
  1354.  
  1355. CCOONNTTRROOLLLLIINNGG TTHHEE SSEERRVVEERR
  1356.        _X_d_m controls local servers using POSIX signals.    SIGHUP is
  1357.        expected     to  reset the server, closing all client connec-
  1358.        tions and performing other  cleanup  duties.   SIGTERM  is
  1359.        expected to terminate the server.  If these signals do not
  1360.        perform the expected actions,  the  resources  DDiissppllaayyMMaann--
  1361.        aaggeerr.._D_I_S_P_L_A_Y..rreesseettSSiiggnnaall         and          DDiissppllaayyMMaann--
  1362.        aaggeerr.._D_I_S_P_L_A_Y..tteerrmmSSiiggnnaall can specify alternate signals.
  1363.  
  1364.        To control remote terminals not using XDMCP, _x_d_m     searches
  1365.        the  window hierarchy on the display and uses the protocol
  1366.        request KillClient in an attempt to clean up the     terminal
  1367.        for  the     next session.    This may not actually kill all of
  1368.        the clients, as only those which have created windows will
  1369.        be  noticed.   XDMCP  provides a more sure mechanism; when
  1370.        _x_d_m closes its initial connection, the session is over and
  1371.        the terminal is required to close all other connections.
  1372.  
  1373. CCOONNTTRROOLLLLIINNGG XXDDMM
  1374.        _X_d_m  responds  to  two  signals: SIGHUP and SIGTERM.  When
  1375.        sent a SIGHUP, _x_d_m rereads  the    configuration  file,  the
  1376.        access  control    file,  and  the     servers  file.      For the
  1377.        servers file, it notices if entries  have  been    added  or
  1378.        removed.     If a new entry has been added, _x_d_m starts a ses-
  1379.        sion on the associated display.    Entries which  have  been
  1380.        removed are disabled immediately, meaning that any session
  1381.  
  1382.  
  1383.  
  1384. X Version 11           Release 6.1                   21
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390. XDM(1)                               XDM(1)
  1391.  
  1392.  
  1393.        in progress will be terminated without notice and  no  new
  1394.        session will be started.
  1395.  
  1396.        When  sent  a  SIGTERM,    _x_d_m  terminates     all  sessions in
  1397.        progress and exits.  This can be used when  shutting  down
  1398.        the system.
  1399.  
  1400.        _X_d_m  attempts  to mark its various sub-processes for _p_s(1)
  1401.        by editing  the    command     line  argument     list  in  place.
  1402.        Because _x_d_m can't allocate additional space for this task,
  1403.        it is useful to start _x_d_m with a reasonably  long  command
  1404.        line  (using  the  full path name should be enough).  Each
  1405.        process which is servicing a display is marked --_d_i_s_p_l_a_y_.
  1406.  
  1407. AADDDDIITTIIOONNAALL LLOOCCAALL DDIISSPPLLAAYYSS
  1408.        To add an additional local display, add a line for  it  to
  1409.        the _X_s_e_r_v_e_r_s file.  (See the section LLooccaall SSeerrvveerr SSppeecciiffii--
  1410.        ccaattiioonn.)
  1411.  
  1412.        Examine    the  display-specific  resources  in   _x_d_m_-_c_o_n_f_i_g
  1413.        (e.g.,  DDiissppllaayyMMaannaaggeerr..__00..aauutthhoorriizzee) and consider which of
  1414.        them should be copied for the new  display.   The  default
  1415.        _x_d_m_-_c_o_n_f_i_g  has    all the appropriate lines for displays ::00
  1416.        and ::11.
  1417.  
  1418. OOTTHHEERR PPOOSSSSIIBBIILLIITTIIEESS
  1419.        You can use _x_d_m to run a single session at a  time,  using
  1420.        the  4.3 _i_n_i_t options or other suitable daemon by specify-
  1421.        ing the server on the command line:
  1422.  
  1423.         xdm -server ":0 SUN-3/60CG4 local /usr/X11R6/bin/X :0"
  1424.  
  1425.  
  1426.        Or, you might have a file server and  a    collection  of    X
  1427.        terminals.  The configuration for this is identical to the
  1428.        sample above, except the _X_s_e_r_v_e_r_s file would look like
  1429.  
  1430.         extol:0 VISUAL-19 foreign
  1431.         exalt:0 NCD-19 foreign
  1432.         explode:0 NCR-TOWERVIEW3000 foreign
  1433.  
  1434.  
  1435.        This directs _x_d_m to manage sessions on all three of  these
  1436.        terminals.  See the section CCoonnttrroolllliinngg XXddmm for a descrip-
  1437.        tion of using signals to enable and disable  these  termi-
  1438.        nals in a manner reminiscent of _i_n_i_t(8).
  1439.  
  1440. LLIIMMIITTAATTIIOONNSS
  1441.        One  thing that _x_d_m isn't very good at doing is coexisting
  1442.        with other window systems.  To use multiple window systems
  1443.        on  the    same hardware, you'll probably be more interested
  1444.        in _x_i_n_i_t_.
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450. X Version 11           Release 6.1                   22
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456. XDM(1)                               XDM(1)
  1457.  
  1458.  
  1459. FFIILLEESS
  1460.        _<_X_R_o_o_t_>_/_l_i_b_/_X_1_1_/_x_d_m_/_x_d_m_-_c_o_n_f_i_g
  1461.                the default configuration file
  1462.  
  1463.        _$_H_O_M_E_/_._X_a_u_t_h_o_r_i_t_y   user     authorization    file  where   _x_d_m
  1464.                stores keys for clients to read
  1465.  
  1466.        _<_X_R_o_o_t_>_/_l_i_b_/_X_1_1_/_x_d_m_/_c_h_o_o_s_e_r
  1467.                the default chooser
  1468.  
  1469.        _<_X_R_o_o_t_>_/_b_i_n_/_x_r_d_b       the default resource database loader
  1470.  
  1471.        _<_X_R_o_o_t_>_/_b_i_n_/_X       the default server
  1472.  
  1473.        _<_X_R_o_o_t_>_/_b_i_n_/_x_t_e_r_m   the    default session program and fail-
  1474.                safe client
  1475.  
  1476.        _<_X_R_o_o_t_>_/_l_i_b_/_X_1_1_/_x_d_m_/_A_<_d_i_s_p_l_a_y_>_-_<_s_u_f_f_i_x_>
  1477.                the default    place  for  authorization
  1478.                files
  1479.  
  1480.        _/_t_m_p_/_K_5_C_<_d_i_s_p_l_a_y_>   Kerberos credentials cache
  1481.  
  1482.        Note:  <XRoot> refers to the root of the X11 install tree.
  1483.  
  1484. SSEEEE AALLSSOO
  1485.        _X(1),  _x_i_n_i_t(1),      _x_a_u_t_h(1),   _X_s_e_c_u_r_i_t_y(1),   _s_e_s_s_r_e_g(1),
  1486.        _X_s_e_r_v_e_r(1),
  1487.        _X _D_i_s_p_l_a_y _M_a_n_a_g_e_r _C_o_n_t_r_o_l _P_r_o_t_o_c_o_l
  1488.  
  1489. AAUUTTHHOORR
  1490.        Keith Packard, MIT X Consortium
  1491.  
  1492.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497.  
  1498.  
  1499.  
  1500.  
  1501.  
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514.  
  1515.  
  1516. X Version 11           Release 6.1                   23
  1517.  
  1518.  
  1519.