<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
<!ENTITY legal SYSTEM "legal.xml">
<!ENTITY version "2.26.0">
<!ENTITY date "02/10/2009">
<!ENTITY mdash "&#8212;">
<!ENTITY percnt "&#x0025;">
]>
<article id="index" lang="en">
  <articleinfo>
    <title>Manual de referencia del Gestor de entrada de GNOME</title>

    <revhistory>
      <revision>
        <revnumber>0.0</revnumber>
        <date>2008-09</date>
      </revision>
    </revhistory>

    <abstract role="description">
      <para>GDM es el Gestor de entrada de GNOME, un programa gráfico de entrada.</para>
    </abstract>

    <authorgroup>
      <author>
        <firstname>Martin</firstname><othername>K.</othername>
           <surname>Petersen</surname>
        <affiliation>
          <address><email>mkp@mkp.net</email></address>
        </affiliation>
      </author>
      <author>
        <firstname>George</firstname><surname>Lebl</surname>
        <affiliation>
          <address><email>jirka@5z.com</email></address>
        </affiliation>
      </author>
      <author>
        <firstname>Jon</firstname><surname>McCann</surname>
        <affiliation>
          <address><email>mccann@jhu.edu</email></address>
        </affiliation>
      </author>
      <author>
        <firstname>Ray</firstname><surname>Strode</surname>
        <affiliation>
          <address><email>rstrode@redhat.com</email></address>
        </affiliation>
      </author>
      <author role="maintainer">
        <firstname>Brian</firstname><surname>Cameron</surname>
        <affiliation>
          <address><email>Brian.Cameron@Oracle.COM</email></address>
        </affiliation>
      </author>
    </authorgroup>
    <copyright>
      <year>1998</year>
      <year>1999</year>
      <holder>Martin K. Petersen</holder>
    </copyright>
    <copyright>
      <year>2001</year>
      <year>2003</year>
      <year>2004</year>
      <holder>George Lebl</holder>
    </copyright>
    <copyright>
      <year>2003</year>
      <year>2007</year>
      <year>2008</year>
      <holder>Red Hat, Inc.</holder>
    </copyright>
    <copyright>
      <year>2003</year>
       <year>2011</year>
       <holder>Oracle and/or its affiliates. All rights reserved.</holder>
    </copyright>

    

    <releaseinfo>Este manual describe la versión 2.26.0 del Gestor de entrada de GNOME. Se actualizó por última vez el 2 de febrero de 2009.</releaseinfo>  
  </articleinfo>

  <!-- ============= Preface ================================== -->

  <sect1 id="preface">
    <title>Términos y convenciones usados en este manual</title>

    <para>Este manual describe la versión 2.26.0 del Gestor de entrada de GNOME. Se actualizó por última vez el 2 de febrero de 2009.</para>  

    <para>
      Chooser - A program used to select a remote host for managing a
      display remotely on the attached display (<command>gdm-host-chooser</command>).
    </para>

    <para>
      FreeDesktop - The organization providing desktop standards, such as the
      Desktop Entry Specification used by GDM.
      <ulink type="http" url="http://www.freedesktop.org/">
      http://www.freedesktop.org</ulink>.
    </para>
    <para>GDM: El gestor de entrada de GNOME. Se usa para describir el paquete de software como un todo.</para>

    <para>
      Greeter - The graphical login window (provided by <command>gnome-shell</command>).
    </para>

    <para>PAM: Mecanismo de complementos de autenticación (Pluggable Authentication Mechanism)</para>

    <para>XDMCP: Protocolo de gestión de pantallas X (X Display Manage Protocol)</para>

    <para>
      Xserver - An implementation of the X Window System.  For example the
      Xorg Xserver provided by the X.org Foundation
      <ulink type="http" url="http://www.x.org/">http://www.x.org</ulink>.
    </para>

    <para>
      Paths that start with a word in angle brackets are relative to the
      installation prefix. I.e. <filename>&lt;share&gt;/pixmaps/</filename>
      refers to <filename>/usr/share/pixmaps</filename> if GDM was
      configured with <command>--prefix=/usr</command>.
    </para>
  </sect1>

  <!-- ============= Overview ================================= -->

  <sect1 id="overview">
    <title>Vista general</title>

    <sect2 id="introduction">
      <title>Introducción</title>

      <para>El Gestor de entrada de GNOME (GDM) es un gestor de entrada que implementa todas las características significativas requeridas para gestionar pantallas remotas y locales. GDM se ha escrito desde cero y no contiene nada de código de XDM o del X Consortium.</para>

      <para>Note que el GDM es altamente configurable y muchos ajustes de configuración pueden afectar a la seguridad. Los temas sobre los que debe prestar atención están resaltados en este documento.</para> 

      <para>Note que algunos sistemas operativos configuran GDM para comportarse de forma diferente a los valores predeterminados, como se describe en este documento. Si GDM no parece comportarse como se documenta, entonces compruebe si alguna configuración relacionada difiere de la aquí descrita.</para>

      <para>
        For further information about GDM, refer to the project website at
        <ulink type="http" url="http://wiki.gnome.org/Projects/GDM/">
        http://wiki.gnome.org/Projects/GDM</ulink>.
      </para>

      <para>
        For discussion or queries about GDM, refer to the discussion forum at
        <ulink type="http" url="https://discourse.gnome.org/tag/gdm">
        https://discourse.gnome.org/tag/gdm</ulink>.
        The archives of the previous mailing list are also a good resource to
        check to seek answers to common questions. The list was archived at
        <ulink type="http" url="https://mail.gnome.org/archives/gdm-list/">
        https://mail.gnome.org/archives/gdm-list/</ulink> and has a search
        facility to look for messages with keywords.
      </para>

      <para>
        Please submit any bug reports or enhancement requests to
        <ulink type="http" url="https://gitlab.gnome.org/GNOME/gdm/-/issues/">
        https://gitlab.gnome.org/GNOME/gdm/-/issues/</ulink>.
      </para>
    </sect2>

    <sect2 id="stability">
      <title>Estabilidad de interfaces</title>

      <para>Las versiones GDM 2.20 y anteriores soportaban configuraciones de interfaces estables. No obstante, el código base se ha reescrito completamente para GNOME 2.22 y no es totalmente compatible hacia atrás con las versiones anteriores. Esto es en parte porque las cosas funcionan de diferente forma, algunas opciones simplemente no tienen sentido, en parte porque algunas opciones nuevas las han sustituido y en parte porque algunas funcionalidades aún no se han implementado.</para>

      <para>
        Interfaces which continue to be supported in a stable fashion include
        the Init, PreSession, PostSession, PostLogin, and Xsession scripts.
        Some daemon configuration options in the 
        <filename>&lt;etc&gt;/gdm/custom.conf</filename> file continue to be
        supported.  Also, the <filename>~/.dmrc</filename>, and face browser
        image locations are still supported.
      </para>

      <para>Las versiones de GDM 2.20 y anteriores soportaban la capacidad de gestionar pantallas múltiples con tarjetas gráficas separadas, como se usa en entornos de terminales de servidor, iniciando sesión a traes de programas como Xnest o Xephyr, el programa gdmsetup, la interfaz de entrada con temas basados en XML y la capacidad de ejecutar el selector XDMCP desde la pantalla de inicio de sesión. Estas características no se han añadido durante la reescritura de la versión 2.22.</para>

    </sect2>

    <sect2 id="functionaldesc">
      <title>Descripción funcional</title>

<!--
<para>
        TODO - Would be good to discuss D-Bus, perhaps the new GObject model,
               and to explain the reasons why the rewrite made GDM better.
               From a high-level overview perspective, rather than the
               technical aspects.
