diff options
author | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2015-12-24 15:52:43 +0000 |
---|---|---|
committer | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2015-12-24 15:52:43 +0000 |
commit | 6a664de8c8d6b8002fc17d27a9b689d7ae23420e (patch) | |
tree | 0ccf3616e257edc7de4c9133cef11f1387652e9a /app | |
parent | 8622ee28814f5399b1f8cbcd371aadf106e75bdb (diff) |
Remove unused file.
Diffstat (limited to 'app')
-rw-r--r-- | app/xdm/xdm.man.cpp | 1450 |
1 files changed, 0 insertions, 1450 deletions
diff --git a/app/xdm/xdm.man.cpp b/app/xdm/xdm.man.cpp deleted file mode 100644 index ef12677ff..000000000 --- a/app/xdm/xdm.man.cpp +++ /dev/null @@ -1,1450 +0,0 @@ -.\" Copyright 1988, 1994, 1998 The Open Group -.\" -.\" Permission to use, copy, modify, distribute, and sell this software and its -.\" documentation for any purpose is hereby granted without fee, provided that -.\" the above copyright notice appear in all copies and that both that -.\" copyright notice and this permission notice appear in supporting -.\" documentation. -.\" -.\" The above copyright notice and this permission notice shall be included -.\" in all copies or substantial portions of the Software. -.\" -.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -.\" IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR -.\" OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -.\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -.\" OTHER DEALINGS IN THE SOFTWARE. -.\" -.\" Except as contained in this notice, the name of The Open Group shall -.\" not be used in advertising or otherwise to promote the sale, use or -.\" other dealings in this Software without prior written authorization -.\" from The Open Group. -.\" -.\" -.TH XDM 1 __xorgversion__ -.SH NAME -xdm \- X Display Manager with support for XDMCP, host chooser -.SH SYNOPSIS -.B xdm -[ -.B \-config -.I configuration_file -] [ -.B \-nodaemon -] [ -.B \-debug -.I debug_level -] [ -.B \-error -.I error_log_file -] [ -.B \-resources -.I resource_file -] [ -.B \-server -.I server_entry -] [ -.B \-session -.I session_program -] -.SH DESCRIPTION -.I Xdm -manages a collection of X displays, which may be on the local host -or remote servers. The design of -.I xdm -was guided by the needs of X terminals as well as The Open Group standard -XDMCP, the \fIX Display Manager Control Protocol\fP. -.I Xdm -provides services similar to those provided by \fIinit\fP, \fIgetty\fP -and \fIlogin\fP on character terminals: prompting for login name and password, -authenticating the user, and running a ``session.'' -.PP -A ``session'' is defined by the lifetime of a particular process; in the -traditional character-based terminal world, it is the user's login shell. -In the -.I xdm -context, it is an arbitrary session manager. This is because in a windowing -environment, a user's login shell process does not necessarily have any -terminal-like interface with which to connect. -When a real session manager is not available, a window manager or terminal -emulator is typically used as the ``session manager,'' meaning that -termination of this process terminates the user's session. -.PP -When the session is terminated, \fIxdm\fP -resets the X server and (optionally) restarts the whole process. -.PP -When \fIxdm\fP receives an Indirect query via XDMCP, it can run a -\fIchooser\fP process to -perform an XDMCP BroadcastQuery (or an XDMCP Query to specified hosts) -on behalf of the display and -offer a menu of possible hosts that offer XDMCP display management. -This feature is useful with X terminals that do not offer a host -menu themselves. -.PP -.I Xdm -can be configured to ignore BroadcastQuery messages from selected hosts. -This is useful when you don't want the host to appear in menus produced -by -.I chooser -or X terminals themselves. -.PP -Because -.I xdm -provides the first interface that users will see, it is designed to be -simple to use and easy to customize to the needs of a particular site. -.I Xdm -has many options, most of which have reasonable defaults. Browse through the -various sections of this manual, -picking and choosing the things you want to change. -Pay particular attention to the -.B "Session Program" -section, which will describe how to -set up the style of session desired. -.SH "OVERVIEW" -\fIxdm\fP is highly configurable, and most of its behavior can be -controlled by resource files and shell scripts. The names of these -files themselves are resources read from the file \fIxdm-config\fP or -the file named by the \fB\-config\fP option. -.PP -\fIxdm\fP offers display management two different ways. It can manage -X servers running on the local machine and specified in -\fIXservers\fP, and it can manage remote X servers (typically X -terminals) using XDMCP (the XDM Control Protocol) -as specified in the \fIXaccess\fP file. -.PP -The resources of the X clients run by \fIxdm\fP outside the user's -session, including \fIxdm\fP's own login window, can be -affected by setting resources in the \fIXresources\fP file. -.PP -For X terminals that do not offer a menu of hosts to get display -management from, \fIxdm\fP can collect willing hosts and run the -\fIchooser\fP program to offer the user a menu. -For X displays attached to a host, this step is typically not used, as -the local host does the display management. -.PP -After resetting the X server, \fIxdm\fP runs the \fIXsetup\fP script -to assist in setting up the screen the user sees along with the -\fIxlogin\fP widget. -.PP -The \fIxlogin\fP widget, which \fIxdm\fP presents, -offers the familiar login and password prompts. -.PP -After the user logs in, \fIxdm\fP runs the \fIXstartup\fP script as -root. -.PP -Then \fIxdm\fP runs the \fIXsession\fP script as the user. This -system session file may do some additional startup and typically runs -the \fI.xsession\fP script in the user's home directory. -When the \fIXsession\fP script exits, the session is over. -.PP -At the end of the session, the \fIXreset\fP script is run to clean up, -the X server is reset, and the cycle starts over. -.PP -The file \fI XDMLOGDIR/xdm.log\fP will contain error -messages from -.I xdm -and anything output to stderr by \fIXsetup, Xstartup, Xsession\fP -or \fIXreset\fP. -When you have trouble getting -.I xdm -working, check this file to see if -.I xdm -has any clues to the trouble. -.SH OPTIONS -.PP -All of these options, except \fB\-config\fP itself, -specify values that can also be specified in the configuration file -as resources. -.IP "\fB\-config\fP \fIconfiguration_file\fP" -Names the configuration file, which specifies resources to control -the behavior of -.I xdm. -.I XDMDIR/xdm-config -is the default. -See the section \fBConfiguration File\fP. -.IP "\fB\-nodaemon\fP" -Specifies ``false'' as the value for the \fBDisplayManager.daemonMode\fP -resource. -This suppresses the normal daemon behavior, which is for -.I xdm -to close all file descriptors, disassociate itself from -the controlling terminal, and put -itself in the background when it first starts up. -.IP "\fB\-debug\fP \fIdebug_level\fP" -Specifies the numeric value for the \fBDisplayManager.debugLevel\fP -resource. A non-zero value causes -.I xdm -to print lots of debugging statements to the terminal; it also disables the -\fBDisplayManager.daemonMode\fP resource, forcing -.I xdm -to run synchronously. To interpret these debugging messages, a copy -of the source code for -.I xdm -is almost a necessity. No attempt has been -made to rationalize or standardize the output. -.IP "\fB\-error\fP \fIerror_log_file\fP" -Specifies the value for the \fBDisplayManager.errorLogFile\fP resource. -This file contains errors from -.I xdm -as well as anything written to stderr by the various scripts and programs -run during the progress of the session. -.IP "\fB\-resources\fP \fIresource_file\fP" -Specifies the value for the \fBDisplayManager*resources\fP resource. This file -is loaded using -.IR xrdb (__appmansuffix__) -to specify configuration parameters for the -authentication widget. -.IP "\fB\-server\fP \fIserver_entry\fP" -Specifies the value for the \fBDisplayManager.servers\fP resource. -See the section -.B "Local Server Specification" -for a description of this resource. -.IP "\fB\-udpPort\fP \fIport_number\fP" -Specifies the value for the \fBDisplayManager.requestPort\fP resource. This -sets the port-number which -.I xdm -will monitor for XDMCP requests. If set to 0, xdm will not listen -for XDMCP or Chooser requests. As XDMCP uses the registered well-known -UDP port 177, this resource should not be changed to a value other than 0, -except for debugging. -.IP "\fB\-session\fP \fIsession_program\fP" -Specifies the value for the \fBDisplayManager*session\fP resource. This -indicates the program to run as the session after the user has logged in. -.IP "\fB\-xrm\fP \fIresource_specification\fP" -Allows an arbitrary resource to be specified, as in most -X Toolkit applications. -.SH RESOURCES -At many stages the actions of -.I xdm -can be controlled through the use of its configuration file, which is in the -X resource format. -Some resources modify the behavior of -.I xdm -on all displays, -while others modify its behavior on a single display. Where actions relate -to a specific display, -the display name is inserted into the resource name between -``DisplayManager'' and the final resource name segment. -.PP -For local displays, the resource name and class are as read from the -\fIXservers\fP file. -.PP -For remote displays, the resource name is what the network address of -the display resolves to. See the \fBremoveDomain\fP resource. The -name must match exactly; \fIxdm\fP is not aware of -all the network aliases that might reach a given display. -If the name resolve fails, the address is -used. The resource class is as sent by the display in the XDMCP -Manage request. -.PP -Because the resource -manager uses colons to separate the name of the resource from its value and -dots to separate resource name parts, -.I xdm -substitutes underscores for both dots and colons when generating the resource -name. -For example, \fBDisplayManager.expo_x_org_0.startup\fP is the name of the -resource which defines the startup shell file for the ``expo.x.org:0'' display. -.\" -.IP "\fBDisplayManager.servers\fP" -This resource either specifies a file name full of server entries, one per -line (if the value starts with a slash), or a single server entry. -See the section \fBLocal Server Specification\fP for the details. -.IP "\fBDisplayManager.requestPort\fP" -This indicates the UDP port number which -.I xdm -uses to listen for incoming XDMCP requests. Unless you need to debug the -system, leave this with its default value of 177. -.IP "\fBDisplayManager.errorLogFile\fP" -Error output is normally directed at the system console. To redirect it, -set this resource to a file name. A method to send these messages to -.I syslog -should be developed for systems which support it; however, the -wide variety of interfaces precludes any system-independent -implementation. This file also contains any output directed to stderr -by the \fIXsetup, Xstartup, Xsession\fP and \fIXreset\fP files, -so it will contain descriptions -of problems in those scripts as well. -.IP "\fBDisplayManager.debugLevel\fP" -If the integer value of this resource is greater than zero, -reams of -debugging information will be printed. It also disables daemon mode, which -would redirect the information into the bit-bucket, and -allows non-root users to run -.I xdm, -which would normally not be useful. -.IP "\fBDisplayManager.daemonMode\fP" -Normally, -.I xdm -attempts to make itself into a daemon process unassociated with any terminal. -This is -accomplished by forking and leaving the parent process to exit, then closing -file descriptors and releasing the controlling terminal. In some -environments this is not desired (in particular, when debugging). Setting -this resource to ``false'' will disable this feature. -.IP "\fBDisplayManager.pidFile\fP" -The filename specified will be created to contain an ASCII -representation of the process-id of the main -.I xdm -process. -.I Xdm -also uses file locking on this file -to attempt to eliminate multiple daemons running on -the same machine, which would cause quite a bit of havoc. -.IP "\fBDisplayManager.lockPidFile\fP" -This is the resource which controls whether -.I xdm -uses file locking to keep multiple display managers from running amok. -On System V, this -uses the \fIlockf\fP library call, while on BSD it uses \fIflock.\fP -.IP "\fBDisplayManager.authDir\fP" -This names a directory under which -.I xdm -stores authorization files while initializing the session. The -default value is \fI XDMXAUTHDIR.\fP -Can be overridden for specific displays by -DisplayManager.\fIDISPLAY\fP.authFile. -.IP \fBDisplayManager.autoRescan\fP -This boolean controls whether -.I xdm -rescans the configuration, servers, access control and authentication keys -files after a session terminates and the files have changed. By default it -is ``true.'' You can force -.I xdm -to reread these files by sending a SIGHUP to the main process. -.IP "\fBDisplayManager.removeDomainname\fP" -When computing the display name for XDMCP clients, the name resolver will -typically create a fully qualified host name for the terminal. As this is -sometimes confusing, -.I xdm -will remove the domain name portion of the host name if it is the same as the -domain name of the local host when this variable is set. By default the -value is ``true.'' -.IP "\fBDisplayManager.keyFile\fP" -XDM-AUTHENTICATION-1 style XDMCP authentication requires that a private key -be shared between -.I xdm -and the terminal. This resource specifies the file containing those -values. Each entry in the file consists of a display name and the shared -key. By default, -.I xdm -does not include support for XDM-AUTHENTICATION-1, as it requires DES which -is not generally distributable because of United States export restrictions. -.IP \fBDisplayManager.accessFile\fP -To prevent unauthorized XDMCP service and to allow forwarding of XDMCP -IndirectQuery requests, this file contains a database of hostnames which are -either allowed direct access to this machine, or have a list of hosts to -which queries should be forwarded to. The format of this file is described -in the section -.B "XDMCP Access Control." -.IP \fBDisplayManager.exportList\fP -A list of additional environment variables, separated by white space, -to pass on to the \fIXsetup\fP, -\fIXstartup\fP, \fIXsession\fP, and \fIXreset\fP programs. -.IP \fBDisplayManager.randomFile\fP -A file to checksum to generate the seed of authorization keys. -This should be a file that changes frequently. -The default is \fI/dev/mem\fP. -#ifdef DEV_RANDOM -.IP \fBDisplayManager.randomDevice\fP -A file to read 8 bytes from to generate the seed of authorization keys. -The default is \fI DEV_RANDOM \fP. If this file cannot be read, or if a -read blocks for more than 5 seconds, xdm falls back to using a checksum -of \fBDisplayManager.randomFile\fP to generate the seed. -#endif -#if !defined(ARC4_RANDOM) -.IP \fBDisplayManager.prngdSocket\fP -.IP \fBDisplayManager.prngPort\fP -A UNIX domain socket name or a TCP socket port number on local host on -which a Pseudo-Random Number Generator Daemon, like EGD -(http://egd.sourceforge.net) is listening, in order to generate the -autorization keys. Either a non null port or a valid socket name must -be specified. The default is to use the Unix-domain socket -\fI/tmp/entropy\fP. -.PP -On systems that don't have such a daemon, a fall-back entropy -gathering system, based on various log file contents hashed by the MD5 -algorithm is used instead. -#endif -.IP \fBDisplayManager.greeterLib\fP -On systems that support a dynamically-loadable greeter library, the -name of the library. The default is -\fI XDMDIR/libXdmGreet.so\fP. -.IP \fBDisplayManager.choiceTimeout\fP -Number of seconds to wait for display to respond after user has -selected a host from the chooser. If the display sends an XDMCP -IndirectQuery within this time, the request is forwarded to the chosen -host. Otherwise, it is assumed to be from a new session and the -chooser is offered again. -Default is 15. -.IP \fBDisplayManager.sourceAddress\fP -Use the numeric IP address of the incoming connection on multihomed hosts -instead of the host name. This is to avoid trying to connect on the wrong -interface which might be down at this time. -.IP \fBDisplayManager.willing\fP -This specifies a program which is run (as) root when an an XDMCP -BroadcastQuery is received and this host is configured to offer XDMCP -display management. The output of this program may be displayed on a chooser -window. If no program is specified, the string \fIWilling to manage\fP is -sent. -.PP -.\" -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.resources\fP" -This resource specifies the name of the file to be loaded by \fIxrdb\fP -as the resource database onto the root window of screen 0 of the display. -The \fIXsetup\fP program, the Login widget, and \fIchooser\fP will use -the resources set in this file. -This resource data base is loaded just before the authentication procedure -is started, so it can control the appearance of the login window. See the -section -.B "Authentication Widget," -which describes the various -resources that are appropriate to place in this file. -There is no default value for this resource, but -\fI XDMDIR/Xresources\fP -is the conventional name. -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.chooser\fP" -Specifies the program run to offer a host menu for Indirect queries -redirected to the special host name CHOOSER. -\fI CHOOSERPATH \fP is the default. -See the sections \fBXDMCP Access Control\fP and \fBChooser\fP. -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.xrdb\fP" -Specifies the program used to load the resources. By default, -.I xdm -uses \fI BINDIR/xrdb\fP. -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.cpp\fP" -This specifies the name of the C preprocessor which is used by \fIxrdb\fP. -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.setup\fP" -This specifies a program which is run (as root) before offering the -Login window. This may be used to change the appearance of the screen -around the Login window or to put up other windows (e.g., you may want -to run \fIxconsole\fP here). -By default, no program is run. The conventional name for a -file used here is \fIXsetup\fP. -See the section \fBSetup Program.\fP -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.startup\fP" -This specifies a program which is run (as root) after the authentication -process succeeds. By default, no program is run. The conventional name for a -file used here is \fIXstartup\fP. -See the section \fBStartup Program.\fP -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.session\fP" -This specifies the session to be executed (not running as root). -By default, \fI BINDIR/xterm\fP is -run. The conventional name is \fIXsession\fP. -See the section -.B "Session Program." -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.reset\fP" -This specifies a program which is run (as root) after the session terminates. -By default, no program is run. -The conventional name is \fIXreset\fP. -See the section -.B "Reset Program." -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.openDelay\fP" -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.openRepeat\fP" -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.openTimeout\fP" -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.startAttempts\fP" -These numeric resources control the behavior of -.I xdm -when attempting to open intransigent servers. \fBopenDelay\fP is -the length of the -pause (in seconds) between successive attempts, \fBopenRepeat\fP is the -number of attempts to make, \fBopenTimeout\fP is the amount of time -to wait while actually -attempting the open (i.e., the maximum time spent in the -.IR connect (2) -system call) and \fBstartAttempts\fP is the number of times this entire process -is done before giving up on the server. After \fBopenRepeat\fP attempts have been made, -or if \fBopenTimeout\fP seconds elapse in any particular attempt, -.I xdm -terminates and restarts the server, attempting to connect again. -This -process is repeated \fBstartAttempts\fP times, at which point the display is -declared dead and disabled. Although -this behavior may seem arbitrary, it has been empirically developed and -works quite well on most systems. The default values are -5 for \fBopenDelay\fP, 5 for \fBopenRepeat\fP, 30 for \fBopenTimeout\fP and -4 for \fBstartAttempts\fP. -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.pingInterval\fP" -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.pingTimeout\fP" -To discover when remote displays disappear, -.I xdm -occasionally pings them, using an X connection and \fIXSync\fP -calls. \fBpingInterval\fP specifies the time (in minutes) between each -ping attempt, \fBpingTimeout\fP specifies the maximum amount of time (in -minutes) to wait for the terminal to respond to the request. If the -terminal does not respond, the session is declared dead and terminated. By -default, both are set to 5 minutes. If you frequently use X terminals which -can become isolated from the managing host, you may wish to increase this -value. The only worry is that sessions will continue to exist after the -terminal has been accidentally disabled. -.I xdm -will not ping local displays. Although it would seem harmless, it is -unpleasant when the workstation session is terminated as a result of the -server hanging for NFS service and not responding to the ping. -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.terminateServer\fP" -This boolean resource specifies whether the X server should be terminated -when a session terminates (instead of resetting it). This option can be -used when the server tends to grow without bound over time, in order to limit -the amount of time the server is run. The default value is ``false.'' -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.userPath\fP" -.I Xdm -sets the PATH environment variable for the session to this value. It should -be a colon separated list of directories; see -.IR sh (1) -for a full description. -The default value is derived from the default login class parameters defined in -\fI/etc/login.conf\fP -if available or otherwise is set to``DEF_USER_PATH''. -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.systemPath\fP" -.I Xdm -sets the PATH environment variable for the startup and reset scripts to the -value of this resource. The default for this resource is ``DEF_SYSTEM_PATH''. -Note the absence of ``.'' from this entry. This is a good practice to -follow for root; it avoids many common Trojan Horse system penetration -schemes. -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.systemShell\fP" -.I Xdm -sets the SHELL environment variable for the startup and reset scripts to the -value of this resource. It is \fI/bin/sh\fP by default. -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.failsafeClient\fP" -If the default session fails to execute, -.I xdm -will fall back to this program. This program is executed with no -arguments, but executes using the same environment variables as -the session would have had (see the section \fBSession Program\fP). -By default, \fI BINDIR/xterm\fP is used. -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.grabServer\fP" -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.grabTimeout\fP" -To improve security, -.I xdm -grabs the server and keyboard while reading the login name and password. -The -\fBgrabServer\fP resource specifies if the server should be held for the -duration of the name/password reading. When ``false,'' the server is ungrabbed -after the keyboard grab succeeds, otherwise the server is grabbed until just -before the session begins. The default is ``false.'' -The \fBgrabTimeout\fP resource specifies the maximum time -.I xdm -will wait for the grab to succeed. The grab may fail if some other -client has the server grabbed, or possibly if the network latencies -are very high. This resource has a default value of 3 seconds; you -should be cautious when raising it, as a user can be spoofed by a -look-alike window on the display. If the grab fails, -.I xdm -kills and restarts the server (if possible) and the session. -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.authorize\fP" -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.authName\fP" -\fBauthorize\fP is a boolean resource which controls whether -.I xdm -generates and uses authorization for the local server connections. If -authorization is used, \fBauthName\fP is a list -of authorization mechanisms to use, separated by white space. -XDMCP connections dynamically specify which -authorization mechanisms are supported, so -\fBauthName\fP is ignored in this case. When \fBauthorize\fP is set for a -display and authorization is not available, the user is informed by having a -different message displayed in the login widget. By default, \fBauthorize\fP -is ``true,'' \fBauthName\fP is ``MIT-MAGIC-COOKIE-1,'' or, if -XDM-AUTHORIZATION-1 is available, ``XDM-AUTHORIZATION-1\0MIT-MAGIC-COOKIE-1.'' -.IP \fBDisplayManager.\fP\fIDISPLAY\fP\fB.authFile\fP -This file is used to communicate the authorization data from -.I xdm -to the server, using the \fB\-auth\fP server command line option. -It should be -kept in a directory which is not world-writable as it could easily be -removed, disabling the authorization mechanism in the server. -If not specified, a name is generated from DisplayManager.authDir and -the name of the display. -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.authComplain\fP" -If set to ``false,'' disables the use of the \fBunsecureGreeting\fP -in the login window. -See the section \fBAuthentication Widget.\fP -The default is ``true.'' -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.resetSignal\fP" -The number of the signal \fIxdm\fP sends to reset the server. -See the section \fBControlling the Server.\fP -The default is 1 (SIGHUP). -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.termSignal\fP" -The number of the signal \fIxdm\fP sends to terminate the server. -See the section \fBControlling the Server.\fP -The default is 15 (SIGTERM). -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.resetForAuth\fP" -The original implementation of authorization in the sample server reread the -authorization file at server reset time, instead of when checking the -initial connection. As -.I xdm -generates the authorization information just before connecting to the -display, an old server would not get up-to-date authorization information. -This resource causes -.I xdm -to send SIGHUP to the server after setting up the file, causing an -additional server reset to occur, during which time the new authorization -information will be read. -The default is ``false,'' which will work for all MIT servers. -.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.userAuthDir\fP" -When -.I xdm -is unable to write to the usual user authorization file ($HOME/.Xauthority), -it creates a unique file name in this directory and points the environment -variable XAUTHORITY at the created file. It uses \fI/tmp\fP by default. -.SH "CONFIGURATION FILE" -First, the -.I xdm -configuration file should be set up. -Make a directory (usually \fI XDMDIR\fP) to contain all -of the relevant files. -.LP -Here is a reasonable configuration file, which could be -named \fIxdm-config\fP: -.nf - -.ta .5i 4i - - DisplayManager.servers: XDMDIR/Xservers - DisplayManager.errorLogFile: XDMLOGDIR/xdm.log - DisplayManager*resources: XDMDIR/Xresources - DisplayManager*startup: XDMDIR/Xstartup - DisplayManager*session: XDMDIR/Xsession - DisplayManager.pidFile: XDMPIDDIR/xdm-pid - DisplayManager._0.authorize: true - DisplayManager*authorize: false - -.fi -.PP -Note that this file mostly contains references to other files. Note also -that some of the resources are specified with ``*'' separating the -components. These resources can be made unique for each different display, -by replacing the ``*'' with the display-name, but normally this is not very -useful. See the \fBResources\fP section for a complete discussion. -.SH "XDMCP ACCESS CONTROL" -.PP -The database file specified by the \fBDisplayManager.accessFile\fP provides -information which -.I xdm -uses to control access from displays requesting XDMCP service. This file -contains three types of entries: entries which control the response to -Direct and Broadcast queries, entries which control the response to -Indirect queries, and macro definitions. -.PP -The format of the Direct entries is simple, either a host name or a -pattern, which is distinguished from a host name by the inclusion of -one or more meta characters (`*' matches any sequence of 0 or more -characters, and `?' matches any single character) which are compared against -the host name of the display device. -If the entry is a host name, all comparisons are done using -network addresses, so any name which converts to the correct network address -may be used. -For patterns, only canonical host names are used -in the comparison, so ensure that you do not attempt to match -aliases. -Preceding either a host name or a pattern with a `!' character -causes hosts which -match that entry to be excluded. -.PP -To only respond to Direct queries for a host or pattern, -it can be followed by the optional ``NOBROADCAST'' keyword. -This can be used to prevent an xdm server from appearing on -menus based on Broadcast queries. -.PP -An Indirect entry also contains a host name or pattern, -but follows it with a list of -host names or macros to which indirect queries should be sent. -.PP -A macro definition contains a macro name and a list of host names and -other macros that -the macro expands to. To distinguish macros from hostnames, macro -names start with a `%' character. Macros may be nested. -.PP -Indirect entries -may also specify to have \fIxdm\fP run \fIchooser\fP to offer a menu -of hosts to connect to. See the section \fBChooser\fP. -.PP -When checking access for a particular display host, each entry is scanned in -turn and the first matching entry determines the response. Direct and -Broadcast -entries are ignored when scanning for an Indirect entry and vice-versa. -.PP -Blank lines are ignored, `#' is treated as a comment -delimiter causing the rest of that line to be ignored, -and `\e\fInewline\fP' -causes the newline to be ignored, allowing indirect host lists to span -multiple lines. -.PP -Here is an example Xaccess file: -.LP -.ta 2i 4i -.nf -XCOMM -XCOMM Xaccess \- XDMCP access control file -XCOMM - -XCOMM -XCOMM Direct/Broadcast query entries -XCOMM - -!xtra.lcs.mit.edu # disallow direct/broadcast service for xtra -bambi.ogi.edu # allow access from this particular display -*.lcs.mit.edu # allow access from any display in LCS - -*.deshaw.com NOBROADCAST # allow only direct access -*.gw.com # allow direct and broadcast - -XCOMM -XCOMM Indirect query entries -XCOMM - -%HOSTS expo.lcs.mit.edu xenon.lcs.mit.edu \\ - excess.lcs.mit.edu kanga.lcs.mit.edu - -extract.lcs.mit.edu xenon.lcs.mit.edu #force extract to contact xenon -!xtra.lcs.mit.edu dummy #disallow indirect access -*.lcs.mit.edu %HOSTS #all others get to choose -.fi -.PP -If compiled with IPv6 support, multicast address groups may also be included -in the list of addresses indirect queries are set to. Multicast addresses -may be followed by an optional / character and hop count. If no hop count is -specified, the multicast hop count defaults to 1, keeping the packet on the -local network. For IPv4 multicasting, the hop count is used as the TTL. -.PP -Examples: -.LP -.ta 2.1i 4.5i -.nf -rincewind.sample.net ff02::1 #IPv6 Multicast to ff02::1 -\& #with a hop count of 1 -ponder.sample.net CHOOSER 239.192.1.1/16 #Offer a menu of hosts -\& #who respond to IPv4 Multicast -\& # to 239.192.1.1 with a TTL of 16 -.fi -.SH CHOOSER -.PP -For X terminals that do not offer a host menu for use with Broadcast -or Indirect queries, the \fIchooser\fP program can do this for them. -In the \fIXaccess\fP file, specify ``CHOOSER'' as the first entry in -the Indirect host list. \fIChooser\fP will send a Query request to -each of the remaining host names in the list and offer a menu of all -the hosts that respond. -.PP -The list may consist of the word ``BROADCAST,'' in which case -\fIchooser\fP will send a Broadcast instead, again offering a menu of -all hosts that respond. Note that on some operating systems, UDP -packets cannot be broadcast, so this feature will not work. -.PP -Example \fIXaccess\fP file using \fIchooser\fP: - -.nf -extract.lcs.mit.edu CHOOSER %HOSTS #offer a menu of these hosts -xtra.lcs.mit.edu CHOOSER BROADCAST #offer a menu of all hosts -.fi -.PP -The program to use for \fIchooser\fP is specified by the -\fBDisplayManager.\fP\fIDISPLAY\fP\fB.chooser\fP resource. For more -flexibility at this step, the chooser could be a shell script. -\fIChooser\fP is the session manager here; it is run instead of a -child \fIxdm\fP to manage the display. -.PP -Resources for this program -can be put into the file named by -\fBDisplayManager.\fP\fIDISPLAY\fP\fB.resources\fP. -.PP -When the user selects a host, \fIchooser\fP prints the host chosen, -which is read by the parent \fIxdm\fP, and exits. -\fIxdm\fP closes its connection to the X server, and the server resets -and sends another \fBIndirect\fP XDMCP request. -\fIxdm\fP remembers the user's choice (for -\fBDisplayManager.choiceTimeout\fP seconds) and forwards the request -to the chosen host, which starts a session on that display. -.\" -.SH LISTEN -The following configuration directive is also defined for the Xaccess -configuration file: -.IP "\fBLISTEN\fP \fIinterface\fP \fI[list of multicast group addresses]\fP" -\fIinterface\fP may be a hostname or IP addresss representing a -network interface on this machine, or the wildcard * to represent all -available network interfaces. -.PP -If one or more LISTEN lines are specified, xdm only listens for XDMCP -connections on the specified interfaces. If multicast group addresses -are listed on a listen line, xdm joins the multicast groups on the -given interface. -.PP -If no LISTEN lines are given, the original behavior of listening on -all interfaces is preserved for backwards compatibility. -Additionally, if no LISTEN is specified, xdm joins the default XDMCP -IPv6 multicast group, when compiled with IPv6 support. -.PP -To disable listening for XDMCP connections altogther, a line of LISTEN -with no addresses may be specified, or the previously supported method -of setting DisplayManager.requestPort to 0 may be used. -.PP -Examples: -.ta 2i 4i -.nf -LISTEN * ff02::1 # Listen on all interfaces and to the -\& # ff02::1 IPv6 multicast group. -LISTEN 10.11.12.13 # Listen only on this interface, as long -\& # as no other listen directives appear in -\& # file. -.fi -.SH "IPv6 MULTICAST ADDRESS SPECIFICATION" -.PP -The Internet Assigned Numbers Authority has has assigned -ff0\fIX\fP:0:0:0:0:0:0:12b as the permanently assigned range of -multicast addresses for XDMCP. The \fIX\fP in the prefix may be replaced -by any valid scope identifier, such as 1 for Interface-Local, 2 for Link-Local, -5 for Site-Local, and so on. (See IETF RFC 4291 or its replacement for -further details and scope definitions.) xdm defaults to listening on the -Link-Local scope address ff02:0:0:0:0:0:0:12b to most closely match the -old IPv4 subnet broadcast behavior. -.SH "LOCAL SERVER SPECIFICATION" -.PP -The resource \fBDisplayManager.servers\fP gives a server specification -or, if the values starts with a slash (/), the name of a file -containing server specifications, one per line. -.PP -Each specification -indicates a display which should constantly be managed and which is -not using XDMCP. -This method is used typically for local servers only. If the resource -or the file named by the resource is empty, \fIxdm\fP will offer XDMCP -service only. -.PP -Each specification consists of at least three parts: a display -name, a display class, a display type, and (for local servers) a command -line to start the server. A typical entry for local display number 0 would -be: -.nf - - :0 Digital-QV local BINDIR/X :0 - -.fi -The display types are: -.ta 1i -.nf - -local local display: \fIxdm\fP must run the server -foreign remote display: \fIxdm\fP opens an X connection to a running server - -.fi -.PP -The display name must be something that can be passed in the \fB\-display\fP -option to an X program. This string is used to generate the display-specific -resource names, so be careful to match the -names (e.g., use ``:0 Sun-CG3 local BINDIR/X :0'' instead of -``localhost:0 Sun-CG3 local BINDIR/X :0'' -if your other resources are specified as -``DisplayManager._0.session''). The display class portion is also used in the -display-specific resources, as the class of the resource. This is -useful if you have a large collection of similar displays (such as a corral of -X terminals) and would like to set resources for groups of them. When using -XDMCP, the display is required to specify the display class, so the manual -for your particular X terminal should document the display class -string for your device. If it doesn't, you can run -.I xdm -in debug mode and -look at the resource strings which it generates for that device, which will -include the class string. -.PP -When \fIxdm\fP starts a session, it sets up authorization data for the -server. For local servers, \fIxdm\fP passes -``\fB\-auth\fP \fIfilename\fP'' on the server's command line to point -it at its authorization data. -For XDMCP servers, \fIxdm\fP passes the -authorization data to the server via the \fBAccept\fP XDMCP request. -.SH RESOURCES FILE -The \fIXresources\fP file is -loaded onto the display as a resource database using -.I xrdb. -As the authentication -widget reads this database before starting up, it usually contains -parameters for that widget: -.nf -.ta .5i 1i - - xlogin*login.translations: #override\\ - Ctrl<Key>R: abort-display()\\n\\ - <Key>F1: set-session-argument(failsafe) finish-field()\\n\\ - <Key>Return: set-session-argument() finish-field() - xlogin*borderWidth: 3 - xlogin*greeting: CLIENTHOST -\& #ifdef COLOR - xlogin*greetColor: CadetBlue - xlogin*failColor: red -\& #endif - -.fi -.PP -Please note the translations entry; it specifies -a few new translations for the widget which allow users to escape from the -default session (and avoid troubles that may occur in it). Note that if -\&#override is not specified, the default translations are removed and replaced -by the new value, not a very useful result as some of the default translations -are quite useful (such as ``<Key>: insert-char ()'' which responds to normal -typing). -.PP -This file may also contain resources for the setup program and \fIchooser\fP. -.SH "SETUP PROGRAM" -The \fIXsetup\fP file is run after -the server is reset, but before the Login window is offered. -The file is typically a shell script. -It is run as root, so should be careful about security. -This is the place to change the root background or bring up other -windows that should appear on the screen along with the Login widget. -.PP -In addition to any specified by \fBDisplayManager.exportList\fP, -the following environment variables are passed: -.nf -.ta .5i 2i - - DISPLAY the associated display name - PATH the value of \fBDisplayManager.\fP\fIDISPLAY\fP\fB.systemPath\fP - SHELL the value of \fBDisplayManager.\fP\fIDISPLAY\fP\fB.systemShell\fP - XAUTHORITY may be set to an authority file -.fi -.PP -Note that since \fIxdm\fP grabs the keyboard, any other windows will not be -able to receive keyboard input. They will be able to interact with -the mouse, however; beware of potential security holes here. -If \fBDisplayManager.\fP\fIDISPLAY\fP\fB.grabServer\fP is set, -\fIXsetup\fP will not be able to connect -to the display at all. -Resources for this program -can be put into the file named by -\fBDisplayManager.\fP\fIDISPLAY\fP\fB.resources\fP. -.PP -Here is a sample \fIXsetup\fP script: -.nf - -\& #!/bin/sh -\& # Xsetup_0 \- setup script for one workstation - xcmsdb < XDMDIR/monitors/alex.0 - xconsole\0\-geometry\0480x130\-0\-0\0\-notify\0\-verbose\0\-exitOnFail & - -.fi -.SH "AUTHENTICATION WIDGET" -The authentication widget prompts the user for the username, password, and/or -other required authentication data from the keyboard. Nearly every imaginable -parameter can be controlled with a resource. Resources for this widget -should be put into the file named by -\fBDisplayManager.\fP\fIDISPLAY\fP\fB.resources\fP. All of these have reasonable -default values, so it is not necessary to specify any of them. -.PP -The resource file is loaded with -.IR xrdb (__appmansuffix__) -so it may use the substitutions defined by that program such as CLIENTHOST -for the client hostname in the login message, or C pre-processor #ifdef -statements to produce different displays depending on color depth or other -variables. -.PP -.I Xdm -can be compiled with support for the -.IR Xft (__libmansuffix__) -library for font rendering. If this support is present, font faces are -specified using the resources with names ending in ``face'' in the -fontconfig face format described in the -.I Font Names -section of -.IR fonts.conf (__filemansuffix__). -If not, then fonts are specified using the resources with names ending -in ``font'' in the traditional -.I X Logical Font Description -format described in the -.I Font Names -section of -.IR X (__miscmansuffix__). -.IP "\fBxlogin.Login.width, xlogin.Login.height, xlogin.Login.x, xlogin.Login.y\fP" -The geometry of the Login widget is normally computed automatically. If you -wish to position it elsewhere, specify each of these resources. -.IP "\fBxlogin.Login.foreground\fP" -The color used to display the input typed by the user. -.IP "\fBxlogin.Login.face\fP" -The face used to display the input typed by the user when built with Xft -support. The default is ``Serif-18''. -.IP "\fBxlogin.Login.font\fP" -The font used to display the input typed by the user when not built with Xft -support. -.IP "\fBxlogin.Login.greeting\fP" -A string which identifies this window. -The default is ``X Window System.'' -.IP "\fBxlogin.Login.unsecureGreeting\fP" -When X authorization is requested in the configuration file for this -display and none is in use, this greeting replaces the standard -greeting. The default is ``This is an unsecure session'' -.IP "\fBxlogin.Login.greetFace\fP" -The face used to display the greeting when built with Xft support. -The default is ``Serif-24:italic''. -.IP "\fBxlogin.Login.greetFont\fP" -The font used to display the greeting when not built with Xft support. -.IP "\fBxlogin.Login.greetColor\fP" -The color used to display the greeting. -.IP "\fBxlogin.Login.namePrompt\fP" -The string displayed to prompt for a user name. -.I Xrdb -strips trailing white space from resource values, so to add spaces at -the end of the prompt (usually a nice thing), add spaces escaped with -backslashes. The default is ``Login: '' -.IP "\fBxlogin.Login.passwdPrompt\fP" -The string displayed to prompt for a password, when not using an authentication -system such as PAM that provides its own prompts. -The default is ``Password: '' -.IP "\fBxlogin.Login.promptFace\fP" -The face used to display prompts when built with Xft support. -The default is ``Serif-18:bold''. -.IP "\fBxlogin.Login.promptFont\fP" -The font used to display prompts when not built with Xft support. -.IP "\fBxlogin.Login.promptColor\fP" -The color used to display prompts. -.IP "\fBxlogin.Login.changePasswdMessage\fP" -A message which is displayed when the users password has expired. -The default is ``Password Change Required'' -.IP "\fBxlogin.Login.fail\fP" -A message which is displayed when the authentication fails, when not using an -authentication system such as PAM that provides its own prompts. -The default is ``Login incorrect'' -.IP "\fBxlogin.Login.failFace\fP" -The face used to display the failure message when built with Xft support. -The default is ``Serif-18:bold''. -.IP "\fBxlogin.Login.failFont\fP" -The font used to display the failure message when not built with Xft support. -.IP "\fBxlogin.Login.failColor\fP" -The color used to display the failure message. -.IP "\fBxlogin.Login.failTimeout\fP" -The number of seconds that the failure message is displayed. -The default is 10. -.IP "\fBxlogin.Login.logoFileName\fP" -Name of an XPM format pixmap to display in the greeter window, if built with -XPM support. The default is no pixmap. -.IP "\fBxlogin.Login.logoPadding\fP" -Number of pixels of space between the logo pixmap and other elements of the -greeter window, if the pixmap is displayed. -The default is 5. -.IP "\fBxlogin.Login.useShape\fP" -If set to ``true'', when built with XPM support, attempt to use the -X Non-Rectangular Window Shape Extension to set the window shape. -The default is ``true''. -.IP "\fBxlogin.Login.hiColor\fP, \fBxlogin.Login.shdColor\fP" -Raised appearance bezels may be drawn around -the greeter frame and text input boxes by setting these resources. hiColor -is the highlight color, used on the top and left sides of the frame, and the -bottom and right sides of text input areas. shdColor is the shadow color, -used on the bottom and right sides of the frame, and the top and left sides -of text input areas. -The default for both is the foreground color, providing a flat appearance. -.IP "\fBxlogin.Login.frameWidth\fP" -frameWidth is the width in pixels of the area -around the greeter frame drawn in hiColor and shdColor. -.IP "\fBxlogin.Login.innerFramesWidth\fP" -innerFramesWidth is the width in pixels of the -area around text input areas drawn in hiColor and shdColor. -.IP "\fBxlogin.Login.sepWidth\fP" -sepWidth is the width in pixels of the -bezeled line between the greeting and input areas -drawn in hiColor and shdColor. -.IP "\fBxlogin.Login.allowRootLogin\fP" -If set to ``false'', don't allow root (and any other user with uid = 0) to -log in directly. -The default is ``true''. -.IP "\fBxlogin.Login.allowNullPasswd\fP" -If set to ``true'', allow an otherwise failing password match to succeed -if the account does not require a password at all. -The default is ``false'', so only users that have passwords assigned can -log in. -.IP "\fBxlogin.Login.translations\fP" -This specifies the translations used for the login widget. Refer to the X -Toolkit documentation for a complete discussion on translations. The default -translation table is: -.nf -.ta .5i 2i - - Ctrl<Key>H: delete-previous-character() \\n\\ - Ctrl<Key>D: delete-character() \\n\\ - Ctrl<Key>B: move-backward-character() \\n\\ - Ctrl<Key>F: move-forward-character() \\n\\ - Ctrl<Key>A: move-to-begining() \\n\\ - Ctrl<Key>E: move-to-end() \\n\\ - Ctrl<Key>K: erase-to-end-of-line() \\n\\ - Ctrl<Key>U: erase-line() \\n\\ - Ctrl<Key>X: erase-line() \\n\\ - Ctrl<Key>C: restart-session() \\n\\ - Ctrl<Key>\\\\: abort-session() \\n\\ - <Key>BackSpace: delete-previous-character() \\n\\ - <Key>Delete: delete-previous-character() \\n\\ - <Key>Return: finish-field() \\n\\ - <Key>: insert-char() \\ - -.fi -.PP -The actions which are supported by the widget are: -.IP "delete-previous-character" -Erases the character before the cursor. -.IP "delete-character" -Erases the character after the cursor. -.IP "move-backward-character" -Moves the cursor backward. -.IP "move-forward-character" -Moves the cursor forward. -.IP "move-to-begining" -(Apologies about the spelling error.) -Moves the cursor to the beginning of the editable text. -.IP "move-to-end" -Moves the cursor to the end of the editable text. -.IP "erase-to-end-of-line" -Erases all text after the cursor. -.IP "erase-line" -Erases the entire text. -.IP "finish-field" -If the cursor is in the name field, proceeds to the password field; if the -cursor is in the password field, checks the current name/password pair. If -the name/password pair is valid, \fIxdm\fP -starts the session. Otherwise the failure message is displayed and -the user is prompted again. -.IP "abort-session" -Terminates and restarts the server. -.IP "abort-display" -Terminates the server, disabling it. This action -is not accessible in the default configuration. -There are various reasons to stop \fIxdm\fP on a system console, such as -when shutting the system down, when using \fIxdmshell\fP, -to start another type of server, or to generally access the console. -Sending \fIxdm\fP a SIGHUP will restart the display. See the section -\fBControlling XDM\fP. -.IP "restart-session" -Resets the X server and starts a new session. This can be used when -the resources have been changed and you want to test them or when -the screen has been overwritten with system messages. -.IP "insert-char" -Inserts the character typed. -.IP "set-session-argument" -Specifies a single word argument which is passed to the session at startup. -See the section \fBSession Program\fP. -.IP "allow-all-access" -Disables access control in the server. This can be used when -the .Xauthority file cannot be created by -.I xdm. -Be very careful using this; -it might be better to disconnect the machine from the network -before doing this. -.PP -On some systems (OpenBSD) the user's shell must be listed in -.I /etc/shells -to allow login through xdm. The normal password and account expiration -dates are enforced too. -.SH "STARTUP PROGRAM" -.PP -The \fIXstartup\fP program is run as -root when the user logs in. -It is typically a shell script. -Since it is run as root, \fIXstartup\fP should be -very careful about security. This is the place to put commands which add -entries to \fIutmp\fP or \fIwtmp\fP files, -(the \fIsessreg\fP program may be useful here), -mount users' home directories from file servers, -or abort the session if logins are not -allowed. -.PP -In addition to any specified by \fBDisplayManager.exportList\fP, -the following environment variables are passed: -.nf -.ta .5i 2i - - DISPLAY the associated display name - HOME the initial working directory of the user - LOGNAME the user name - USER the user name - PATH the value of \fBDisplayManager.\fP\fIDISPLAY\fP\fB.systemPath\fP - SHELL the value of \fBDisplayManager.\fP\fIDISPLAY\fP\fB.systemShell\fP - XAUTHORITY may be set to an authority file - WINDOWPATH may be set to the "window path" leading to the X server - -.fi -.PP -No arguments are passed to the script. -.I Xdm -waits until this script exits before starting the user session. If the -exit value of this script is non-zero, -.I xdm -discontinues the session and starts another authentication -cycle. -.PP -The sample \fIXstartup\fP file shown here prevents login while the -file \fI/etc/nologin\fP -exists. -Thus this is not a complete example, but -simply a demonstration of the available functionality. -.PP -Here is a sample \fIXstartup\fP script: -.nf -.ta .5i 1i - -\& #!/bin/sh -\& # -\& # Xstartup -\& # -\& # This program is run as root after the user is verified -\& # - if [ \-f /etc/nologin ]; then - xmessage\0\-file /etc/nologin\0\-timeout 30\0\-center - exit 1 - fi - sessreg\0\-a\0\-l $DISPLAY\0\-x XDMDIR/Xservers $LOGNAME - XDMDIR/GiveConsole - exit 0 -.fi -.SH "SESSION PROGRAM" -.PP -The \fIXsession\fP program is the command which is run as the user's session. -It is run with -the permissions of the authorized user. -.PP -In addition to any specified by \fBDisplayManager.exportList\fP, -the following environment variables are passed: -.nf -.ta .5i 2i - - DISPLAY the associated display name - HOME the initial working directory of the user - LOGNAME the user name - USER the user name - PATH the value of \fBDisplayManager.\fP\fIDISPLAY\fP\fB.userPath\fP - SHELL the user's default shell (from \fIgetpwnam\fP) - XAUTHORITY may be set to a non-standard authority file - KRB5CCNAME may be set to a Kerberos credentials cache name - WINDOWPATH may be set to the "window path" leading to the X server - -.fi -.PP -At most installations, \fIXsession\fP should look in $HOME for -a file \fI\.xsession,\fP -which contains commands that each user would like to use as a session. -\fIXsession\fP should also -implement a system default session if no user-specified session exists. -.PP -An argument may be passed to this program from the authentication widget -using the `set-session-argument' action. This can be used to select -different styles of session. One good use of this feature is to allow -the user to escape from the ordinary session when it fails. This -allows users to repair their own \fI.xsession\fP if it fails, -without requiring administrative intervention. -The example following -demonstrates this feature. -.PP -This example recognizes -the special -``failsafe'' mode, specified in the translations -in the \fIXresources\fP file, to provide an escape -from the ordinary session. It also requires that the .xsession file -be executable so we don't have to guess what shell it wants to use. -.nf -.ta .5i 1i 1.5i - -\& #!/bin/sh -\& # -\& # Xsession -\& # -\& # This is the program that is run as the client -\& # for the display manager. - - case $# in - 1) - case $1 in - failsafe) - exec xterm \-geometry 80x24\-0\-0 - ;; - esac - esac - - startup=$HOME/.xsession - resources=$HOME/.Xresources - - if [ \-f "$startup" ]; then - exec "$startup" - else - if [ \-f "$resources" ]; then - xrdb \-load "$resources" - fi - twm & - xman \-geometry +10\-10 & - exec xterm \-geometry 80x24+10+10 \-ls - fi - -.fi -.PP -The user's \fI.xsession\fP file might look something like this -example. Don't forget that the file must have execute permission. -.nf -\& #! /bin/csh -\& # no \-f in the previous line so .cshrc gets run to set $PATH - twm & - xrdb \-merge "$HOME/.Xresources" - emacs \-geometry +0+50 & - xbiff \-geometry \-430+5 & - xterm \-geometry \-0+50 -ls -.fi -.SH "RESET PROGRAM" -.PP -Symmetrical with \fIXstartup\fP, -the \fIXreset\fP script is run after the user session has -terminated. Run as root, it should contain commands that undo -the effects of commands in \fIXstartup,\fP updating entries -in \fIutmp\fP or \fIwtmp\fP files, -or unmounting directories from file servers. The environment -variables that were passed to \fIXstartup\fP are also -passed to \fIXreset\fP. -.PP -A sample \fIXreset\fP script: -.nf -.ta .5i 1i -\& #!/bin/sh -\& # -\& # Xreset -\& # -\& # This program is run as root after the session ends -\& # - sessreg\0\-d\0\-l $DISPLAY\0\-x XDMDIR/Xservers $LOGNAME - XDMDIR/TakeConsole - exit 0 -.fi -.SH "CONTROLLING THE SERVER" -.I Xdm -controls local servers using POSIX signals. SIGHUP is expected to reset the -server, closing all client connections and performing other cleanup -duties. SIGTERM is expected to terminate the server. -If these signals do not perform the expected actions, -the resources \fBDisplayManager.\fP\fIDISPLAY\fP\fB.resetSignal\fP and -\fBDisplayManager.\fP\fIDISPLAY\fP\fB.termSignal\fP can specify alternate signals. -.PP -To control remote terminals not using XDMCP, -.I xdm -searches the window hierarchy on the display and uses the protocol request -KillClient in an attempt to clean up the terminal for the next session. This -may not actually kill all of the clients, as only those which have created -windows will be noticed. XDMCP provides a more sure mechanism; when -.I xdm -closes its initial connection, the session is over and the terminal is -required to close all other connections. -.SH "CONTROLLING XDM" -.PP -.I Xdm -responds to two signals: SIGHUP and SIGTERM. When sent a SIGHUP, -.I xdm -rereads the configuration file, the access control file, and the servers -file. For the servers file, it notices if entries have been added or -removed. If a new entry has been added, -.I xdm -starts a session on the associated display. Entries which have been removed -are disabled immediately, meaning that any session in progress will be -terminated without notice and no new session will be started. -.PP -When sent a SIGTERM, -.I xdm -terminates all sessions in progress and exits. This can be used when -shutting down the system. -.PP -.I Xdm -attempts to mark its various sub-processes for -.IR ps (1) -by editing the -command line argument list in place. Because -.I xdm -can't allocate additional -space for this task, it is useful to start -.I xdm -with a reasonably long -command line (using the full path name should be enough). -Each process which is -servicing a display is marked \fB\-\fP\fIdisplay.\fP -.SH "ADDITIONAL LOCAL DISPLAYS" -.PP -To add an additional local display, add a line for it to the -\fIXservers\fP file. -(See the section \fBLocal Server Specification\fP.) -.PP -Examine the display-specific resources in \fIxdm-config\fP -(e.g., \fBDisplayManager._0.authorize\fP) -and consider which of them should be copied for the new display. -The default \fIxdm-config\fP has all the appropriate lines for -displays \fB:0\fP and \fB:1\fP. -.SH "OTHER POSSIBILITIES" -.PP -You can use \fIxdm\fP -to run a single session at a time, using the 4.3 \fIinit\fP -options or other suitable daemon by specifying the server on the command -line: -.nf -.ta .5i - - xdm \-server \(lq:0 SUN-3/60CG4 local BINDIR/X :0\(rq - -.fi -.PP -Or, you might have a file server and a collection of X terminals. The -configuration for this is identical to the sample above, -except the \fIXservers\fP file would look like -.nf -.ta .5i - - extol:0 VISUAL-19 foreign - exalt:0 NCD-19 foreign - explode:0 NCR-TOWERVIEW3000 foreign - -.fi -.PP -This directs -.I xdm -to manage sessions on all three of these terminals. See the section -\fBControlling Xdm\fP for a description of using signals to enable -and disable these terminals in a manner reminiscent of -.IR init (__adminmansuffix__). -.SH LIMITATIONS -One thing that -.I xdm -isn't very good at doing is coexisting with other window systems. To use -multiple window systems on the same hardware, you'll probably be more -interested in -.I xinit. -.SH FILES -.TP 20 -.I XDMDIR/xdm-config -the default configuration file -.TP 20 -.I $HOME/.Xauthority -user authorization file where \fIxdm\fP stores keys for clients to read -.TP 20 -.I CHOOSERPATH -the default chooser -.TP 20 -.I BINDIR/xrdb -the default resource database loader -.TP 20 -.I BINDIR/X -the default server -.TP 20 -.I BINDIR/xterm -the default session program and failsafe client -.TP 20 -.I XDMXAUTHDIR/A<display>\-<suffix> -the default place for authorization files -.TP 20 -.I /tmp/K5C<display> -Kerberos credentials cache -.SH "SEE ALSO" -.IR X (__miscmansuffix__), -.IR xinit (__appmansuffix__), -.IR xauth (__appmansuffix__), -.IR xrdb (__appmansuffix__), -.IR Xsecurity (__miscmansuffix__), -.IR sessreg (__appmansuffix__), -.IR Xserver (__appmansuffix__), -.\" .IR chooser (__appmansuffix__), \" except that there isn't a manual for it yet -.\" .IR xdmshell (__appmansuffix__), \" except that there isn't a manual for it yet -.IR fonts.conf (__filemansuffix__), -.IR login.conf (__filemansuffix__). -.br -.I "X Display Manager Control Protocol" -.br -.RI "IETF RFC 4291: " "IP Version 6 Addressing Architecture" . -.SH AUTHOR -Keith Packard, MIT X Consortium |