Add a section on installing and using XDM.

Submitted by:	Seth Kingsley <seth.kingsley@windriver.com>
This commit is contained in:
Murray Stokely 2001-05-24 03:42:45 +00:00
parent 971bf49b7a
commit d65b84fa77
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=9487
5 changed files with 443 additions and 7 deletions

View file

@ -13,7 +13,7 @@
builds for the other languages, and we will poke fun of you
in public.
$FreeBSD: doc/en_US.ISO_8859-1/books/handbook/authors.ent,v 1.158 2001/05/02 01:26:05 murray Exp $
$FreeBSD: doc/en_US.ISO_8859-1/books/handbook/authors.ent,v 1.159 2001/05/18 22:49:53 pirzyk Exp $
-->
<!ENTITY a.abial "Andrzej Bialecki <email>abial@FreeBSD.org</email>">
@ -524,6 +524,8 @@
<!ENTITY a.semenu "Ustimenko Semen <email>semenu@FreeBSD.org</email>">
<!ENTITY a.sethk "Seth Kingsley <email>seth.kingsley@windriver.com</email>">
<!ENTITY a.sf "FUJISHIMA Satsuki <email>sf@FreeBSD.org</email>">
<!ENTITY a.shafeeq "Shafeeq Sinnamohideen <email>shafeeq@FreeBSD.org</email>">

View file