</para>
-->

      <para>GDM es responsable de gestionar pantallas en el sistema. Esto incluye la autenticación de usuarios, iniciar la sesión del usuario y terminar la sesión del usuario. GDM es configurable y las formas en que puede configurarse se describen en la sección «Configurar GDM» de este documento. GDM también es accesible para usuarios con discapacidades.</para>

      <para>GDM proporciona la capacidad de gestionar la consola principal de la pantalla y las pantallas lanzadas a través de VT. Está integrado con otros programas, tales como la miniaplicación Selector de usuarios y el salvapantallas para gestionar múltiples pantallas en la consola a través del terminal virtual (TV) del servidor X. También puede gestionar pantallas XDMCP.</para>

      <para>
        Regardless of the display type, GDM will do the following when it
        manages the display.  It will start an Xserver process, then run the
        <filename>Init</filename> script as the root user, and start the
        greeter program on the display.
      </para>

      <para>
        The greeter program is run as the unprivileged "gdm"
        user/group.  This user and group are described in the
        "Security" section of this document.  The main functions of
        the greeter program are to provide a mechanism for selecting
        an account for log in and to drive the dialogue between
        the user and system when authenticating that account. The authentication
        process is driven by Pluggable Authentication Modules (PAM).  The PAM
        modules determine what prompts (if any) are shown to the user to
        authenticate.  On the average system, the greeter program will request
        a username and password for authentication.  However some systems may
        be configured to use supplemental mechanisms such as a fingerprint or
        SmartCard readers. GDM can be configured to support these
        alternatives in parallel with greeter login extensions and the
        <command>--enable-split-authentication</command>
        <filename>./configure</filename> option, or one at a
        time via system PAM configuration.
      </para>

      <para>
         The smartcard extension can be enabled or disabled via the
         <filename>org.gnome.display-manager.extensions.smartcard.active</filename>
         gsettings key.
      </para>

      <para>
         Likewise, the fingerprint extension can be enabled or disabled via the
         <filename>org.gnome.display-manager.extensions.fingerprint.active</filename>
         gsettings key.
      </para>

      <para>GDM y PAM se pueden configurar para que no soliciten ninguna entrada, lo que hará que GDM inicie la sesión automáticamente, lo que puede ser útil en algunos entornos, como sistemas de un único usuarios o kioscos.</para>

      <para>
        In addition to authentication, the greeter program allows the user to
        select which session to start and which language to use.  Sessions are
        defined by files that end in the .desktop suffix and more information
        about these files can be found in the "GDM User Session and Language
        Configuration" section of this document.  By default, GDM is configured
        to display a face browser so the user can select their user account by
        clicking on an image instead of having to type their username. GDM
        keeps track of the user's default session and language in the user's
        <filename>~/.dmrc</filename> and will use these defaults if the user
        did not pick a session or language in the login GUI.
      </para>

      <para> 
        After authenticating a user, the daemon runs the
        <filename>PostLogin</filename> script as root, then runs the  
        <filename>PreSession</filename> script as root.  After running these
        scripts, the user session is started.  When the user exits their 
        session, the <filename>PostSession</filename> script is run as root.
        These scripts are provided as hooks for distributions and end-users
        to customize how sessions are managed.  For example, using these 
        hooks you could set up a machine which creates the user's $HOME
        directory on the fly, and erases it on logout.  The difference 
        between the <filename>PostLogin</filename> and
        <filename>PreSession</filename> scripts is that
        <filename>PostLogin</filename> is run before the pam_open_session call
        so is the right place to do anything which should be run before the
        user session is initialized.  The <filename>PreSession</filename>
        script is called after session initialization.
      </para>
    </sect2>

    <sect2 id="greeterpanel">
      <title>El panel de la interfaz de entrada con temas</title>
      <para>El programa de interfaz gráfica de GDM muestra el panel empotrado en la parte inferior de la ventana que proporciona funcionalidades adicionales. Cuando un usuario está seleccionado, el panel permite al usuario que seleccione qué sesión, idioma y distribución de teclado quiere usar después de iniciar sesión. El selector de distribuciones de teclado también cambia la distribución de teclado cuando escribe su contraseña. El panel también contiene un área para que los servicios de inicio de sesión dejen iconos de estado. Algunos ejemplos de iconos de estado incluyen un icono de batería para mostrar el usa actual de la batería y un icono para activar las características de accesibilidad. El programa de interfaz gráfica también proporciona botones que permiten al usuario apagar o reiniciar el sistema. Es posible configurar GDM para que no proporcione los botones de apagado y reinicio. GDM también se puede configurar a través de PolicyKit (o a través de RBAC en Oracle Solaris) para que el usuario deba obtener la autorización apropiada antes de aceptar una petición de apagado o reinicio.</para>

      <para>Note que las características de distribución del teclado sólo están disponibles en sistemas que soporten libxklavier.</para>
    </sect2>

    <sect2 id="accessibility">
      <title>Accesibilidad</title>

        <para>GDM soporta «Inicio de sesión accesible» permitiendo que los usuarios inicien sesión en su escritorio incluso si no pueden usar fácilmente la pantalla, el ratón o el teclado de la forma usual. Las características de las Tecnologías de asistencia, tales como el teclado en pantalla, el lector de pantalla, el magnificador de pantalla y la accesibilidad del teclado están disponibles. También es posible activar texto grande o mayor contraste de iconos y controles si es necesario. Para obtener más información acerca de cómo configurar las características de accesibilidad consulte la sección «Configuración de la accesibilidad» del documento.</para>

        <para>En algunos sistemas operativos es necesario asegurarse de que el usuario de GDM es un miembro del grupo «audio» para los programas de accesibilidad que necesiten salida de sonido (tal como texto-a-voz) para su funcionamiento.</para>
    </sect2>

    <sect2 id="facebrowser">
      <title>El visor de rostros de GDM</title>

      <para>El Visor de rostros es la interfaz que permite a los usuarios seleccionar su nombre de usuario pulsando en una imagen. Esta característica se puede activar o desactivar a través de la clave de GSettings org.gnome.login-screen disable-user-list y está activada de forma predeterminada. Cuando está desactivada los usuarios deben introducir su nombre de usuario completo a mano. Cuando está activada muestra todos los usuarios locales que pueden iniciar sesión en el sistema (todas las cuentas de usuario definidas en el archivo /etc/passwd que tienen una shell válida y un UID suficientemente alto) y también los usuarios remotos que han iniciado sesión recientemente. El Visor de rostros de las versiones GDM 2.20 y anteriores intentaba mostrar todos los usuarios remotos, lo que causaba problemas de rendimiento en entornos de empresa grandes.</para>

      <para>El Visor de rostros está configurado para mostrar al principio de la lista a los usuarios que inician sesión más frecuentemente. Esto ayuda a que los usuarios que inician sesión frecuentemente puedan encontrar rápidamente su imagen de inicio de sesión.</para>

      <para>El Visor de rostros soporta «búsqueda al teclear» que mueve dinámicamente la selección de rostros según escribe el usuario para que coincida con el usuario de la lista. Esto significa que un usuario con un nombre de usuario largo sólo tendrá que teclear los primeros caracteres de su nombre de usuario antes de que se seleccione el elemento correcto en la lista.</para>

      <para>
        The icons used by GDM can be installed globally by the sysadmin or can
        be located in the user's home directories.  If installed globally
        they should be in the <filename>&lt;share&gt;/pixmaps/faces/</filename>
        directory and the filename should be the name of the user.  Face image
        files should be a standard image that GTK+ can read, such as PNG or
        JPEG.  Face icons placed in the global face directory must be readable
        to the GDM user.
      </para>

<!--
<para>
        TODO - In the old GDM the ~/gnome2/gdm file is used, but the new code
               seems to use ~/.gnome/gdm.  Error?
</para>
-->
      <para>
        If there is no global icon for the user, GDM will look in the user's
        $HOME directory for the image file.  GDM will first look for the user's
        face image in <filename>~/.face</filename>.  If not found, it will try 
        <filename>~/.face.icon</filename>.  If still not found, it will use the
        value defined for "face/picture=" in the 
        <filename>~/.gnome2/gdm</filename> file.
      </para>

      <para>Si un usuario no tiene una imagen de rostro definida, GDM usará el icono "stock_person" definido en el tema GTK+ actual. Si dicha imagen no está definida, entonces usará la imagen de rostro genérica.</para>

      <para>Note que la carga y escalado de iconos de rostro ubicados en las carpetas de inicio de usuario remotos puede ser una tarea que consuma mucho tiempo. Ya que no es práctico cargar imágenes a través de NIS o NFS, GDM no intenta cargar imágenes de carpetas de inicio de usuario remotos.</para>

      <para>Cuando el visor está activado se muestran los nombres de usuario válidos a todos el mundo. Si XDMCP está activado, entonces los nombres de usuario se exponen a usuarios remotos. Esto, desde luego, limita la seguridad en alguna forma ya que un usuario malicioso no debe averiguar nombres de usuario válidos. En algunos entornos muy restrictivos el visor de rostros puede no ser apropiado.</para>

    </sect2>

    <sect2 id="xdmcp">
      <title>XDMCP</title>

<!--
<para>
        TODO - What XDMCP features actually work?   I know that the
               chooser is missing.
