mirror of https://github.com/tLDP/LDP
1146 lines
33 KiB
Plaintext
1146 lines
33 KiB
Plaintext
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
|
|
|
|
<article id="index">
|
|
|
|
<!-- Header -->
|
|
|
|
<artheader>
|
|
<title>XDM and X Terminal mini-HOWTO</title>
|
|
|
|
<author>
|
|
<firstname>Kevin</firstname>
|
|
<surname>Taylor</surname>
|
|
<affiliation>
|
|
<address>
|
|
<email>kevin@northants.lug.org.uk</email>
|
|
</address>
|
|
</affiliation>
|
|
</author>
|
|
|
|
<revhistory>
|
|
<revision>
|
|
<revnumber>v0.03</revnumber>
|
|
<date>3 July 2000</date>
|
|
<authorinitials>kt</authorinitials>
|
|
<revremark>
|
|
Minor updates from first comments
|
|
</revremark>
|
|
</revision>
|
|
|
|
<revision>
|
|
<revnumber>v0.02</revnumber>
|
|
<date>28 June 2000</date>
|
|
<authorinitials>kt</authorinitials>
|
|
<revremark>
|
|
First SGML source draft from HTML source
|
|
</revremark>
|
|
</revision>
|
|
|
|
<revision>
|
|
<revnumber>v0.01</revnumber>
|
|
<date>27 June 2000</date>
|
|
<authorinitials>kt</authorinitials>
|
|
<revremark>
|
|
First HTML source draft
|
|
</revremark>
|
|
</revision>
|
|
</revhistory>
|
|
|
|
<abstract>
|
|
<indexterm>
|
|
<primary>template</primary>
|
|
</indexterm>
|
|
|
|
<para>
|
|
This document describes the basic ideas for using XDM to manage
|
|
X terminals. It is not meant to be a comprehensive discussion
|
|
of all the features of XDM, but a gentle introduction to what XDM
|
|
can to for X terminals.
|
|
</para>
|
|
|
|
<para>
|
|
For a full discussion about the installation and configuration
|
|
of X terminals, please refer to the 'Thin-client' HOWTO, from
|
|
the Linux Documentation Project (see <xref linkend="resources">).
|
|
</para>
|
|
</abstract>
|
|
|
|
</artheader>
|
|
|
|
<!-- Section1: intro -->
|
|
|
|
<sect1 id="intro">
|
|
<title>Introduction</title>
|
|
|
|
<indexterm>
|
|
<primary>disk!introduction</primary>
|
|
</indexterm>
|
|
|
|
<!-- Section2: copyright -->
|
|
|
|
<sect2 id="copyright">
|
|
<title>Copyright Information</title>
|
|
|
|
<para>
|
|
This document is copyrighted (c) 2000 Kevin Taylor and is
|
|
distributed under the terms of the Linux Documentation Project
|
|
(LDP) license, stated below.
|
|
</para>
|
|
|
|
<para>
|
|
Unless otherwise stated, Linux HOWTO documents are
|
|
copyrighted by their respective authors. Linux HOWTO documents may
|
|
be reproduced and distributed in whole or in part, in any medium
|
|
physical or electronic, as long as this copyright notice is
|
|
retained on all copies. Commercial redistribution is allowed and
|
|
encouraged; however, the author would like to be notified of any
|
|
such distributions.
|
|
</para>
|
|
|
|
<para>
|
|
All translations, derivative works, or aggregate works
|
|
incorporating any Linux HOWTO documents must be covered under this
|
|
copyright notice. That is, you may not produce a derivative work
|
|
from a HOWTO and impose additional restrictions on its
|
|
distribution. Exceptions to these rules may be granted under
|
|
certain conditions; please contact the Linux HOWTO coordinator at
|
|
the address given below.
|
|
</para>
|
|
|
|
<para>
|
|
In short, we wish to promote dissemination of this
|
|
information through as many channels as possible. However, we do
|
|
wish to retain copyright on the HOWTO documents, and would like to
|
|
be notified of any plans to redistribute the HOWTOs.
|
|
</para>
|
|
|
|
<para>
|
|
If you have any questions, please contact
|
|
<email>linux-howto@metalab.unc.edu</email>
|
|
</para>
|
|
</sect2>
|
|
|
|
<!-- Section2: disclaimer -->
|
|
|
|
<sect2 id="disclaimer">
|
|
<title>Disclaimer</title>
|
|
|
|
<para>
|
|
No liability for the contents of this documents can be accepted.
|
|
Use the concepts, examples and other content at your own risk.
|
|
As this is a new edition of this document, there may be errors
|
|
and inaccuracies, that may of course be damaging to your system.
|
|
Proceed with caution, and although this is highly unlikely,
|
|
the author(s) do not take any responsibility for that.
|
|
</para>
|
|
|
|
<para>
|
|
All copyrights are held by their by their respective owners, unless
|
|
specifically noted otherwise. Use of a term in this document
|
|
should not be regarded as affecting the validity of any trademark
|
|
or service mark.
|
|
</para>
|
|
|
|
<para>
|
|
Naming of particular products or brands should not be seen
|
|
as endorsements.
|
|
</para>
|
|
|
|
<para>
|
|
You are strongly recommended to take a backup of your system
|
|
before major installation and backups at regular intervals.
|
|
</para>
|
|
</sect2>
|
|
|
|
<!-- Section2: newversions-->
|
|
|
|
<sect2 id="newversions">
|
|
<title>New Versions</title>
|
|
|
|
<indexterm>
|
|
<primary>(your index root)!news on</primary>
|
|
</indexterm>
|
|
|
|
<para>
|
|
This is the initial release.
|
|
</para>
|
|
|
|
<para>
|
|
The latest version number of this document may be
|
|
obtained from
|
|
<ulink url="http://www.northants.lug.org.uk/projects/xdm-mini/">
|
|
The Northants LUG, UK Project Pages
|
|
</ulink>.
|
|
</para>
|
|
</sect2>
|
|
|
|
<!-- Section2: credits -->
|
|
|
|
<sect2 id="credits">
|
|
<title>Credits</title>
|
|
|
|
<para>
|
|
Thanks go to the following people for help with information and
|
|
proof reading of the document.
|
|
</para>
|
|
|
|
<para>
|
|
Scot W Stevenson for the original X teriminal mini-howto document,
|
|
from 1995, on which some of the material for the section on advanced
|
|
xdm-config configurations was obtained.
|
|
</para>
|
|
|
|
<para>
|
|
Members of the Northants LUG, UK for proof reading the document.
|
|
</para>
|
|
|
|
<para>
|
|
The writers of the XDM, Xserver man pages and the default XDM scripts.
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
<!-- Section2: feedback -->
|
|
|
|
<sect2 id="feedback">
|
|
<title>Feedback</title>
|
|
|
|
<para>
|
|
Feedback is most certainly welcome for this document. Without
|
|
your submissions and input, this document wouldn't exist. Please
|
|
send your additions, comments and criticisms to the following
|
|
email address : <email>xdm-mini@northants.lug.org.uk</email>.
|
|
</para>
|
|
</sect2>
|
|
|
|
<!-- Section2: todo -->
|
|
|
|
<sect2 id="todo">
|
|
<title>To do</title>
|
|
|
|
<para>
|
|
I probably ought to mention some details about the following at
|
|
some point ...
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
Security and authentication schemes.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Debugging problems with XDM.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Replacements for XDM - ie KDM and GDM.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
LBX ?
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
Any offers ?
|
|
</para>
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
<!-- Section1: intro: END -->
|
|
|
|
<!-- Section1: Basics -->
|
|
|
|
<sect1 id="basics">
|
|
<title>Basic Concepts</title>
|
|
|
|
<indexterm>
|
|
<primary>disk!basics</primary>
|
|
</indexterm>
|
|
|
|
<!-- Section2: Coverage -->
|
|
|
|
<sect2 id="coverage">
|
|
<title>What is covered</title>
|
|
|
|
<para>
|
|
This document describes the basic concepts behind using XDM
|
|
(the X display manager) to manage X terminals and X servers,
|
|
in order to provide 'thin-client' computing, using Linux.
|
|
</para>
|
|
|
|
<para>
|
|
X (or the 'X Window System') is the windowing and graphics environment
|
|
of choice for Unix systems. Its particular strength (and the key bit
|
|
that we are interested in for this document) is that it separates the
|
|
running applications (web browser, word processor, etc) from the actual
|
|
graphics screen and input devices (mouse, keyboard, etc) via a network
|
|
communications mechanism.
|
|
</para>
|
|
|
|
<para>
|
|
Essentially, this means that you can be running
|
|
an application on one machine, but have its input and output redirected
|
|
to another machine via a network. This is the key feature that makes
|
|
an X terminal possible.
|
|
</para>
|
|
|
|
<para>
|
|
This document does not discuss the installation or
|
|
configuration of a network or X on Linux. Please refer to the
|
|
appropriate HOWTO documents from the Linux Documentation Project for
|
|
more details (see <xref linkend="resources">).
|
|
</para>
|
|
|
|
<para>
|
|
This document should be treated as a 'getting started with XDM' document,
|
|
in that it describes the basic terms and concepts for using XDM and
|
|
X terminals, with simple examples that provide the minimum amount of
|
|
security.
|
|
</para>
|
|
|
|
<para>
|
|
The reader is advised to consult the list of resources provided at
|
|
the end of the document in order to proceed beyound these basic
|
|
facilities - in particular, the configuration of the 'authentication'
|
|
and security settings should be examined, as the examples given in
|
|
this document utilise the least secure modes of operation.
|
|
</para>
|
|
|
|
<para>
|
|
Please note - the information in this document was obtained from
|
|
systems running Debian 2.1, SuSE 6.4, Mandrake 7.0 and RedHat 6.0.
|
|
</para>
|
|
|
|
<para>
|
|
This document does not attempt to describe how to install and configure
|
|
Linux for an X terminal. For this information, please refer to the
|
|
'thin-client' HOWTO document, provided as part of the Linux Documentation
|
|
Project (see <xref linkend="resources">).
|
|
</para>
|
|
</sect2>
|
|
|
|
<!-- Section2: About -->
|
|
|
|
<sect2 id="about">
|
|
<title>About this document</title>
|
|
|
|
<para>
|
|
This document came about because I wanted to experiment with Linux
|
|
on a 486 PC as an X terminal to my main Linux box.
|
|
</para>
|
|
|
|
<para>
|
|
After reading the man pages, specifications and current howto documents
|
|
relating to XDM and X terminals, I ended getting really confused
|
|
about where XDM was supposed to run and confusing XDM servers with
|
|
X servers and the like, and so after an evening or two of
|
|
experimentation, this document was born.
|
|
</para>
|
|
|
|
<para>
|
|
Once the basic terminology has been sorted out, the documentation
|
|
for XDM and self-documenting sample files makes very good reading
|
|
- I just could not find a simple introduction to the basic concepts
|
|
anywhere to get me started. Hopefully this document could prove
|
|
to be a suitable introduction to someone in a similar position to
|
|
me.
|
|
</para>
|
|
|
|
<para>
|
|
Oh, and in case you are wondering, a 486dx2/66 with 16 Mb RAM
|
|
makes a fine X terminal !
|
|
</para>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
|
|
<!-- Section1: Terms -->
|
|
|
|
<sect1 id="xdm">
|
|
<title>XDM</title>
|
|
|
|
<indexterm>
|
|
<primary>disk!xdm</primary>
|
|
</indexterm>
|
|
|
|
<!-- Section2: What is XDM -->
|
|
|
|
<sect2 id="xdm-what">
|
|
<title>What is XDM</title>
|
|
|
|
<para>
|
|
Put simply, XDM (the X Display Manager) can be thought of as a graphical
|
|
replacement for the command line 'login' prompt. In reality, it can
|
|
actually do much more than that.
|
|
</para>
|
|
|
|
<para>
|
|
Typcially, it would be started by the 'root' user (or the system startup
|
|
scripts) on power up, and would present a user with a graphical login
|
|
prompt. It will then manage the users X session once they login -
|
|
ie it will initiate the running of their window manager and applications.
|
|
</para>
|
|
|
|
<para>
|
|
This could be considered a typical 'simple local machine login'
|
|
configuration, as may be found installed by many Linux distributions
|
|
by default. However, XDM can also manage remote X servers and provide
|
|
login prompts to remote 'X terminals'. In short, it is not limited to
|
|
the local machine - it can easily manage other machines connected via
|
|
a network.
|
|
</para>
|
|
|
|
<para>
|
|
XDM is a very configurable utility and this document will only just
|
|
'scratch the surface' of what may be acheived. This document aims to
|
|
provide enough information to configure your X terminals and application
|
|
servers to connect to each other. The reader is refered to the
|
|
<xref linkend="resources"> for further information on the topics
|
|
discussed here.
|
|
</para>
|
|
</sect2>
|
|
|
|
<!-- Section2: What is an X Terminal -->
|
|
|
|
<sect2 id="xdm-xterm">
|
|
<title>What is an X terminal</title>
|
|
|
|
<para>
|
|
This term could be used to cover various configurations, but at its
|
|
simplest form, is a machine with a network connection, keyboard,
|
|
mouse and monitor, configured to run the X windows system to connect
|
|
to an application server somewhere on the network.
|
|
</para>
|
|
|
|
<para>
|
|
There are several configurations of 'X terminal' with varying levels
|
|
of functionality, ranging from completely diskless terminals to full
|
|
X workstations.
|
|
</para>
|
|
|
|
<!-- Section2: Terminolgy -->
|
|
|
|
<sect2 id="xdm-terms">
|
|
<title>Some Terminology</title>
|
|
|
|
<para>
|
|
Before I go any further, I ought to explain the terms I will be using
|
|
in this document. When talking about X, there is quite a lot of
|
|
confusion over what is serving facilities to what. This is especially
|
|
true when you are considering distributed sessions over a network
|
|
involving X terminals. I will be using the terms described below.
|
|
</para>
|
|
|
|
<para>
|
|
<variablelist>
|
|
<VarListentry>
|
|
<term> Diskless X terminal
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
These would be a machine with no local disks, which would perform its
|
|
boot up via a network connection to a server. This means obtaining the
|
|
network configuration, operating system, system configuration and all
|
|
applications from the server. Once booted however, this
|
|
would be the same as a 'dumb X terminal' (see below). Typically this
|
|
configuration would use a combination of the following network protocols
|
|
in order to boot : BOOTP, DHCP, TFTP, etc. Refer to
|
|
<xref linkend="resources">
|
|
for some references that detail how to build diskless clients.
|
|
</para>
|
|
</listitem>
|
|
</VarListentry>
|
|
|
|
<VarListentry>
|
|
<term> Dumb X terminal
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
This would be a machine that boots from its local disk into an operating
|
|
system, and starts an 'X server' and nothing more. Somehow, a login prompt
|
|
would be provided on the machine, to enable a user to login to an
|
|
application server somewhere on the network.
|
|
</para>
|
|
</listitem>
|
|
</VarListentry>
|
|
|
|
<VarListentry>
|
|
<term> X Workstation
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
This would be similar to a dumb X terminal, but would provide the option
|
|
of loging on to the local machine itself, hence would be quite capable of
|
|
becoming a standalone workstation (ie no network connectivity) if required.
|
|
</para>
|
|
</listitem>
|
|
</VarListentry>
|
|
|
|
<VarListentry>
|
|
<term> Application Server
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
In the context of this document, I use the term 'application server' to
|
|
describe a machine that will provide a running X session and applications
|
|
(but not necessarily an actual graphical console login prompt and local
|
|
screen and keyboard).
|
|
</para>
|
|
</listitem>
|
|
</VarListentry>
|
|
|
|
<VarListentry>
|
|
<term> X Server
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
This is a machine with a physical console (display, keyboard, mouse, etc)
|
|
that is able to provided these facilities as a service to X clients.
|
|
Please refer to the X User Howto in
|
|
<xref linkend="resources">
|
|
for more details.
|
|
</para>
|
|
</listitem>
|
|
</VarListentry>
|
|
|
|
<VarListentry>
|
|
<term> X Client
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
This is an application that requires the use of the X server to provide
|
|
a display and input.
|
|
</para>
|
|
</listitem>
|
|
</VarListentry>
|
|
</variablelist>
|
|
</para>
|
|
|
|
<para>
|
|
Note that from the above descriptions, an X Workstation could be thought of
|
|
as consisting of a dumb X terminal and application server running on a single
|
|
machine.
|
|
</para>
|
|
|
|
<para>
|
|
This document will be looking at the architecture of the various options
|
|
listed above and will describe the role that xdm can play in configuring
|
|
these setups.
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
<!-- Section2: What can XDM do -->
|
|
|
|
<sect2 id="xdm-do">
|
|
<title>What can XDM do</title>
|
|
|
|
<para>
|
|
XDM is the utility that will be responsible for providing the users login
|
|
prompt and initiating their X session. This could be a local session (in
|
|
the case of an X workstation) or via a connection to an application server
|
|
from a diskless or dumb X terminal.
|
|
</para>
|
|
|
|
<para>
|
|
There are 2 main methods that can result with the user being presented
|
|
with a login prompt :
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
X server query
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
XDM server managed
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
|
|
<sect3 id="xserv-query">
|
|
<title>X Server Query</title>
|
|
|
|
<para>
|
|
The communications between XDM and the actual 'X server' (the machines
|
|
with the physical screen/keyboard/mouse/etc) are handled via XDMCP the
|
|
'X display manager control protocol'.
|
|
</para>
|
|
|
|
<para>
|
|
This permits X servers to send out queries to servers running XDM, basically
|
|
saying 'I have someone wanting to login - someone please give me a login
|
|
prompt'.
|
|
</para>
|
|
|
|
<para>
|
|
This facility can take one of 3 forms :
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
Direct query : the X server contacts a named host, requesting that the
|
|
server presents a login prompt on its display
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Broadcast : the X server sends out a broadcast message to the network,
|
|
and the first server running XDM that responds to the broadcast will
|
|
be the one to present the login prompt on its display
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Indirect query : the X server contacts a named host, but asks it which
|
|
other hosts it knows about on the network. The named host will then
|
|
present the user with a list of hosts to choose from, and will then
|
|
go on to initiate communications with the selected host resulting in
|
|
the selected host presenting a login prompt on the X servers display.
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
|
|
<para>
|
|
There are several other processes, but these will not be described here
|
|
- refer to the XDM and XDMCP documentation in <xref linkend="resources">
|
|
for more details.
|
|
</para>
|
|
</sect3>
|
|
|
|
<sect3 id="xdm-server">
|
|
<title>XDM Server Managed</title>
|
|
|
|
<para>
|
|
If you have a set of machines (eg diskless or dumb X terminals) that just
|
|
end up running an X server, all designed to provide a login prompt to a
|
|
single application server, then it is possible to configure XDM on the
|
|
application server to connect back to each X server and present its login
|
|
prompt on each display automatically.
|
|
</para>
|
|
|
|
<para>
|
|
In this mode of operation, the configuration file 'Xservers' lists each
|
|
machine (including the local display, if required) to which XDM should
|
|
connect, to display its login prompt.
|
|
</para>
|
|
|
|
<para>
|
|
This configuration, when used with no remote X servers listed in the
|
|
configuration, is the typical configuration used for a X workstation,
|
|
in order to present a user with a graphical login to the local machine
|
|
he is working on.
|
|
</para>
|
|
|
|
<para>
|
|
Note this assumes that the access control on the X server is such that the
|
|
application server XDM is able to connect back to the appropriate display.
|
|
</para>
|
|
</sect3>
|
|
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
<!-- Section1: config -->
|
|
|
|
<sect1 id="config">
|
|
<title>Configuring XDM</title>
|
|
|
|
<indexterm>
|
|
<primary>disk!config</primary>
|
|
</indexterm>
|
|
|
|
<para>
|
|
This section covers what needs to be configured for XDM to perform
|
|
the functions described so far in this document.
|
|
</para>
|
|
|
|
<para>
|
|
In each case, the configuration described is the minimum necessary to
|
|
accomplish each goal. In most cases this means that the configuration
|
|
is also the least secure. Please refer to some of the additional
|
|
documentation listed in <xref linkend="resources">
|
|
for additional information about securing XDM and X terminals.
|
|
</para>
|
|
|
|
<!-- Section2: Config Files -->
|
|
|
|
<sect2 id="config-files">
|
|
<title>Configuration Files</title>
|
|
|
|
<para>
|
|
This describes the following scheme of XDM configuration files :
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
xdm-config
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Xaccess
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Xservers
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Xresources
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
|
|
<para>
|
|
This will be found in (Debian 2.1. Mandrake 7.0.2, RedHat 6.2) :
|
|
<screen>
|
|
/etc/X11/xdm
|
|
</screen>
|
|
or (SuSE 6.4) :
|
|
<screen>
|
|
/usr/X11R6/lib/X11/xdm
|
|
</screen>
|
|
</para>
|
|
|
|
<para>
|
|
<variablelist>
|
|
<VarListentry>
|
|
<term> xdm-config
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Defines the locations of the other configuration files and the basic
|
|
access permissions. For all distributions considered for this document,
|
|
the file names were as listed here (but sometimes the locations varied).
|
|
</para>
|
|
|
|
<para>
|
|
This also defines the scripts to be run for the various state
|
|
transitions for an X session, ie on startup, etc. You should
|
|
not need to change these, as most distributions would appear to
|
|
come with this pre-configured for you.
|
|
</para>
|
|
</listitem>
|
|
</VarListentry>
|
|
|
|
<VarListentry>
|
|
<term> Xaccess
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Determines which machines can connect to XDM on this machine - ie
|
|
from which other machines on the network we are accepting XDMCP
|
|
queries.
|
|
</para>
|
|
</listitem>
|
|
</VarListentry>
|
|
|
|
<VarListentry>
|
|
<term> Xservers
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Contains a list of machines that XDM will connect to, to provide a
|
|
login prompt, automatically - ie those machines already running an X
|
|
server, but would like this machine to provide the login prompt.
|
|
</para>
|
|
</listitem>
|
|
</VarListentry>
|
|
|
|
<VarListentry>
|
|
<term> Xresources
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Details of the X properties used by the XDM widgets (eg size of the
|
|
login 'box', colours, bitmap backgrounds, etc).
|
|
</para>
|
|
</listitem>
|
|
</VarListentry>
|
|
</variablelist>
|
|
</para>
|
|
</sect2>
|
|
|
|
<!-- Section2: XDM Managing X Servers -->
|
|
|
|
<sect2 id="xdm-xserv">
|
|
<title>Configuring XDM to manage X servers</title>
|
|
|
|
<para>
|
|
An entry must be placed in the Xservers file for each X server
|
|
that XDM will be presenting a login prompt on. This could include
|
|
the local machine and/or a list of remote machines.
|
|
</para>
|
|
|
|
<para>
|
|
Example
|
|
<screen>
|
|
# First the local host
|
|
:0 local /usr/bin/X11/X vt7
|
|
#
|
|
# Then the remote hosts
|
|
emma:0 foreign
|
|
alex:0 foreign
|
|
</screen>
|
|
</para>
|
|
|
|
<para>
|
|
This will start XDM on the local machine and also present a login screen
|
|
on the X servers running on the hosts 'emma' and 'alex' (assuming that
|
|
permissions have been setup on 'emma' and 'alex' such that this machine
|
|
is permitted to connect to the running X servers).
|
|
</para>
|
|
|
|
<para>
|
|
Note that it is possible to specify the host and display (:0, :1, etc)
|
|
if required, for example, if you are running multiple X servers on a
|
|
single machine, etc.
|
|
</para>
|
|
</sect2>
|
|
|
|
<!-- Section2: XDM for queries -->
|
|
|
|
<sect2 id="xdm-queries">
|
|
<title>Configuring XDM for queries</title>
|
|
|
|
<para>
|
|
The file Xaccess determines which hosts may query XDM on this machine,
|
|
in order to be presented with a login prompt.
|
|
</para>
|
|
|
|
<para>
|
|
Example
|
|
<screen>
|
|
# First line for direct queries
|
|
*
|
|
# Following line for indirect queries
|
|
* CHOOSER BROADCAST
|
|
</screen>
|
|
</para>
|
|
|
|
<para>
|
|
This means that any host may connect to XDM directly (the first '*').
|
|
The 'CHOOSER' line specifies which hosts can connect to XDM using
|
|
indirect queries - in this case, any host may query this machine for
|
|
a list of hosts to connect to (the second '*' line).
|
|
</para>
|
|
|
|
<para>
|
|
'BROADCAST' means that the 'chooser' application on this machine
|
|
will obtain its list of available servers (that will also be running XDM)
|
|
via network broadcast queries. I will talk about the 'chooser' later.
|
|
</para>
|
|
|
|
<para>
|
|
It is possible to place specific host names in these entries (and there
|
|
are also other indirect queries possible, without using the chooser)
|
|
but this is not described here (refer to <xref linkend="resources">
|
|
for some links to more information).
|
|
</para>
|
|
</sect2>
|
|
|
|
<!-- Section2: Starting X -->
|
|
|
|
<sect2 id="xdm-startx">
|
|
<title>Starting X</title>
|
|
|
|
<para>
|
|
The way you start the X server itself, will depend upon how you want it to
|
|
interact with XDM locally and remotely.
|
|
</para>
|
|
|
|
<para>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term> X Workstation : XDM and local X server
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
XDM will normally start X automatically for you and XDM will usually
|
|
be configured to run as part of the startup process (via the init scripts).
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term> X Terminal : Remote XDM
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Just start X with no clients, with access permissions such that the
|
|
remote XDM is able to connect when it starts up. The following will start
|
|
X with no access control :
|
|
<screen>
|
|
/usr/X11R6/bin/X -ac
|
|
</screen>
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term> X Terminal : Query a remote XDM
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Recall there are 3 modes for queries : direct, indirect and broadcast
|
|
(direct for a single host, broadcast for the first host that replies or
|
|
indirect for a list of hosts) :
|
|
<screen>
|
|
/usr/X11R6/bin/X -query the.remote.host
|
|
/usr/X11R6/bin/X -broadcast
|
|
/usr/X11R6/bin/X -indirect the.remote.host
|
|
</screen>
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
|
|
<para>
|
|
In each case, X will probably have to be started as root, and could be
|
|
configured to be started up via the init scripts, if X is required
|
|
automatically on startup.
|
|
</para>
|
|
</sect2>
|
|
|
|
<!-- Section2: The Chooser -->
|
|
|
|
<sect2 id="xdm-chooser">
|
|
<title>The Chooser Application</title>
|
|
|
|
<para>
|
|
When XDM receives an indirect query, and assuming that the option
|
|
has been specified in Xaccess for the 'chooser' application, it can
|
|
provide the user with a list of other XDM managed servers that it
|
|
knows about.
|
|
</para>
|
|
|
|
<para>
|
|
In this mode of operation, instead of the normal XDM login prompt,
|
|
the user will be given the 'chooser' widget, which will provide a list
|
|
of detected hosts on the network.
|
|
</para>
|
|
|
|
<para>
|
|
When I first tried the use the chooser, I found that the Xresources
|
|
files that came with my SuSE and Debian systems, specified a size for
|
|
the chooser widget that was too big for the screens ... The following
|
|
line from the Xresources file fixed that :
|
|
<screen>
|
|
Chooser*geometry: 700x500+300+200
|
|
</screen>
|
|
</para>
|
|
|
|
<para>
|
|
The chooser will obtain its lists of host by one of two methods :
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
Broadcast Query : In this mode a request is broadcast over the network,
|
|
and a list is built up from the replies received from other application
|
|
servers running XDM.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Explicit Listing : It is possible to provide a list of hosts for
|
|
the chooser in the Xaccess file, as follows :
|
|
<screen>
|
|
%hostlist emma alex liam
|
|
* CHOOSER %hostlist
|
|
</screen>
|
|
This will mean that the hosts emma, alex and liam will all be
|
|
listed as available (presumably even if one of the machines is
|
|
down ? Need to check this ...)
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
<!-- Section1: Advanced Configuration -->
|
|
|
|
<sect1 id="xdm-advconfig">
|
|
|
|
<title>Advanced Configuration Options</title>
|
|
|
|
<indexterm>
|
|
<primary>disk!advanced</primary>
|
|
</indexterm>
|
|
|
|
<!-- Section2: Config Sets -->
|
|
|
|
<sect2 id="adv-configsets">
|
|
<title>Configuration Sets</title>
|
|
|
|
<para>
|
|
The xdm-config file provides a rich set of options, when it comes
|
|
to defined scripts and other configuration files. In many cases,
|
|
the defaults provided with your distribution should be fine, but
|
|
for those of you who want more ...
|
|
</para>
|
|
|
|
<para>
|
|
The names of the startup scripts and configuration files used by
|
|
XDM are determined by a series of statements in the top-level
|
|
xdm-config file. This permits you to configure a different set
|
|
of files for different X servers and X terminals, with different
|
|
abilities.
|
|
</para>
|
|
|
|
<para>
|
|
For example, say you are using XDM to manage your local display, but
|
|
also want it to accept queries from other X terminals on the network.
|
|
It is possible to specify a different Xresources file for each of these
|
|
cases, by using the following 2 lines in xdm-config :
|
|
<screen>
|
|
DisplayManager._0.resources /etc/X11/xdm/Xres_0
|
|
DisplayManager*resources /etc/X11/xdm/Xresources
|
|
</screen>
|
|
This will use Xres_0 for the local display (_0 is the XDM way of
|
|
saying :0) and Xresources for everything else (the '*').
|
|
</para>
|
|
|
|
<para>
|
|
Note that XDM configuration files use the terminology host_0, where you
|
|
would normally use host:0, to designate 'display 0 on host'.
|
|
</para>
|
|
|
|
<para>
|
|
Similarly, if you wanted a particular resource file for a specific
|
|
host, you would use an entry like the following :
|
|
<screen>
|
|
DisplayManager.host_0.resources /etc/X11/xdm/Xres_host_0
|
|
</screen>
|
|
</para>
|
|
|
|
<para>
|
|
If you look over your default xdm-config file, you will probably
|
|
find that it has been setup so that your local X server has different
|
|
files to the remote ones anyway, as different things must be performed
|
|
on startup and reset of the server. My debian file has the following
|
|
for local servers :
|
|
<screen>
|
|
DisplayManager._0.resources: /etc/X11/xdm/Xresources_0
|
|
DisplayManager._0.setup: /etc/X11/xdm/Xsetup_0
|
|
DisplayManager._0.startup: /etc/X11/xdm/Xstartup_0
|
|
DisplayManager._0.reset: /etc/X11/xdm/Xreset_0
|
|
</screen>
|
|
and the following for remote servers :
|
|
<screen>
|
|
DisplayManager*resources: /etc/X11/xdm/Xresources
|
|
DisplayManager*setup: /etc/X11/xdm/Xsetup
|
|
DisplayManager*startup: /etc/X11/xdm/Xstartup
|
|
DisplayManager*reset: /etc/X11/xdm/Xreset
|
|
</screen>
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
<!-- Section1: resources -->
|
|
|
|
<sect1 id="resources">
|
|
<title>Resources</title>
|
|
|
|
<indexterm>
|
|
<primary>disk!resources</primary>
|
|
</indexterm>
|
|
|
|
<para>
|
|
This section lists some resources that have been consulted in order to
|
|
construct this document and which provide further details to the concepts
|
|
described.
|
|
</para>
|
|
|
|
<para>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term> The X Window System
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
X User Howto (from the
|
|
<ulink url="http://www.linuxdoc.org">LDP</ulink>)
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Man pages : X (main concepts), Xserver (X server concepts)
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
X FAQ (on
|
|
<ulink url="http://www.x.org">www.x.org</ulink>)
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term> Thin-clients/X terminals
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
Thin-client Howto Document (from the
|
|
<ulink url="http://www.linuxdoc.org">LDP</ulink>)
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Diskless Howto Document (from the
|
|
<ulink url="http://www.linuxdoc.org">LDP</ulink>)
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
<ulink url="http://dns.solucorp.qc.ca/xterminals">X terminal pages</ulink>
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term> XDM
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
Man pages : xdm
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
</sect1>
|
|
|
|
</article>
|