@ -1,7 +1,7 @@
<!--
The FreeBSD Documentation Project
$FreeBSD: doc/en_US.ISO_8859-1/books/handbook/x11/chapter.sgml,v 1.13 2000/10/25 03:02:20 murray Exp $
$FreeBSD: doc/en_US.ISO_8859-1/books/handbook/x11/chapter.sgml,v 1.14 2001/04/01 01:42:35 dd Exp $
-->
<chapter id="x11">
@ -12,7 +12,8 @@
url="http://www.wccdrom.com/titles/freebsd/bsdcomp_bkx.phtml">The
Complete FreeBSD</ulink>, and remains copyright of him.
Modifications for the handbook made by &a.jim;. The section on
fonts in XFree86 was contributed by &a.murray;.</emphasis></para>
fonts in XFree86 was contributed by &a.murray; and the section on
XDM was contributed by &a.sethk;.</emphasis></para>
<sect1>
<title>Synopsis</title>
@ -1386,6 +1387,220 @@ For further configuration, refer to /usr/X11R6/lib/X11/doc/README.Config.</scree
</sect2>
</sect1>
<sect1 id="x-xdm">
<title>The X Display Manager</title>
<sect2>
<title>Overview</title>
<para>The X Display Manager (XDM) is an optional part of the X
Window System that is used for login session management. This is
useful for several types of situations, including minimal
<quote>X Terminals</quote> (see section
<xref linkend="term-x">), desktops, and large network display
servers. Since the X Window System is network and protocol
independent, there are a wide variety of possible configurations
for running X clients and servers on different machines
connected by a network. XDM provides a graphical interface for
choosing which display server to connect to, and entering
authorization information such as a login and password
combination.</para>
<para>You may think of XDM as providing the same functionality to
the user as the &man.getty.8; utility (see <xref
linkend="term-getty"> for details). That is, it performs system
logins to the display being connected to and then runs a session
manager on behalf of the user (usually an X window manager). XDM
then waits for this program to exit, signalling that the user is
done and should be logged out of the display. At this point, XDM
can display the login and display chooser screens for the next
user to login.</para>
</sect2>
<sect2>
<title>Using XDM</title>
<para>The XDM daemon program is located in
<filename>/usr/X11R6/bin/xdm</filename>. You can run this
program at any time as root and it will start managing the X
display on the local machine. If you want XDM to run in the
background every time the machine boots up, a convenient way to
do this is by adding an entry to <filename>/etc/ttys</filename>.
For more information about the format and usage of this file,
see <xref linkend="term-etcttys">. There is a line in the
default <filename>/etc/ttys</filename> file for running the xdm
daemon on a virtual terminal:
<screen>
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
</screen>
By default this entry is disabled, and in order to enable it you
will need to change field 5 from <literal>off</literal> to
<literal>on</literal> and then restart &man.init.8; using the
directions in <xref linkend="term-hup">. The first field, the
name of the terminal this program will manage, is
<literal>ttyv8</literal>. This means that XDM will start running
on the 9th virtual terminal.</para>
</sect2>
<sect2>
<title>Configuring XDM</title>
<para>The XDM configuration directory is located in
<filename>/usr/X11R6/lib/X11/xdm</filename>. In this directory
you will see several files used to change the behavior and
appearence of XDM. Typically you will find these files:</para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>File</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry><filename>Xaccess</filename></entry>
<entry>Client authorization ruleset.</entry>
</row>
<row>
<entry><filename>Xresources</filename></entry>
<entry>Default X resource values.</entry>
</row>
<row>
<entry><filename>Xservers</filename></entry>
<entry>List of remote and local displays to manage.</entry>
</row>
<row>
<entry><filename>Xsession</filename></entry>
<entry>Default session script for logins.</entry>
</row>
<row>
<entry><filename>Xsetup_</filename>*</entry>
<entry></entry>
</row>
<row>
<entry><filename>xdm-config</filename></entry>
<entry>Global configuration for all displays running on
this machine.</entry>
</row>
<row>
<entry><filename>xdm-errors</filename></entry>
<entry>Errors generated by the server program.</entry>
</row>
<row>
<entry><filename>xdm-pid</filename></entry>
<entry>The process ID of the currently running XDM.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Also in this directory are a few scripts and programs used
to setup the desktop when XDM is running. In the next few
sections I will briefly describe the purpose of each of these
files. The exact syntax and usage of all of these files is
described in &man.xdm.1;</para>
<para>The default configuration is a simple rectangular login
window with the hostname of the machine displayed at the top in
a large font and <quote>Login:</quote> and
<quote>Password:</quote> prompts below. This is a good starting
point if you are planning to design your own look and feel for
the XDM screens.</para>
<sect3>
<title>Xaccess</title>
<para>The protocol for connecting to XDM controlled displays is
called the X Display Manager Connection Protocol (XDMCP). This
file is basically just a ruleset for controlling XDMCP
connections from remote machines. By default, it allows any
client to connect, but you will see this will not matter
because the default xdm-config file does not listen for remote
connections.</para>
</sect3>
<sect3>
<title>Xresources</title>
<para>This is an application-defaults file for the display
chooser and the login screens. This is where you can customize
the appearence of the login program. The format is identical
to the app-defaults file described in the XFree86
documentation.</para>
</sect3>
<sect3>
<title>Xservers</title>
<para>This is a list of the remote displays the chooser should
provide as choices.</para>
</sect3>
<sect3>
<title>Xsession</title>
<para>This is the default session script for XDM to run after a
user has logged in. Normally each user will have a customized
session script in <filename>~/.xsessionrc</filename> that
overrides this script.</para>
</sect3>
<sect3>
<title>Xsetup_*</title>
<para>These files contain scripts that will be run automatically
before displaying the chooser or login interfaces. There is a
script for each display being used, named
<filename>Xsetup_</filename>followed by the local display
number (for instance <filename>Xsetup_0</filename>). Typically
these scripts will run one or two programs in the background
such as <filename>xconsole</filename>.</para>
</sect3>
<sect3>
<title>xdm-config</title>
<para>This file contains settings in the form of app-defaults
that are applicable to every display that this installation
manages.</para>
</sect3>
<sect3>
<title>xdm-errors</title>
<para>This file contains the output of the X servers that XDM is
trying to run. If a display that XDM is trying to start hangs
for some reason, this is a good place to look for error
messages. These messages are also written to the user's
~/.xsession-errors file on a per-session basis</para>
</sect3>
</sect2>
<sect2>
<title>Running A Network Display Server</title>
<para>In order for other clients to connect to your display
server, you will need to edit the access control rules, and
enable the connection listener. By default these are set to
conservative values, which is a good descision security-wise. To
get XDM to listen for connections first comment out a line in
the <filename>xdm-config</filename> file:
<screen>
! SECURITY: do not listen for XDMCP or Chooser requests
! Comment out this line if you want to manage X terminals with xdm
DisplayManager.requestPort: 0
</screen>
and then restart XDM. Remember that comments in app-defaults
files begin with a <quote>!</quote> character, not a
<quote>#</quote>. After this, you may need to put more strict
access controls in place. Look at the example entries in
<filename>Xaccess</filename> file, and refer to the &man.xdm.1;
manual page.</para>
</sect2>
</sect1>
</chapter>
<!--

View file