</para>
-->

      <para>El demonio GDM puede configurase para escuchar y gestionar las solicitudes del protocolo X Display Manage Protocol (XDMCP) de las pantallas remotas. Por omisión el soporte para XDMCP está desactivado, pero puede activarse si se quiere. Si GDM está construido con soporte TCP Wrapper, entonces el demonio sólo permitirá acceder a equipos remotos especificados en la sección de servicio GDM en el archivo de configuración de TCP Wrappers.</para>

      <para>GDM incluye varias medidas para hacerlo más resistente a ataques de denegación de servicio en el servicio XDMCP. Muchos de los parámetros del protocolo, tiempos de espera negociación, etc pueden ajustarse finamente. La configuración predeterminada debería funcionar en la mayoría de sistemas.</para>

      <para>De forma predeterminada GDM escucha para peticiones XDMCP en el puerto UDP normal que usa XDMCP, el puerto 177, y responderá a peticiones QUERY y BROADCAST_QUERY enviando un paquete WILLING al origen.</para>

      <para>GDM también puede configurarse para confiar en solicitudes INDIRECT y presentar un selector de equipos al display remoto. GDM recordará la selección del usuario y reenviará las peticiones subsiguiente al gestor seleccionado. GDM también soporta una extensión al protocolo que hará que se olvide de la redirección una vez que la conexión del usuario tiene éxito. Esta extensión está soportada sólo si ambos demonios son GDM. Es transparente y será ignorada por XDM u otros demonios que implementan XDMCP.</para>

      <para>
        If XDMCP seems to not be working, make sure that all machines are
        specified in <filename>/etc/hosts</filename>.
      </para>

      <para>Refiérase a la sección «Seguridad» para información acerca de las preocupaciones de seguridad al usar XDMCP.</para>
    </sect2>

    <sect2 id="logging">
      <title>Registro de actividad</title>

      <para>
        GDM uses syslog to log errors and status.  It can also log debugging
        information, which can be useful for tracking down problems if GDM is
        not working properly.  Debug output can be enabled by setting the
        debug/Enable key to "true" in the
        <filename>&lt;etc&gt;/gdm/custom.conf</filename> file.
      </para>

      <para>
        Output from the various Xservers is stored in the GDM log directory,
        which is normally <filename>&lt;var&gt;/log/gdm/</filename>.  Any
        Xserver messages are saved to a file associated with the display value,
        <filename>&lt;display&gt;.log</filename>.  
      </para>

      <para>
        The session output is piped through the GDM daemon to the
        <filename>~/<replaceable>$XDG_CACHE_HOME</replaceable>/gdm/session.log</filename>
        file which usually expands to <filename>~/.cache/gdm/session.log</filename>.
        The file is overwritten on each login, so logging out and logging back
        into the same user via GDM will cause any messages from the previous
        session to be lost.
      </para>

      <para>
        Note that if GDM can not create this file for some reason, then a
        fallback file will be created named <filename>~/<replaceable>$XDG_CACHE_HOME</replaceable>/gdm/session.log.XXXXXXXX</filename>
        where the <filename>XXXXXXXX</filename> are some random characters.
      </para>
    </sect2>

    <sect2 id="fusa">
      <title>Cambio rápido de usuarios</title>

      <para>GDM permite que varios usuarios inicien sesión al mismo tiempo. Después de que un usuario haya iniciado sesión, otros usuarios pueden iniciar sesión a través del Selector de usuarios en el Panel de GNOME o a través del botón «Cambiar usuario» en el diálogo del salvapantallas de GNOME. La sesión activa se puede cambiar de nuevo usando el mismo mecanismo, Note que algunas distribuciones puede que no añadan el Selector de usuario a la configuración predeterminada del panel. Se puede añadir usando el menú contextual del panel.</para>
      <para>Note que esta característica está disponible en sistemas que soporten Terminales virtuales. Esta característica no funcionará si los Terminales virtuales no están disponibles.</para>
    </sect2>
  </sect1>

  <!-- ============= Security ================================= -->

  <sect1 id="security">
    <title>Seguridad</title>

    <sect2 id="gdmuser">
      <title>El usuario y grupo GDM</title>

      <para>Por razones de seguridad se recomienda un ID de usuario y grupo dedicados para una operación adecuada. Este usuario y grupo generalmente son «gdm» en la mayoría de los sistemas, pero se puede configurar cualquier usuario o grupo. Todos los programas IGU de GDM se ejecutan como este usuario, de tal forma que programas que interactúan con el usuario se ejecutan en una «sandbox». Este usuario y grupo deberían tener privilegios limitados.</para>

      <para>
        The only special privilege the "gdm" user requires is the
        ability to read and write Xauth files to the
        <filename>&lt;var&gt;/run/gdm</filename> directory.  The
        <filename>&lt;var&gt;/run/gdm</filename> directory should have
        root:gdm ownership and 1777 permissions.
      </para>

      <para>
        You should not, under any circumstances, configure the GDM user/group
        to a user which a user could easily gain access to, such as the user
        <filename>nobody</filename>.  Any user who gains access to an Xauth
        key can snoop on and control running GUI programs running in the
        associated session or perform a denial-of-service attack on it.  It
        is important to ensure that the system is configured properly so that
        only the "gdm" user has access to these files and that it
        is not easy to login to this account.  For example, the account should
        be setup to not have a password or allow non-root users to login to the
        account.
      </para>

      <para>La configuración de la interfaz gráfica de GDM se almacena en GConf. Para permitir que el usuario de GDM sea capaz de escribir la configuración es necesario que el usuario «gdm» tenga permiso de escritura sobre la carpeta $HOME. Los usuarios pueden configurar los ajustes predeterminados de GConf como deseen para evitar tener que proporcionar al usuario «gdm» una carpeta $HOME con permisos de escritura. No obstante algunas características de GDM pueden estar desactivadas si no se puede escribir información de estado en la configuración de GConf.</para>
    </sect2>

    <sect2 id="PAM">
      <title>PAM</title>

      <para>GDM usa PAM para la autenticación del inicio de sesión. PAM significa Pluggable Authentication Module, y lo usan la mayoría de los programas que piden autenticación en su equipo. Permite al administrador configurar diferentes comportamientos de autenticación para distintos programas (tales como SSH, IGU de inicio de sesión, salvapantallas, etc.).</para>

      <para>PAM es complicado y muy configurable, además esta documentación no trata de explicarlo en detalle. En su lugar, se intenta proporcionar una visión general de cómo se relaciona la configuración de PAM con GDM, cómo PAM se configura comúnmente con GDM y problemas conocidos. Se espera que una persona que necesite una configuración PAM necesite leer más documentación de PAM para entender cómo configurar PAM y entender términos usados en esta sección.</para>
        
      <para>
        PAM configuration has different, but similar, interfaces on different
        Operating Systems, so check the
        <ulink type="help" url="man:pam.d">pam.d</ulink> or
        <ulink type="help" url="man:pam.conf">pam.conf</ulink> man page for
        details.  Be sure you read the PAM documentation and are comfortable
        with the security implications of any changes you intend to make to
        your configuration.
      </para>

      <para>Tenga en cuenta que, de forma predeterminada, GDM usa el nombre de servicio PAM «gdm» para un inicio de sesión normal y el nombre de servicio PAM «gdm-autologin» para el inicio de sesión automático. Estos servicios pueden no estar definidos en sus archivos de configuración pam.d o pam.conf. Si no hay ninguna entrada, entonces GDM usará el comportamiento predeterminando de PAM. En la mayoría de los sistemas debería funcionar bien. No obstante, la característica de inicio de sesión automático puede no funcionar si el servicio gdm-autologin no está definido.</para>

      <para>
        The <filename>PostLogin</filename> script is run before
        pam_open_session is called, and the <filename>PreSession</filename>
        script is called after.  This allows the system administrator to add
        any scripting to the login process either before or after PAM 
        initializes the session.
      </para>

      <para>
        If you wish to make GDM work with other types of authentication
        mechanisms (such as a fingerprint or SmartCard reader), then you should
        implement this by using a PAM service module for the desired
        authentication type rather than by trying to modify the GDM code
        directly.  Refer to the PAM documentation on your system.
      </para>

      <para>PAM tiene algunas limitaciones acerca de ser capaz de trabajar con múltiples tipos de autenticación al mismo tiempo, como soportar la capacidad de aceptar tarjetas SmartCard y escribir el usuario y la contraseña en el programa de inicio de sesión. Existen técnicas que se usan para hacer que esto funcione, y es mejor conocer cómo se soluciona comúnmente este problema al establecer tal tipo de configuración.</para>

      <para>Si el inicio de sesión automático no funciona en un sistema, compruebe que la pila PAM «gdm-autologin» está definida en la configuración de PAM. Para que esto funcione, si es necesario use un módulo PAM que simplemente no haga autenticación, o que simplemente devuelva PAM_SUCCESS desde todos sus interfaces públicos. Asumiendo que su sistema tiene pam_allow para que el módulo PAM lo haga, una configuración PAM para activara «gdm-autologin» podría ser la siguiente:</para>

<screen>
       gdm-autologin auth  required    pam_unix_cred.so.1
       gdm-autologin auth  sufficient  pam_allow.so.1
       gdm-autologin account  sufficient  pam_allow.so.1
       gdm-autologin session  sufficient  pam_allow.so.1
       gdm-autologin password  sufficient  pam_allow.so.1
</screen>

      <para>La configuración anterior hará que no se genere información de «lastlog». Si quiere una entrada de «lastlog», use lo siguiente para la sesión:</para>

<screen>
       gdm-autologin session required pam_unix_session.so.1
</screen>

      <para>Si varias personas usan el equipo, lo que hace que el inicio de sesión automático no sea apropiado, puede querer permitir que algunos usuarios inicien sesión sin su contraseña. Esta característica se puede activar como una opción por usuario en la herramienta de usuarios desde las gnome-system-tools; se consigue comprobando que dichos usuarios están en un grupo Unix llamado «nopasswdlogin» antes de preguntar la contraseña. Para que esto funcione el archivo de configuración PAM para el servicio «gdm» debe incluir una línea así:</para>

<screen>
      gdm auth  sufficient  pam_succeed_if.so  user ingroup nopasswdlogin
</screen>

    </sect2>

    <sect2 id="utmpwtmp">
      <title>utmp y wtmp</title>

      <para>
        GDM generates utmp and wtmp User Accounting Database entries upon
        session login and logout.  The utmp database contains user access
        and accounting information that is accessed by commands such as
        <command>finger</command>, <command>last</command>,
        <command>login</command>, and <command>who</command>.  The wtmp
        database contains the history of user access and accounting 
        information for the utmp database.  Refer to the 
        <ulink type="help" url="man:utmp">utmp</ulink> and
        <ulink type="help" url="man:wtmp">wtmp</ulink>
        man pages on your system for more information.
      </para>
    </sect2>

    <sect2 id="xauth">
      <title>Esquema de autenticación del servidor X</title>

      <para>
        Xserver authorization files are stored in a newly created subdirectory
        of <filename>&lt;var&gt;/run/gdm</filename> at start up.  These files
        are used to store and share a "password" between X clients
        and the Xserver.  This "password" is unique for each session
        logged in, so users from one session can't snoop on users from another.
      </para>

      <para>GDM sólo soporta el esquema de autenticación del servidor X MIT-MAGIC-COOKIE-1. Normalmente se gana poco con otros esquemas, no se ha hecho ningún esfuerzo en implementarlos hasta ahora. Sea especialmente cuidadoso acerca de usar XDMCP porque la cookie de autenticación del servidor X va sobre el cable en texto plano. Si el espionaje es posible, entonces el atacante podría simplemente espiar su contraseña de autenticación mientras usted inicia una sesión, independientemente del esquema de autenticación que se esté usando. Si el espionaje es posible y no deseable, entonces tendrá que crear un túnel a través de SSH para la conexión X en vez de usar XDMCP. Podría pensar en XDMCP como una clase de Telnet gráfico que tiene los mismos problemas de seguridad. En la mayoría de los casos se debería preferir SSH sobre las características XDMCP de GDM.</para>

    </sect2>

    <sect2 id="xdmcpsecurity">
      <title>Seguridad XDMCP</title>

      <para>Incluso aunque su pantalla esté protegida por cookies, XEvents y las pulsaciones de teclas que se introducen al escribir las contraseñas aún irán sobre el cable en texto claro. Es trivial capturarlas.</para>

      <para>XDMCP es útil principalmente para ejecutar clientes ligeros como en terminales de laboratorio. Dichos clientes ligeros sólo necesitarán la red alguna vez para acceder al servidor, y así parece que la mejor política para la seguridad es tener a esos clientes ligeros en una red separada que no pueda accederse desde el mundo exterior, y sólo pueda conectarse al servidor. El único punto desde el que necesita acceder desde fuera es el servidor. Este tipo de configuración nunca debería usar un concentrador no gestionado u otra red que pueda ser vigilada (con un «sniffer»).</para>

    </sect2>

    <sect2 id="xdmcpaccess">
      <title>Control de acceso XDMCP</title>

      <para>El control de acceso XDMCP se realiza usando TCP wrappers. Es posible compilar GDM sin TCP wrappers ya que esta característica puede que no esté soportada en algunos sistemas operativos.</para>

      <para>
        You should use the daemon name <command>gdm</command> in the
        <filename>&lt;etc&gt;/hosts.allow</filename> and
        <filename>&lt;etc&gt;/hosts.deny</filename> files.  For example to 
        deny computers from <filename>.evil.domain</filename> from logging in,
        then add
      </para>
<screen>
gdm: .evil.domain
</screen>
      <para>
        to <filename>&lt;etc&gt;/hosts.deny</filename>.  You may also need
        to add
      </para>
<screen>
gdm: .your.domain
</screen>
      <para>
        to your <filename>&lt;etc&gt;/hosts.allow</filename> if you normally
        disallow all services from all hosts.  See the
        <ulink type="help" url="man:hosts.allow">hosts.allow(5)</ulink> man
        page for details.
      </para>
    </sect2>

    <sect2 id="firewall">
      <title>Seguridad con cortafuegos</title>

      <para>Incluso aunque GDM intenta diferenciar inteligentemente a los atacantes potenciales, se recomienda que bloquee el puerto XDMCP (normalmente el puerto UDP 177) en su cortafuegos a no ser que realmente lo necesite. GDM se protege contra ataques de denegación de servicio, pero el protocolo X aún es inherentemente inseguro y sólo debería usarse en entornos controlados. Además cada conexión remota toma muchos recursos, así que es más fácil hacer una denegación de servicios a un servidor XDMCP que a un servidor web.</para>

      <para>También es inteligente bloquear todos los puertos del servidor X. Estos puertos son los TCP 6000+ (uno para cada número de pantalla) en el cortafuegos. Note que GDM usará los números de pantalla 20 y superiores para los servidores flexibles bajo demanda.</para>

      <para>X no es un protocolo muy seguro para dejarlo en la red, y XDMCP es aún menos seguro.</para>
    </sect2>

    <sect2 id="policykit">
      <title>PolicyKit</title>

<!--
<para>
        TODO - Should we say more?
</para>
-->

      <para>GDM se puede configurar para usar PolicyKit para permitir al administrador del sistema controlar si la pantalla de inicio de sesión debería proporcionar los botones de apagado y reinicio en la pantalla gráfica con temas.</para>

      <para>
        These buttons are controlled by the
        <filename>org.freedesktop.consolekit.system.stop-multiple-users</filename>
        and
        <filename>org.freedesktop.consolekit.system.restart-multiple-users</filename>
        actions respectively.  Policy for these actions can be set up using the
        polkit-gnome-authorization tool, or the polkit-auth command line program.
      </para>
 
    </sect2>

    <sect2 id="rbac">
      <title>RBAC (Control de acceso basado en rol)</title>

      <para>Se puede configurar GDM para que use RBAC en lugar de PolicyKit. En este caso, la configuración RBAC se usa para controlar si la pantalla de inicio de sesión debería proporcionar los botones de apagado y reinicio en la pantalla gráfica.</para>

      <para>
        For example, on Oracle Solaris, the "solaris.system.shutdown"
        authorization is used to control this.  Simply modify the 
        <filename>/etc/user_attr</filename> file so that the "gdm"
        user has this authorization.
      </para>
    </sect2>

  </sect1>

  <!-- ============= ConsoleKit ================================ -->

  <sect1 id="consolekit">
    <title>Soporte para ConsoleKit</title>

<!--
<para>
    TODO - Should we update these docs?  Probably should mention any 
           configuration that users may want to do for using it with GDM?
           If so, perhaps this section should be moved to a subsection of
           the "Configure" section?
</para>
-->

    <para>GDM incluye soporte para publicar la información de entrada del usuario con el framework de contabilidad de usuarios y sesiones conocido como COnsoleKit. ConsoleKit es capaz de hacer un seguimiento de todos los usuarios que hayan iniciado sesión. A este respecto, se puede usar como un reemplazo de los archivos utmp y utmpx que están disponibles en la mayoría de los sistemas Unix.</para>

    <para>Cuando GDM va a crear un proceso de entrada nuevo para un usuario llamará al método privilegiado de ConsoleKit para abrir una sesión nueva para dicho usuario. En este momento GDM también proporciona a ConsoleKit la información acerca de esta sesión de usuario como: el ID de usuario, el nombre de la pantalla X11 que se asociará con la sesión, el nombre de equipo desde el cual se origina la sesión (útil en caso de una sesión XDMCP), si esta sesión es o no es local, etc. Como la entidad que inicia el proceso de usuario, GDM está en una posición única para conocer y confiar en proporcionar estos bits de información acerca de la sesión de usuario. El uso de este método privilegiado está restringido por el uso de una norma de seguridad del sistema de bus de mensajes D-Bus.</para>

    <para>En el caso donde un usuario con una sesión existente y que se haya autenticado en GDM y pida continuar una sesión existente, GDM llama un proceso privilegiado de ConsoleKit para desbloquear esa sesión. Los detalles exactos de qué ocurre cuando la sesión recibe esta señal de desbloqueo están indefinidos y son específicos de la sesión. Sin embargo la mayoría de las sesiones desbloquearán un salvapantallas en respuesta.</para>

    <para>Cuando el usuario elige salir, o si GDM o la sesión terminan de forma inesperada, la sesión de usuario se desregistra de ConsoleKit.</para>
  </sect1>

  <!-- ============= Configuration ============================= -->

  <sect1 id="configuration">
    <title>Configuración</title>

    <para>GDM tiene un número de configuración de interfaces. Estas incluyen puntos de integración de scripts, configuración del demonio, configuración de la interfaz, ajustes generales de sesión, integración con la configuración de gnome-settings-daemon y configuración de la sesión. Estos tipos de integración se describen debajo en detalle.</para>

    <sect2 id="scripting">
      <title>Puntos de integración de scripts</title>
      
      <para>
        The GDM script integration points can be found in the
        <filename>&lt;etc&gt;/gdm/</filename> directory:
      </para>