@ -13,7 +13,7 @@
builds for the other languages, and we will poke fun of you
in public.
$FreeBSD: doc/en_US.ISO_8859-1/books/handbook/authors.ent,v 1.158 2001/05/02 01:26:05 murray Exp $
$FreeBSD: doc/en_US.ISO_8859-1/books/handbook/authors.ent,v 1.159 2001/05/18 22:49:53 pirzyk Exp $
-->
<!ENTITY a.abial "Andrzej Bialecki <email>abial@FreeBSD.org</email>">
@ -524,6 +524,8 @@
<!ENTITY a.semenu "Ustimenko Semen <email>semenu@FreeBSD.org</email>">
<!ENTITY a.sethk "Seth Kingsley <email>seth.kingsley@windriver.com</email>">
<!ENTITY a.sf "FUJISHIMA Satsuki <email>sf@FreeBSD.org</email>">
<!ENTITY a.shafeeq "Shafeeq Sinnamohideen <email>shafeeq@FreeBSD.org</email>">

View file

@ -13,7 +13,7 @@
builds for the other languages, and we will poke fun of you
in public.
$FreeBSD: doc/en_US.ISO_8859-1/books/handbook/authors.ent,v 1.158 2001/05/02 01:26:05 murray Exp $
$FreeBSD: doc/en_US.ISO_8859-1/books/handbook/authors.ent,v 1.159 2001/05/18 22:49:53 pirzyk Exp $
-->
<!ENTITY a.abial "Andrzej Bialecki <email>abial@FreeBSD.org</email>">
@ -524,6 +524,8 @@
<!ENTITY a.semenu "Ustimenko Semen <email>semenu@FreeBSD.org</email>">
<!ENTITY a.sethk "Seth Kingsley <email>seth.kingsley@windriver.com</email>">
<!ENTITY a.sf "FUJISHIMA Satsuki <email>sf@FreeBSD.org</email>">
<!ENTITY a.shafeeq "Shafeeq Sinnamohideen <email>shafeeq@FreeBSD.org</email>">

View file