<screen>
Xsession
Init/
PostLogin/
PreSession/
PostSession/
</screen>

      <para>
        The <filename>Init</filename>, <filename>PostLogin</filename>,
        <filename>PreSession</filename>, and <filename>PostSession</filename>
        scripts all work as described below.
      </para>

      <para>
        For each type of script, the default one which will be executed is
        called "Default" and is stored in a directory associated with
        the script type.  So the default <filename>Init</filename> script is 
        <filename>&lt;etc&gt;/gdm/Init/Default</filename>.  A per-display
        script can be provided, and if it exists it will be run instead of the 
        default script.  Such scripts are stored in the same directory as the
        default script and have the same name as the Xserver DISPLAY value for
        that display.  For example, if the <filename>&lt;Init&gt;/:0</filename>
        script exists, it will be run for DISPLAY ":0".
     </para>

     <para>Todos estos scripts se ejecutan con privilegios de root, devuelven 0 si se ejecutan satisfactoriamente y distinto de cero si hubo algún fallo que causó que el inicio de sesión se abortase. Note también que GDM se bloqueará hasta que los scripts hayan finalizado, de tal forma que si algún script se cuelga hará que también se cuelgue el proceso de inicio de sesión.</para>

      <para>
        When the Xserver for the login GUI has been successfully started, but
        before the login GUI is actually displayed, GDM will run the
        <filename>Init</filename> script.  This script is useful for starting
        programs that should be run while the login screen is showing, or for
        doing any special initialization if required.
      </para>

      <para>
        After the user has been successfully authenticated GDM will run the
        <filename>PostLogin</filename> script.  This is done before any session
        setup has been done, including before the pam_open_session call.  This
        script is useful for doing any session initialization that needs to
        happen before the session starts.  For example, you might setup the
        user's $HOME directory if needed.
      </para>

      <para>
        After the user session has been initialized, GDM will run the
        <filename>PreSession</filename> script.  This script is useful for
        doing any session initialization that needs to happen after the 
        session has been initialized.  It can be used for session management or
        accounting, for example.
      </para>

      <para> 
        When a user terminates their session, GDM will run the
        <filename>PostSession</filename> script.  Note that the Xserver will
        have been stopped by the time this script is run, so it should not be
        accessed.  
      </para>

      <para>
        Note that the <filename>PostSession</filename> script will be run
        even when the display fails to respond due to an I/O error or
        similar. Thus, there is no guarantee that X applications will work
        during script execution.
      </para>

      <para>
        All of the above scripts will set the
        <filename>$RUNNING_UNDER_GDM</filename> environment variable to
        <filename>yes</filename>.  If the scripts are also shared with other
        display managers, this allows you to identify when GDM is calling these
        scripts, so you can run specific code when GDM is used.
      </para>
    </sect2>

    <sect2 id="autostart">
      <title>Configuración automática al inicio</title>
      
      <para>
        The <filename>&lt;share&gt;/gdm/autostart/LoginWindow</filename>
        directory contains files in the format specified by the
        "FreeDesktop.org Desktop Application Autostart
        Specification".  Standard features in the specification may be
        used to specify programs that should auto-restart or only be launched
        if a GConf configuration value is set, etc.
      </para>

      <para>
        Any <filename>.desktop</filename> files in this directory will cause
        the associated program to automatically start with the login GUI
        greeter.  By default, GDM is shipped with files which will autostart
        the gdm-simple-greeter login GUI greeter itself, the
        gnome-power-manager application, the gnome-settings-daemon, and the
        metacity window manager.  These programs are needed for the greeter
        program to work.  In addition, desktop files are provided for starting
        various AT programs if the configuration values specified in the
        Accessibility Configuration section below are set.
      </para>
    </sect2>

    <sect2 id="xsessionscript">
      <title>Script Xsession</title>

      <para>
        There is also an <filename>Xsession</filename> script located at
        <filename>&lt;etc&gt;/gdm/Xsession</filename> which is called between
        the <filename>PreSession</filename> and the
        <filename>PostSession</filename> scripts.  This script does not
        support per-display like the other scripts.  This script is used for
        actually starting the user session.  This script is run as the user,
        and it will run whatever session was specified by the Desktop session
        file the user selected to start. 
      </para>
    </sect2>

    <sect2 id="daemonconfig">
      <title>Configuración del demonio</title>

      <para>
        The GDM daemon is configured using the
        <filename>&lt;etc&gt;/gdm/custom.conf</filename> file.  Default
        values are stored in GConf in the <filename>gdm.schemas</filename>
        file.  It is recommended that end-users modify the
        <filename>&lt;etc&gt;/gdm/custom.conf</filename> file because the
        schemas file may be overwritten when the user updates their system to
        have a newer version of GDM.
      </para>

      <para>Note que las versiones antiguas de GDM soportaban opciones de configuración adicional que ya no se soportan en las últimas versiones de GDM.</para>

      <para>
        The <filename>&lt;etc&gt;/gdm/custom.conf</filename> file is in the
        <filename>keyfile</filename> format.  Keywords in brackets
        define group sections, strings before an equal sign (=) are keys and
        the data after equal sign represents their value.  Empty lines or
        lines starting with the hash mark (#) are ignored.  
      </para>

      <para>
        The file <filename>&lt;etc&gt;/gdm/custom.conf</filename> supports the
        "[daemon]", "[security]", and "[xdmcp]"
        group sections.  Within each group, there are particular key/value
        pairs that can be specified to modify how GDM behaves.  For example,
        to enable timed login and specify the timed login user to be a user
        named "you", you would modify the file so it contains the
        following lines:
      </para>
     
<screen>
[daemon]
TimedLoginEnable=true
TimedLogin=you
</screen>

      <para>A continuación está la lista completa de las claves de configuración soportadas:</para>

      <sect3 id="choosersection">
        <title>[chooser]</title>
        <variablelist>

          <varlistentry>
            <term>Multicast</term>
            <listitem>
              <synopsis>Multicast=false</synopsis>
              <para>Si está activado e IPv6 está activado, el selector emitirá una petición multicast a la red local y recogerá las respuestas de los servidores que se hayan unido al grupo multicast.</para>
            </listitem>
          </varlistentry>
         
          <varlistentry>
            <term>MulticastAddr</term>
            <listitem>
              <synopsis>MulticastAddr=ff02::1</synopsis>
              <para>Esta es la dirección de enlace local multicast.</para>
            </listitem>
          </varlistentry>
        </variablelist>
      </sect3>

      <sect3 id="daemonsection">
        <title>[daemon]</title>
        <variablelist>
          <varlistentry>
            <term>TimedLoginEnable</term>
            <listitem>
              <synopsis>TimedLoginEnable=false</synopsis>
              <para>
                 If the user given in <filename>TimedLogin</filename> should be
                logged in after a number of seconds (set with
                <filename>TimedLoginDelay</filename>) of inactivity on the
                login screen.  This is useful for public access terminals or
                perhaps even home use.  If the user uses the keyboard or
                browses the menus, the timeout will be reset to 
                <filename>TimedLoginDelay</filename> or 30 seconds, whichever 
                is higher.   If the user does not enter a username but just
                hits the ENTER key while the login program is requesting the
                username, then GDM will assume the user wants to login
                immediately as the timed user.  Note that no password will be
                asked for this user so you should be careful, although if using
                PAM it can be configured to require password entry before
                allowing login.  Refer to the "Security-&gt;PAM"
                section of the manual for more information, or for help if this
                feature does not seem to work.
              </para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>TimedLogin</term>
            <listitem>
              <synopsis>TimedLogin=</synopsis>
              <para>Éste es el usuario que debería iniciar sesión después de un número de segundos de inactividad especificado.</para>
              <para>Si el valor termina con una barra vertical «|» (el símbolo de tubería), entonces el GDM ejecutará el programa especificado y usará cualquier valor que se devuelva en la salida estándar del programa como el usuario. El programa se ejecuta con la variable de entorno DISPLAY establecida, de tal forma que es posible especificar el usuario para cada pantalla. Por ejemplo, si el valor es «/usr/bin/getloginuser|», entonces el programa «/usr/bin/getloginuser» se ejecutará para obtener la variable del usuario</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>TimedLoginDelay</term>
            <listitem>
              <synopsis>TimedLoginDelay=30</synopsis>
              <para>
                Delay in seconds before the <filename>TimedLogin</filename>
                user will be logged in.
              </para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>AutomaticLoginEnable</term>
            <listitem>
              <synopsis>AutomaticLoginEnable=false</synopsis>
              <para>
                If true, the user given in <filename>AutomaticLogin</filename>
                should be logged in immediately. This feature is like timed
                login with a delay of 0 seconds.
              </para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>AutomaticLogin</term>
            <listitem>
              <synopsis>AutomaticLogin=</synopsis>
              <para>
                This is the user that should be logged in immediately if
                <filename>AutomaticLoginEnable</filename> is true.
              </para>
              <para>Si el valor termina con una barra vertical «|» (el símbolo de tubería), entonces el GDM ejecutará el programa especificado y usará cualquier valor que se devuelva en la salida estándar del programa como el usuario. El programa se ejecuta con la variable de entorno DISPLAY establecida, de tal forma que es posible especificar el usuario para cada pantalla. Por ejemplo, si el valor es «/usr/bin/getloginuser|», entonces el programa «/usr/bin/getloginuser» se ejecutará para obtener la variable del usuario</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>User</term>
            <listitem>
              <synopsis>User=gdm</synopsis>
              <para>
                The username under which the greeter and other GUI programs
                are run.  Refer to the <filename>User</filename>
                configuration key and to the "Security-&gt;GDM User And
                Group" section of this document for more information.
              </para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>Group</term>
            <listitem>
              <synopsis>Group=gdm</synopsis>
              <para>
                The group name under which the greeter and other GUI programs
                are run.  Refer to the <filename>Group</filename>
                configuration key and to the "Security-&gt;GDM User And
                Group" section of this document for more information.
              </para>
            </listitem>
          </varlistentry>
        </variablelist>
      </sect3>

      <sect3 id="debugsection">
        <title>Opciones de depuración</title>
      
        <variablelist>
          <title>[debug]</title>
          
          <varlistentry>
            <term>Enable</term>
            <listitem>
              <synopsis>Enable=false</synopsis>
              <para>
                To enable debugging, set the debug/Enable key to
                "true" in the
                <filename>&lt;etc&gt;/gdm/custom.conf</filename>
                file and restart GDM.  Then debug output will be sent to the
                system log file (<filename>&lt;var&gt;/log/messages</filename>
                or <filename>&lt;var&gt;/adm/messages</filename> depending on
                your Operating System).
              </para>
            </listitem>
          </varlistentry>
        </variablelist>
      </sect3>

      <sect3 id="securitysection">
        <title>Opciones de seguridad</title>
      
        <variablelist>
          <title>[security]</title>
          
          <varlistentry>
            <term>DisallowTCP</term>
            <listitem>
              <synopsis>DisallowTCP=true</synopsis>
              <para>
                If true, then always append <filename>-nolisten tcp</filename>
                to the command line when starting attached Xservers, thus
                disallowing TCP connection.  This is a more secure
                configuration if you are not using remote connections.
              </para>
            </listitem>
          </varlistentry>
        </variablelist>
      </sect3>

      <sect3 id="xdmcpsection">
        <title>Soporte XDMCP</title>

        <variablelist>
          <title>[xdmcp]</title>
          
          <varlistentry>
            <term>DisplaysPerHost</term>
            <listitem>
              <synopsis>DisplaysPerHost=1</synopsis>
              <para>Para prevenir que los atacantes llenen la cola de pendientes, GDM sólo permite una conexión para cada equipo remoto. Si quiere proporcionar servicios de pantalla a equipos con más de un monitor debería incrementar este valor.</para>

              <para>Note que el número de pantallas locales permitidas no está limitado. Sólolas conexiones remotas a través de XDMCP están limitadas por esta opción de la configuración.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>Enable</term>
            <listitem>
              <synopsis>Enable=false</synopsis>
              <para>Establecer esto a true activa el soporte XDMCP permitiento que las pantallas X remotas o los terminales X se gestiones por medio de GDM.</para>
            
              <para>
                <filename>gdm</filename> listens for requests on UDP port 177.
                See the Port option for more information.
              </para>
              
              <para>
                If GDM is compiled to support it, access from remote displays
                can be controlled using the TCP Wrappers library. The service
                name is <filename>gdm</filename>
              </para>
            
              <para>
                You should add 
<screen>
gdm:.my.domain
</screen>
                to your <filename>&lt;etc&gt;/hosts.allow</filename>, depending
                on your TCP Wrappers configuration.  See the
                <ulink type="help" url="man:hosts.allow">hosts.allow</ulink>
                man page for details.
              </para>
              
              <para>Note que XDMCP no es un protocolo particularmente seguro y que es una buena idea bloquear el puerto UDP 177 en su cortafuegos a no ser que realmente lo necesite.</para>
            </listitem>
          </varlistentry>
          
          <varlistentry>
            <term>HonorIndirect</term>
            <listitem>
              <synopsis>HonorIndirect=true</synopsis>
              <para>
                Enables XDMCP INDIRECT choosing (i.e. remote execution of
                <filename>gdmchooser</filename>) for X-terminals which do not
                supply their own display browser.
              </para>
            </listitem>
          </varlistentry>
        
          <varlistentry>
            <term>MaxPending</term>
            <listitem>
              <synopsis>MaxPending=4</synopsis>
              <para>Para evitar ataques por denegación de servicio, GDM tiene una cola de tamaño fijo de conexiones pendientes. Sólo pueden iniciarse a la vez MaxPending pantallas.</para>
            
              <para>Note que este parámetro *no* liminta el número de pantallas remotas que se puedan gestionar. Sólo limita el número de pantallas iniciando una conexión simultáneamente.</para>
            </listitem>
          </varlistentry>
          
          <varlistentry>
            <term>MaxSessions</term>
            <listitem>
              <synopsis>MaxSessions=16</synopsis>
              <para>Determina el número máximo de conexiones de pantallas remotas que serán gestionadas simultáneamente. Ej: el número total de pantallas remotas que puede usar su host.</para>
            </listitem>
          </varlistentry>
        
          <varlistentry>
            <term>MaxWait</term>
            <listitem>
              <synopsis>MaxWait=30</synopsis>
              <para>Cuando GDM esté preparado para gestionar una pantalla se envía un paquete ACCEPT a ella conteniendo un id único de sesión que será usado en las conversaciones XDMCP futuras.</para>
            
              <para>GDM entonces colocará el id de sesión en la cola de pendientes esperando a que la pantalla responda con una petición MANAGE.</para>
            
              <para>Si no se recibe ninguna respuesta dentro de MaxWait segundos, GDM declarará la pantalla muerta y la eliminará de la cola pendiente liberando el espacio para otras pantallas.</para>
            </listitem>
          </varlistentry>
          
          <varlistentry>
            <term>MaxWaitIndirect</term>
            <listitem>
              <synopsis>MaxWaitIndirect=30</synopsis>
              <para>
                The MaxWaitIndirect parameter determines the maximum number of
                seconds between the time where a user chooses a host and the
                subsequent indirect query where the user is connected to the
                host.  When the timeout is exceeded, the information about the
                chosen host is forgotten and the indirect slot freed up for
                other displays.  The information may be forgotten earlier if
                there are more hosts trying to send indirect queries then
                <filename>MaxPendingIndirect</filename>.
              </para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>Port</term>
            <listitem>
              <synopsis>Port=177</synopsis>
              <para>
                The UDP port number <filename>gdm</filename> should listen to
                for XDMCP requests. Do not change this unless you know what
                you are doing.
              </para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>Willing</term>
            <listitem>
              <synopsis>Willing=&lt;etc&gt;/gdm/Xwilling</synopsis>
              <para>Cuando la máquina envía un paquete WILLING tras un QUERY envía una cadena que proporciona el estado actual del servidor. El mensaje predeterminado es el ID de sistema, pero es posible crear un script que muestre un mensaje personalizado. Si este script no existe o esta clave está vacía se envía el mensaje predeterminado. Si el script tiene éxito y produce alguna salida, se envía la primera línea de la salida (y sólo la primera línea). Se ejecuta como mucho una vez cada 3 segundos para impedir una posible denegación de servicio inundando la máquina de paquetes QUERY.</para>
            </listitem>
          </varlistentry>
        </variablelist>
      </sect3>
    </sect2>

    <sect2 id="greeterconfiguration">
        <title>Configuración de la interfaz simple</title>

        <para>
          The GDM default greeter is called the simple Greeter and is
          configured via GConf.  Default values are stored in GConf in the
          <filename>gdm-simple-greeter.schemas</filename> file.  These defaults
          can be overridden if the "gdm" user has a writable $HOME
          directory to store GConf settings.  These values can be edited using
          the <command>gconftool-2</command> or <command>gconf-editor</command>
          programs.  The following configuration options are supported:
        </para>

        <variablelist>
          <title>Claves de configuración de la interfaz</title>

          <varlistentry>
            <term>/apps/gdm/simple-greeter/banner_message_enable</term>
            <listitem>
              <synopsis>false (booleano)</synopsis>
              <para>Controla si se muestra o no el mensaje de texto.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>/apps/gdm/simple-greeter/banner_message_text</term>
            <listitem>
              <synopsis>NULL (cadena)</synopsis>
              <para>Especifica el mensaje de texto que mostrar en la ventana de la interfaz.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>/apps/gdm/simple-greeter/disable_restart_buttons</term>
            <listitem>
              <synopsis>false (booleano)</synopsis>
              <para>Controla si se deben mostrar los botones de reinicio en la ventana de entrada.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>/apps/gdm/simple-greeter/disable_user_list</term>
            <listitem>
              <synopsis>false (booleano)</synopsis>
              <para>Si está activada, entonces no se muestra el examinador de rostros con usuarios conocidos en la ventana de inicio.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>/apps/gdm/simple-greeter/logo_icon_name</term>
            <listitem>
              <synopsis>computer (cadena)</synopsis>
              <para>Establecida al nombre del tema de iconos que usar para el logotipo de la interfaz.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>/apps/gdm/simple-greeter/recent-languages</term>
            <listitem>
              <synopsis>[] (lista de cadenas)</synopsis>
              <para>Establecido a una lista de idiomas que mostrar de forma predeterminada en el panel de inicio. El valor predeterminado es «[]». Con el ajuste predeterminado sólo se mostrará el idioma predeterminado y la opción «Otros...» que mostrará un diálogo emergente con una lista completa de idiomas disponibles entre los que el usuario puede seleccionar.</para>

              <para>No está previsto que los usuarios cambien este ajuste a mano. En lugar de ello, GDM mantiene un seguimiento de cualquier idioma seleccionado en esta clave de configuración y los mostrará en la caja de combinación de idioma junto con la opción «Otros...». De esta forma los idiomas seleccionados son más fáciles de seleccionar.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>/apps/gdm/simple-greeter/recent-layouts</term>
            <listitem>
              <synopsis>[] (lista de cadenas)</synopsis>
              <para>Establecido a una lista de distribuciones de teclado que mostrar de forma predeterminada en el panel de inicio. El valor predeterminado es «[]». Con el ajuste predeterminado sólo se mostrará la distribución de teclado predeterminada y la opción «Otras...» que mostrará un diálogo emergente con una lista completa de distribuciones de teclado disponibles entre las que el usuario puede seleccionar.</para>

              <para>No está previsto que los usuarios cambien este ajuste a mano. En lugar de ello, GDM mantiene un seguimiento de las distribuciones de teclado seleccionadas en esta clave de configuración y las mostrará en la caja de combinación de distribución de teclado junto con la opción «Otras...». De esta forma las distribuciones de teclado seleccionadas son más fáciles de seleccionar.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>/apps/gdm/simple-greeter/wm_use_compiz</term>
            <listitem>
              <synopsis>false (booleano)</synopsis>
              <para>Controla si se usa compiz como gestor de ventanas en lugar de metacity.</para>
            </listitem>
          </varlistentry>
        </variablelist>
    </sect2>

    <sect2 id="accessibilityconfiguration">
     <title>Configuración de la accesibilidad</title>

      <para>Esta sección describe las opciones de configuración de accesibilidad disponibles en GDM.</para>

      <sect3 id="accessibilitydialog">
        <title>Diálogo de accesibilidad y claves de GConf de GDM</title>

        <para>El panel del interfaz gráfico de GDM en la pantalla de inicio de sesión muestra un icono de accesibilidad. Al pulsar en ese botón se abre el diálogo de accesibilidad del GDM. En el diálogo de accesibilidad del GDM existe una lista de casillas de verificación para que el usuario pueda activar o desactivar las tecnologías de asistencia asociadas.</para>

        <para>Las casillas de verificación que corresponden con las herramientas de asistencia del teclado en pantalla, el magnificador de pantalla y el lector de pantalla actúan sobre tres claves de GConf que están descritas en la siguiente sección de este documento. Activando o desactivando estas casillas de verificación, las claves asociadas de GConf se establecen a «cierta» o «falsa». Cuando la clave está establecida a cierta, se lanzan las tecnologías de asistencia enlazadas con estas claves de GConf. Cuando las claves están establecidas a «falsa» finaliza cualquier tecnología de asistencia enlazada con esta clave de GConf. Estas claves no se restablecen automáticamente a un estado predeterminado después de que el usuario haya iniciado sesión. Consecuentemente, las tecnologías de asistencia que se estaban ejecutando en la última sesión de GDM se lanzarán automáticamente en la siguiente sesión de inicio de GDM.</para>

        <para>Las otras casillas de verificación en el diálogo de accesibilidad del GDM no tienen sus correspondientes claves de GConf porque no se lanza ningún programa adicional para proporcionar las características de accesibilidad que ofrecen. Esas otras opciones corresponden con características de accesibilidad proporcionadas por el servidor X que siempre se está ejecutando durante la sesión GDM.</para>
      </sect3>

      <sect3 id="accessibilitygconfconfiguration">
        <title>Claves de accesibilidad de GConf</title>

        <para>GDM ofrece las siguientes claves de GConf para controlar sus características de accesibilidad:</para>

        <variablelist>
          <title>Claves de configuración de GDM</title>

          <varlistentry>
            <term>/desktop/gnome/interface/accessibility</term>
            <listitem>
              <synopsis>false (booleano)</synopsis>
              <para>Controla si la infraestructura de accesibilidad se iniciará con la IGU de GDM. Esto es necesario para que los programas de accesibilidad funcionen.</para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>/desktop/gnome/applications/at/screen_magnifier_enabled</term>
            <listitem>
              <synopsis>false (booleano)</synopsis>
              <para>Si está activado entonces las tecnologías de asistencia enlazadas con esta clave de GConf se iniciarán con la interfaz gráfica de GDM. De forma predeterminada es una aplicación de  magnificación de pantalla.</para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>/desktop/gnome/applications/at/screen_keyboard_enabled</term>
            <listitem>
              <synopsis>false (booleano)</synopsis>
              <para>Si está activado entonces las tecnologías de asistencia enlazadas con esta clave de GConf se iniciarán con la interfaz gráfica de GDM. De forma predeterminada es una aplicación de teclado en pantalla.</para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>/desktop/gnome/applications/at/screen_reader_enabled</term>
            <listitem>
              <synopsis>false (booleano)</synopsis>
              <para>Si está activado entonces las tecnologías de asistencia enlazadas con esta clave de GConf se iniciarán con la interfaz gráfica de GDM. De forma predeterminada es una aplicación de lectura de pantalla.</para>
            </listitem>
          </varlistentry>
        </variablelist>
      </sect3>

      <sect3 id="accessibilitytoolsconfiguration">
        <title>Enlazar las claves de GConf con herramientas de accesibilidad</title>

        <para>Para las claves de GConf screen_magnifier_enabled, screen_keyboard_enabled, y screen_reader_enabled (magnificación, teclado en pantalla y lector de pantalla), la herramienta de asistencia que se lanza depende de los archivos de escritorio ubicados en la carpeta de inicio automático del GDM tal y como se describe en la sección «Configuración automática al inicio» de este manual. Cualquier archivo de escritorio en la carpeta de inicio automático se puede enlazar a una clave de GConf de accesibilidad de GDM especificando esa clave de GConf en el valor AutostartCondition en el archivo de escritorio. Por ejemplo, el valor podría ser uno de los siguientes:</para>

<screen>
AutostartCondition=GNOME /desktop/gnome/applications/at/screen_keyboard_enabled
AutostartCondition=GNOME /desktop/gnome/applications/at/screen_magnifier_enabled
AutostartCondition=GNOME /desktop/gnome/applications/at/screen_reader_enabled
</screen>

        <para>Cuando una clave de accesibilidad es cierta entonces se lanzará cualquier programa enlazado con esa clave en un archivo de inicio automático de GDM (a no ser que la clave «Hidden» esté establecida a cierta en ese archivo de escritorio). Una sola clave de GConf puede incluso iniciar múltiples herramientas de asistencia si existen archivos de escritorio múltiples con esta condición AutostartCondition en la carpeta de inicio automático del GDM.</para>
      </sect3>

      <sect3 id="accessibilitytoolexample">
        <title>Ejemplo de modificación de la configuración de la herramienta de accesibilidad</title>

        <para>Por ejemplo, si GNOME se distribuye con GOK como el teclado en pantalla predeterminado, entonces esto se prodría reemplazar por un programa diferente si se quiere. Para reemplazar GOL con la aplicación de teclado en pantalla «onboard» y, adicionalmente, activar la tecnología de asistencia «mousetweaks» (ajustes finos del ratón) para soporte de pulsación al posarse, entonces se necesita la siguiente configuración.</para>

        <para>Cree un archivo de escritorio para el teclado en pantalla «onboard» y un segundo para los ajustes finos del ratón; por ejemplo, onboard.desktop y mousetweaks.desktop. Estos archivos se deben ubicar en la carpeta de inicio automático del GDM y estar en el formato explicado en la sección «Configuración automática al inicio» de este documento.</para>

        <para>
         The following is an example <filename>onboard.desktop</filename> file:
        </para>

<screen>
[Desktop Entry]
Encoding=UTF-8
Name=Onboard Onscreen Keyboard
Comment=Use an on-screen keyboard
TryExec=onboard
Exec=onboard --size 500x180 -x 20 -y 10
Terminal=false
Type=Application
StartupNotify=true
Categories=GNOME;GTK;Accessibility;
AutostartCondition=GNOME /desktop/gnome/applications/at/screen_keyboard_enabled
</screen>

        <para>
         The following is an example <filename>mousetweaks.desktop</filename>
         file:
        </para>

<screen>
[Desktop Entry]
Encoding=UTF-8
Name=Software Mouse-Clicks
Comment=Perform clicks by dwelling with the pointer
TryExec=mousetweaks
Exec=mousetweaks --enable-dwell -m window -c -x 20 -y 240 
Terminal=false
Type=Application
StartupNotify=true
Categories=GNOME;GTK;Accessibility;
AutostartCondition=GNOME /desktop/gnome/applications/at/screen_keyboard_enabled
</screen>

        <para>Note la línea con AutostartCondition que enlaza tanto los archivos de escritorio con las claves de GConf para el teclado en pantalla.</para>

        <para>Para desactivar GOK y que no se inicie, el archivo de escritorio para el teclado en pantalla GOK se debe quitar o desactivar. De otra forma el teclado en pantalla «onboard» y GOK se iniciarán simultáneamente. Esto se puede realizar quitando el archivo gok.desktop de la carpeta de inicio automático del GDM o añadiendo la clave de ajuste «Hidden=true» al archivo gok.desktop.</para>

        <para>Después de realizar estos cambios, GOK no se volverá a iniciar cuando el usuario inicie el teclado en pantalla en la sesión de GDM; en su lugar se lanzarán el teclado en pantalla «onboard» y los ajustes finos del ratón.</para>
      </sect3>
    </sect2>

    <sect2 id="generalsessionconfig">
      <title>Ajustes generales de sesión</title>
<!--
<para>
          TODO - I think this section should be expanded upon.  What specific
                 keys are of interest, or would some users be likely to want
                 to configure?  Also, would be good to be more specific about
                 how lock down management is handled.
</para>
-->
        <para>La interfaz gráfica con temas de GDM usa algunos componentes del entorno de trabajo que su sesión de escritorio usará. Y por ello está influenciada por cierto número de los mismos ajustes de GConf. Para cada uno de estos ajustes la interfaz gráfica usará los valores predeterminados a no ser que se sobreescriban por a) La política obligatoria instalada de GDM; b) la política obligatoria del sistema. GDM instala su propia política obligatoria para bloquear algunos ajustes por seguridad.</para>
    </sect2>

    <sect2 id="gnomesettingsdaemon">
      <title>Administrador de preferencias de GNOME</title>
<!--
<para>
          TODO - I think this section should be expanded upon.  What specific
                 keys are of interest, or would some users be likely to want
                 to configure?  Also, would be good to give a more complete
                 list of plugins that users might want to consider disabling.
                 Also, shouldn't we list the sound/active key in the Greeter
                 configuration setting?  Oddly I do not find this key used
                 in anything but the chooser in SVN.
</para>
-->

        <para>GDM activa los siguientes complementos de gnome-settings-daemon: a11y-keyboard, background, sound, xsettings.</para>

        <para>Éstos son responsables de cosas como la imagen de fondo, los ajustes de tipografía y tema, eventos de sonido, etc.</para>

        <para>
          Plugins can also be disabled using GConf. For example, if you want to
          disable the sound plugin then unset the following key:
          <filename>/apps/gdm/simple-greeter/settings-manager-plugins/sound/active</filename>.
        </para>
    </sect2>

    <sect2 id="sessionconfig">
      <title>Configuración de sesión de GDM</title>

      <para>
        GDM sessions are specified using the FreeDesktop.org Desktop Entry
        Specification, which can be referenced at the following URL:
        <ulink url="http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec">
        http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec</ulink>.
      </para>

      <para>
        By default, GDM will install desktop files in the
        <filename>&lt;share&gt;/xsessions</filename> directory.  GDM will
        search the following directories in this order to find desktop files:
        <filename>&lt;etc&gt;/X11/sessions/</filename>,
        <filename>&lt;dmconfdir&gt;/Sessions</filename>, 
        <filename>&lt;share&gt;/xsessions</filename>, and
        <filename>&lt;share&gt;/gdm/BuiltInSessions</filename>.  By default the
        <filename>&lt;dmconfdir&gt;</filename> is set to
        <filename>&lt;etc&gt;/dm/</filename> unless GDM is configured to use
        a different directory via the "--with-dmconfdir" option.
      </para>

      <para>
        A session can be disabled by editing the desktop file and adding a line
        as follows: <filename>Hidden=true</filename>.
      </para>

      <para>
        GDM desktop files support a GDM-specific extension, a key named
        "X-GDM-BypassXsession".  If the key is not specified in a
        desktop file, the value defaults to "false".  If this key is
        specified to be "true" in a desktop file, then GDM will
        launch the program specified by the desktop file "Exec" key
        directly when starting the user session.  It will not run the program
        via the <filename>&lt;etc&gt;/gdm/Xsession</filename> script, which is
        the normal behavior.  Since bypassing the
        <filename>&lt;etc&gt;/gdm/Xsession</filename> script avoids setting up
        the user session with the normal system and user settings, sessions
        started this way can be useful for debugging problems in the system or
        user scripts that might be preventing a user from being able to start
        a session.
      </para>

    </sect2>

    <sect2 id="userconfig">
      <title>Sesión de usuario de GDM y configuración de idioma</title>
      <para>
        The user's default session and language choices are stored in the
        <filename>~/.dmrc</filename> file.  When a user logs in for the first
        time, this file is created with the user's initial choices.  The user
        can change these default values by simply changing to a different value
        when logging in.  GDM will remember this change for subsequent logins.
      </para>

      <para>
        The <filename>~/.dmrc</filename> file is in the standard
        <filename>INI</filename> format.  It has one section called
        <filename>[Desktop]</filename> which has two keys:
        <filename>Session</filename> and <filename>Language</filename>.
      </para>

      <para>
        The <filename>Session</filename> key specifies the basename of the
        session <filename>.desktop</filename> file that the user wishes to
        normally use without the <filename>.desktop</filename> extension.
        The <filename>Language</filename> key specifies the language that the
        user wishes to use by default.  If either of these keys is missing, the
        system default is used.  The file would normally look as follows:
      </para>