@ -1,7 +1,7 @@
<!--
The FreeBSD Documentation Project
$FreeBSD: doc/en_US.ISO_8859-1/books/handbook/x11/chapter.sgml,v 1.13 2000/10/25 03:02:20 murray Exp $
$FreeBSD: doc/en_US.ISO_8859-1/books/handbook/x11/chapter.sgml,v 1.14 2001/04/01 01:42:35 dd Exp $
-->
<chapter id="x11">
@ -12,7 +12,8 @@
url="http://www.wccdrom.com/titles/freebsd/bsdcomp_bkx.phtml">The
Complete FreeBSD</ulink>, and remains copyright of him.
Modifications for the handbook made by &a.jim;. The section on
fonts in XFree86 was contributed by &a.murray;.</emphasis></para>
fonts in XFree86 was contributed by &a.murray; and the section on
XDM was contributed by &a.sethk;.</emphasis></para>
<sect1>
<title>Synopsis</title>
@ -1386,6 +1387,220 @@ For further configuration, refer to /usr/X11R6/lib/X11/doc/README.Config.</scree
</sect2>
</sect1>
<sect1 id="x-xdm">
<title>The X Display Manager</title>
<sect2>
<title>Overview</title>
<para>The X Display Manager (XDM) is an optional part of the X
Window System that is used for login session management. This is
useful for several types of situations, including minimal
<quote>X Terminals</quote> (see section
<xref linkend="term-x">), desktops, and large network display
servers. Since the X Window System is network and protocol
independent, there are a wide variety of possible configurations
for running X clients and servers on different machines
connected by a network. XDM provides a graphical interface for
choosing which display server to connect to, and entering
authorization information such as a login and password
combination.</para>
<para>You may think of XDM as providing the same functionality to
the user as the &man.getty.8; utility (see <xref
linkend="term-getty"> for details). That is, it performs system
logins to the display being connected to and then runs a session
manager on behalf of the user (usually an X window manager). XDM
then waits for this program to exit, signalling that the user is
done and should be logged out of the display. At this point, XDM
can display the login and display chooser screens for the next
user to login.</para>
</sect2>
<sect2>
<title>Using XDM</title>
<para>The XDM daemon program is located in
<filename>/usr/X11R6/bin/xdm</filename>. You can run this
program at any time as root and it will start managing the X
display on the local machine. If you want XDM to run in the
background every time the machine boots up, a convenient way to
do this is by adding an entry to <filename>/etc/ttys</filename>.
For more information about the format and usage of this file,
see <xref linkend="term-etcttys">. There is a line in the
default <filename>/etc/ttys</filename> file for running the xdm
daemon on a virtual terminal:
<screen>
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
</screen>
By default this entry is disabled, and in order to enable it you
will need to change field 5 from <literal>off</literal> to
<literal>on</literal> and then restart &man.init.8; using the
directions in <xref linkend="term-hup">. The first field, the
name of the terminal this program will manage, is
<literal>ttyv8</literal>. This means that XDM will start running
on the 9th virtual terminal.</para>
</sect2>
<sect2>
<title>Configuring XDM</title>
<para>The XDM configuration directory is located in
<filename>/usr/X11R6/lib/X11/xdm</filename>. In this directory
you will see several files used to change the behavior and
appearence of XDM. Typically you will find these files:</para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>File</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry><filename>Xaccess</filename></entry>
<entry>Client authorization ruleset.</entry>
</row>
<row>
<entry><filename>Xresources</filename></entry>
<entry>Default X resource values.</entry>
</row>
<row>
<entry><filename>Xservers</filename></entry>
<entry>List of remote and local displays to manage.</entry>
</row>
<row>
<entry><filename>Xsession</filename></entry>
<entry>Default session script for logins.</entry>
</row>
<row>
<entry><filename>Xsetup_</filename>*</entry>
<entry></entry>
</row>
<row>
<entry><filename>xdm-config</filename></entry>
<entry>Global configuration for all displays running on
this machine.</entry>
</row>
<row>
<entry><filename>xdm-errors</filename></entry>
<entry>Errors generated by the server program.</entry>
</row>
<row>
<entry><filename>xdm-pid</filename></entry>
<entry>The process ID of the currently running XDM.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Also in this directory are a few scripts and programs used
to setup the desktop when XDM is running. In the next few
sections I will briefly describe the purpose of each of these
files. The exact syntax and usage of all of these files is
described in &man.xdm.1;</para>
<para>The default configuration is a simple rectangular login
window with the hostname of the machine displayed at the top in
a large font and <quote>Login:</quote> and
<quote>Password:</quote> prompts below. This is a good starting
point if you are planning to design your own look and feel for
the XDM screens.</para>
<sect3>
<title>Xaccess</title>
<para>The protocol for connecting to XDM controlled displays is
called the X Display Manager Connection Protocol (XDMCP). This
file is basically just a ruleset for controlling XDMCP
connections from remote machines. By default, it allows any
client to connect, but you will see this will not matter
because the default xdm-config file does not listen for remote
connections.</para>
</sect3>
<sect3>
<title>Xresources</title>
<para>This is an application-defaults file for the display
chooser and the login screens. This is where you can customize
the appearence of the login program. The format is identical
to the app-defaults file described in the XFree86
documentation.</para>
</sect3>
<sect3>
<title>Xservers</title>
<para>This is a list of the remote displays the chooser should
provide as choices.</para>
</sect3>
<sect3>
<title>Xsession</title>
<para>This is the default session script for XDM to run after a
user has logged in. Normally each user will have a customized
session script in <filename>~/.xsessionrc</filename> that
overrides this script.</para>
</sect3>
<sect3>
<title>Xsetup_*</title>
<para>These files contain scripts that will be run automatically
before displaying the chooser or login interfaces. There is a
script for each display being used, named
<filename>Xsetup_</filename>followed by the local display
number (for instance <filename>Xsetup_0</filename>). Typically
these scripts will run one or two programs in the background
such as <filename>xconsole</filename>.</para>
</sect3>
<sect3>
<title>xdm-config</title>
<para>This file contains settings in the form of app-defaults
that are applicable to every display that this installation
manages.</para>
</sect3>
<sect3>
<title>xdm-errors</title>
<para>This file contains the output of the X servers that XDM is
trying to run. If a display that XDM is trying to start hangs
for some reason, this is a good place to look for error
messages. These messages are also written to the user's
~/.xsession-errors file on a per-session basis</para>
</sect3>
</sect2>
<sect2>
<title>Running A Network Display Server</title>
<para>In order for other clients to connect to your display
server, you will need to edit the access control rules, and
enable the connection listener. By default these are set to
conservative values, which is a good descision security-wise. To
get XDM to listen for connections first comment out a line in
the <filename>xdm-config</filename> file:
<screen>
! SECURITY: do not listen for XDMCP or Chooser requests
! Comment out this line if you want to manage X terminals with xdm
DisplayManager.requestPort: 0
</screen>
and then restart XDM. Remember that comments in app-defaults
files begin with a <quote>!</quote> character, not a
<quote>#</quote>. After this, you may need to put more strict
access controls in place. Look at the example entries in
<filename>Xaccess</filename> file, and refer to the &man.xdm.1;
manual page.</para>
</sect2>
</sect1>
</chapter>
<!--