<screen>
[Desktop]
Session=gnome
Language=cs_CZ.UTF-8
</screen>
    </sect2>

  </sect1>

  <!-- ============= GDM Commands ============================= -->

  <sect1 id="binaries">
    <title>Comandos de GDM</title>

    <sect2 id="sbindir_binaries">
      <title>Comandos del administrador de GDM</title>

      <para>
        The GDM package provides the following commands in
        <filename>sbindir</filename> intended to be run by the root user:
      </para>

      <sect3 id="gdmcommandline">
        <title><command>gdm</command> Command Line Options</title>

        <para>
          <command>gdm</command> is the main daemon which sets up
          graphical login environment and starts necessary helpers.
       </para>

        <variablelist>
          <title><command>gdm</command> Command Line Options</title>

          <varlistentry>
            <term>-?, --help</term>
            <listitem>
              <para>Da un breve resumen de las opciones de línea de comandos.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>--fatal-warnings</term>
            <listitem>
              <para>Causa que todas las advertencias hagan que GDM salga.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>--timed-exit</term>
            <listitem>
              <para>Sale después de 30 segundos. Útil para depuración.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>--version</term>
            <listitem>
              <para>Imprime la versión del demonio GDM.</para>
            </listitem>
          </varlistentry>
        </variablelist>
      </sect3>

      <sect3 id="gdmrestartcommandline">
        <title><command>gdm-restart</command> Command Line Options</title>

        <para>
          <command>gdm-restart</command> stops and restarts GDM by sending
          the GDM daemon a HUP signal.  This command will immediately terminate
          all sessions and log out users currently logged in with GDM.
        </para>
      </sect3>

      <sect3 id="gdmsaferestartcommandline">
        <title><command>gdm-safe-restart</command> Command Line Options</title>
  
        <para>
          <command>gdm-safe-restart</command> stops and restarts GDM by
          sending the GDM daemon a USR1 signal.  GDM will be restarted as soon
          as all users log out.
        </para>
      </sect3>

      <sect3 id="gdmstopcommandline">
        <title><command>gdm-stop</command> Command Line Options</title>

        <para>
          <command>gdm-stop</command> stops GDM by sending the GDM daemon
          a TERM signal. 
        </para>
      </sect3>
    </sect2>
  </sect1>

  <!-- ============= Troubleshooting =========================== -->

  <sect1 id="troubleshooting">
    <title>Resolución de problemas</title>
<!--
<para>
      TODO - any other tips we should add?  Might be useful to highlight any
             common D-Bus configuration issues?
</para>
-->

    <para>Esta sección habla acerca de consejos útiles para hacer funcionar GDM. En general, si tiene un problema al usar GDM puede enviar un bug o un correo-e a la lista de correo. En la sección de introducción del documento se proporciona información sobre esto.</para>

    <para>
      If GDM is failing to work properly, it is always a good idea to include
      debug information.  To enable debugging, set the debug/Enable key to
      "true" in the <filename>&lt;etc&gt;/gdm/custom.conf</filename>
      file and restart GDM.  Then use GDM to the point where it fails, and
      debug output will be sent to the system log file
      (<filename>&lt;var&gt;/log/messages</filename> or
      <filename>&lt;var&gt;/adm/messages</filename> depending on your Operating
      System).  If you share this output with the GDM community via a bug
      report or email, please only include the GDM related debug information
      and not the entire file since it can be large.  If you do not see any
      GDM syslog output, you may need to configure syslog (refer to the
      <ulink type="help" url="man:syslog">syslog</ulink> man page).
    </para>

    <sect2 id="wontstart">
      <title>GDM no se inicia</title>

      <para>Puede haber muchos problemas que causen un fallo de GDM al inicio, pero esta sección discutirá algunos problemas comunes y cómo solucionar un problema de inicio de GDM. Algunos problemas provocarán que GDM responda con un mensaje de error o un diálogo cuando intenta iniciarse, pero puede ser difícil seguir un problema cuando GDM falla de forma silenciosa.</para>

      <para>Primero asegúrese de que el servidor X está configurado apropiadamente. El archivo de configuración de GDM contiene un comando en la sección [server-Standard] que se usa para iniciar el servidor X. Compruebe que este comando funciona en su sistema. Al ejecutar este comando desde la consola se debería iniciar el servidor X. Si falla, entonces el problema probablemente sea de la configuración de su servidor X. Consulte el registro de error de su servidor X para obtener una idea de cuál puede ser el problema. El problema también puede ser que su servidor X requiera diferentes opciones en la línea de comandos. Si es así, modifique el comando del servidor X en el archivo de configuración de GDM para que sea correcto para su sistema.</para>

      <para>
         Also make sure that the <filename>/tmp</filename> directory has
         reasonable ownership and permissions, and that the machine's file
         system is not full.  These problems will cause GDM to fail to start.
      </para>
    </sect2>
  </sect1>

  <!-- ============= Application License ============================= -->

  <sect1 id="license">
    <title>Licencia</title>
    <para>
      This program is free software; you can redistribute it and/or
      modify it under the terms of the  <ulink type="help" url="gnome-help:gpl">
      <citetitle>GNU General Public License</citetitle></ulink> as
      published by the Free Software Foundation; 
      either version 2 of the License, or (at your option) any later
      version.
    </para>
    <para>
      This program is distributed in the hope that it will be useful, but
      WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      <citetitle>GNU General Public License</citetitle> for more details.
    </para>
    <para>
      A copy of the <citetitle>GNU General Public License</citetitle> is
      included as an appendix to the <citetitle>GNOME Users
      Guide</citetitle>.  You may also obtain a copy of the
      <citetitle>GNU General Public License</citetitle> from the Free
      Software Foundation by visiting
      <ulink type="http" url="http://www.fsf.org">their Web site</ulink> or by
      writing to
      <address>
      Free Software Foundation, Inc.
      <street>51 Franklin Street, Fifth Floor</street>
      <city>Boston</city>, <state>MA</state> <postcode>02110-1301</postcode>
      <country>USA</country>
      </address>
    </para>
  </sect1>
</article>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
