gdm.xml 286 KB
Newer Older
1 2 3
<?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">
4 5
<!ENTITY version "2.18.0">
<!ENTITY date "03/12/2007">
6 7
]>
<article id="index" lang="es">
8
  <articleinfo>
9
    <title>Manual de referencia del Gestor de entrada de GNOME</title>
10

11 12 13
    <revhistory>
      <revision>
        <revnumber>0.0</revnumber>
Brian Cameron's avatar
Brian Cameron committed
14
        <date>2007-01</date>
15 16 17
      </revision>
    </revhistory>

18
    <abstract role="description">
19
      <para>GDM es el Gestor de entrada de GNOME, un programa gráfico de entrada.</para>
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
    </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 role="maintainer">
        <firstname>Brian</firstname><surname>Cameron</surname>
        <affiliation>
          <address><email>Brian.Cameron@Sun.COM</email></address>
        </affiliation>
      </author>
      <author>
        <firstname>Bill</firstname><surname>Haneman</surname>
        <affiliation>
          <address><email>Bill.Haneman@Sun.COM</email></address>
        </affiliation>
      </author>
48
    </authorgroup>
49 50 51 52 53 54 55 56 57 58 59 60
    <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> <holder>Red Hat, Inc.</holder>
    </copyright>
    <copyright>
      <year>2003</year><year>2004</year><holder>Sun Microsystems, Inc.</holder>
61
    </copyright><copyright><year>2003, 2006.</year><holder>Francisco Javier F. Serrador (serrador@openshine.com)</holder></copyright>
62

63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
      <legalnotice id="legalnotice">
	<para>Se concede permiso para copiar, distribuir o modificar este documento según las condiciones de la GNU Free Documentation License (GFDL), Versión 1.1 o cualquier versión posterior publicada por la Free Software Foundation sin Secciones invariantes, Textos de portada y Textos de contraportada. Encontrará una copia de la GFDL en este <ulink type="help" url="ghelp:fdl">enlace</ulink> o en el archivo COPYING-DOCS distribuido con este manual.</para>
         <para>Este manual forma parte de una colección de documentos de GNOME distribuidos según la GFDL. Si desea distribuir este manual de forma independiente de la colección, puede hacerlo agregando una copia de la licencia al documento, según se describe en la sección 6 de la misma.</para>

	<para>Muchos de los nombres utilizados por las empresas para distinguir sus productos y servicios se consideran marcas comerciales. Cuando estos nombres aparezcan en la documentación de GNOME, y siempre que se haya informado a los miembros del Proyecto de documentación de GNOME de dichas marcas comerciales, los nombres aparecerán en mayúsculas o con las iniciales en mayúsculas.</para>

	<para>ESTE DOCUMENTO Y LAS VERSIONES MODIFICADAS DEL MISMO SE OFRECEN SEGÚN LAS CONDICIONES ESTABLECIDAS EN LA LICENCIA DE DOCUMENTACIÓN LIBRE DE GNU (GFDL) Y TENIENDO EN CUENTA QUE: <orderedlist>
		<listitem>
		  <para>EL DOCUMENTO SE ENTREGA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, NI EXPLÍCITA NI IMPLÍCITA INCLUYENDO, SIN LIMITACIÓN, GARANTÍA DE QUE EL DOCUMENTO O VERSIÓN MODIFICADA DE ÉSTE CAREZCA DE DEFECTOS EN EL MOMENTO DE SU VENTA, SEA ADECUADO A UN FIN CONCRETO O INCUMPLA ALGUNA NORMATIVA. TODO EL RIESGO RELATIVO A LA CALIDAD, PRECISIÓN Y UTILIDAD DEL DOCUMENTO O SU VERSIÓN MODIFICADA RECAE EN USTED. SI CUALQUIER DOCUMENTO O VERSIÓN MODIFICADA DE AQUÉL RESULTARA DEFECTUOSO EN CUALQUIER ASPECTO, USTED (Y NO EL REDACTOR INICIAL, AUTOR O AUTOR DE APORTACIONES) ASUMIRÁ LOS COSTES DE TODA REPARACIÓN, MANTENIMIENTO O CORRECCIÓN NECESARIOS. ESTA EXENCIÓN DE RESPONSABILIDAD SOBRE LA GARANTÍA ES UNA PARTE ESENCIAL DE ESTA LICENCIA. NO SE AUTORIZA EL USO DE NINGÚN DOCUMENTO NI VERSIÓN MODIFICADA DE ÉSTE POR EL PRESENTE, SALVO DENTRO DEL CUMPLIMIENTO DE LA EXENCIÓN DE RESPONSABILIDAD;Y</para>
		</listitem>
		<listitem>
		  <para>EN NINGUNA CIRCUNSTANCIA NI BAJO NINGUNA TEORÍA LEGAL, SEA POR ERROR (INCLUYENDO NEGLIGENCIA) CONTRATO O DOCUMENTO DE OTRO TIPO, EL AUTOR, EL ESCRITOR INICIAL, EL AUTOR DE APORTACIONES NI NINGÚN DISTRIBUIDOR DEL DOCUMENTO O VERSIÓN MODIFICADA DEL DOCUMENTO, NI NINGÚN PROVEEDOR DE NINGUNA DE ESAS PARTES, SERÁ RESPONSABLE ANTE NINGUNA PERSONA POR NINGÚN DAÑO DIRECTO, INDIRECTO, ESPECIAL, INCIDENTAL O DERIVADO DE NINGÚN TIPO, INCLUYENDO, SIN LIMITACIÓN DAÑOS POR PÉRDIDA DE FONDO DE COMERCIO, PARO TÉCNICO, FALLO INFORMÁTICO O AVERÍA O CUALQUIER OTRO POSIBLE DAÑO O AVERÍA DERIVADO O RELACIONADO CON EL USO DEL DOCUMENTO O SUS VERSIONES MODIFICADAS, AUNQUE DICHA PARTE HAYA SIDO INFORMADA DE LA POSIBILIDAD DE QUE SE PRODUJESEN ESOS DAÑOS.</para>
		</listitem>
	  </orderedlist></para>
  </legalnotice>


80

81
    <releaseinfo>
82 83
       This manual describes version 2.18.0 of the GNOME Display Manager.
       It was last updated on 03/12/2007.
84
    </releaseinfo>  
85 86 87 88 89
  </articleinfo>

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

90
    <para>
91 92
      This manual describes version 2.18.0 of the GNOME Display Manager.
      It was last updated on 03/12/2007.
93
    </para>  
94

95
    <para>Selector: Un programa que se usa para seleccionar un equipo remoto para gestionar una pantalla remotamente en la pantalla local (<command>gdmchooser</command>).</para>
96

97
    <para>Configurador: La aplicación de configuración (<command>gdmsetup</command>).</para>
98

99
    <para>GDM: El gestor de entrada de GNOME. Se usa para describir el paquete de software como un todo. Algunas veces también se refiere a él como GDM2.</para>
100

101
    <para>gdm: El demonio del gestor de entrada (<command>gdm</command>).</para>
102

103
    <para>Interfaz de entrada: La ventana de entrada gráfica (<command>gdmlogin</command> o <command>gdmgreeter</command>).</para>
104

105
    <para>Interfaz de entrada GTK+: La ventana de entrada estándar ( <command>gdmlogin</command>).</para>
106

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

109
    <para>Interfaz de entrada con temas: La ventana de entrada con temas intercambiables ( <command>gdmgreeter</command>).</para>
110

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

113
    <para>Las rutas que comienzan con una palabra entre los símbolos paréntesis angulosos son relativas al prefijo de instalación. Ej: <filename>&lt;share&gt;/pixmaps/</filename> se refiere a <filename>/usr/share/pixmaps</filename> si GDM se ha configurado con  <command>--prefix=/usr</command>. Normalmente también denota que GDM está instalado con <command>--sysconfigdir=/etc/X11</command>, que quiere decir que cualquier ruta a la que se refiera como  <filename>&lt;etc&gt;/gdm/PreSession</filename> usualmente significa <filename>&lt;etc/X11&gt;/gdm/PreSession</filename>. Note que para interoperatibilidad se recomienda que use un prefijo de <filename>/usr</filename> y un directorio de configuración del sistema (--sysconfdir) <filename>/etc/X11</filename>.</para>
114 115 116 117 118 119 120 121
  </sect1>

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

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

122
      <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 / X Consortium.</para>
123

124
      <para>Para más información acerca de GDM, vea  <ulink type="http" url="http://www.gnome.org/projects/gdm/"> el sitio web del proyecto GDM</ulink>. Por favor envíe cualquier informe de fallos o peticiones de mejoras a la categoría «gdm» en <ulink type="http" url="http://bugzilla.gnome.org/">bugzilla.gnome.org</ulink>. También puede enviar un mensaje a la lista de correo <address><email>gdm-list@gnome.org</email></address> para tratar sobre cualquier problema o cuestión con el programa GDM.</para>
125 126
    </sect2>

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

130
      <para>Los valores de pares de clave/valor definidos en los archivos de configuración de GDM y la ubicación de estos archivos se consideran interfaces «estables» y deberían cambiar sólo de formas compatibles hacia atrás. Note que esto incluye las funcionalidades como los scripts de GDM (Init, PreSession, PostSession, PostLogin, XKeepsCrashing, etc), las ubicaciones de directorios (ServAuthDir, PidFile, etc), las aplicaciones del sistema (SoundProgram), etc. Algunos valores de configuración dependen de interfaces del SO y quizá necesiten modificarse para que funcionen en un determinado SO. Los ejemplos típicos son HaltCommand, RebootCommand, CustomCommands, SuspendCommand, StandardXServer, Xnest, SoundProgram, y el valor del valor "command" para cada "server-tal".</para>
131

132
      <para>Nota: las distribuciones a menudo cambian los valores predeterminados de las claves para soportar su plataforma. Los interfaces de línea de comandos para los programas GDM instalados en <filename>&lt;bin&gt;</filename> y <filename>&lt;sbin&gt;</filename> se consideran estables. Refiérase a su documentación de la distribución para ver si hay cualquier cambio específico de la distribución a estos interfaces de GDM y qué soporte existe para ellos.</para>
133

134
      <para>En las series de desarrollo 2.15 los argumentos de un solo guión no están soportados más. Esto incluye los argumentos "-xdmaddress", "-clientaddress", y "-connectionType" usados por <command>gdmchooser</command>. Estos argumentos se han cambiado para que ahora usen dos guiones. </para>
135

136
      <para>Si se descubrieran problemas que rompiesen la compatibilidad, por favor envíe un error con una prioridad «urgente».</para>
137 138
    </sect2>

139 140 141
    <sect2 id="daemonov">
      <title>El demonio GDM</title>
      
142
      <para>El demonio 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. Los scripts <filename>Init</filename>, <filename>PostLogin</filename>, <filename>PreSession</filename>, y <filename>PostSession</filename> de los que se habla más abajo se tratan en esta sección «Configurar GDM».</para>
143

144
      <para>El demonio de GDM soporta un protocolo de sockets de dominio UNIX que puede usarse para controlar aspectos de su comportamiento y para solicitarle información. Este protocolo se describe en la sección «Controlar GDM» de este documento.</para>
145

146
      <para>A GDM se le puede pedir que gestione una pantalla de varias formas. Las pantallas locales las gestiona siempre GDM cuando se inicia y serán reiniciadas cuando la sesión de un usuario termine. Las pantallas pueden pedirse además por XDMCP, se pueden pedir pantallas flexibles ejecutando el comando <command>gdmflexiserver</command>. Las pantallas que se inician bajo demanda no se se reinician al salir de la sesión. GDM también proporciona el comando <command>gdmdynamic</command> para permitir una gestión más fácil de las pantallas en un servidor multiusuario. Estos tipos de pantallas se discuten en la sección siguiente.</para>
147
        
148
      <para>Cuando se le pide al demonio GDM que gestione una pantalla, bifurcará un proceso servidor de X, después ejecutará el script <filename>Init</filename> como el usuario root, e iniciará el diálogo de entrada como un proceso esclavo en la pantalla. GDM puede configurarse para usar o bien <command>gdmgreeter</command> (predeterminado) o <command>gdmlogin</command> como programa de IGU para la entrada. El programa <command>gdmlogin</command> soporta accesibilidad mientras que el programa <command>gdmgreeter</command> soporta mayor temabilidad. El diálogo de la IGU se ejecuta como el usuario/grupo no privilegiado «gdm» que se describe en la sección «Seguridad» abajo. El diálogo del IGU se comunica con el demonio por medio de un protocolo de sockets y por medio de la entrada/salida estándar. El esclavo, por ejemplo pasa el nombre del usuario y la contraseña al demonio GDM por medio de la entrada/salida estándar así que el demonio puede manipular la autenticación actual.</para>
149

150
      <para>La pantalla del IGU de la entrada permite al usuario seleccionar qué sesión quiere iniciar y qué idioma quiere usar. Las sesiones se definen por archivos que terminan con la extensión .desktop y puede encontrar más información sobre estos archivos en la sección de «Configuración». El usuario introduce su nombre y contraseña y si éstos le autentican con éxito, GDM iniciará la sesión solicitada para el usuario. Es posible configurar GDM para evitar el proceso de autenticación activando las características de Entrada automática o Entrada temporizada en la configuración de GDM. El IGU de entrada puede configurarse además para para proporcionar características adicionales al usuario, como un visor de rostros, la capacidad de detener, reiniciar o suspender el sistema; y o editar la configuración de entrada (tras introducir la contraseña de root).</para>
151

152
      <para>GDM, por omisión, usará Pluggable Authentication Modules (PAM) para autenticar, pero puede usar además contraseñas crypt y shadow en sistemas legados. Tras autenticar al usuario, el demonio ejecuta el script <filename>PostLogin</filename> como root, y bifurca un proceso esclavo para iniciar la sesión solicitada. Este proceso esclavo ejecuta el script de <filename>PreSession</filename> como root, establece el entorno del usuario e inicia la sesión solicitada. GDM conserva la sesión predeterminada del usuario y el idioma en el archivo <filename>~/.dmrc</filename> del usuario y usará estos predeterminados si el usuario no seleccionó una sesión o idioma en el IGU de entrada. En Solaris, GDM (desde la versión 2.8.0.3) usa el interfaz SDTLOGIN después de autenticar al usuario para decir al servidor X que se reinicie como el usuario en vez de como root para mayor seguridad. Cuando la sesión del usuario sale, el demonio de GDM ejecutará el script <filename>PostSession</filename> como root.</para>
Brian Cameron's avatar
Brian Cameron committed
153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168

      <para>
        Note that, by default, GDM uses the "gdm" service name for
        normal login and the "gdm-autologin" service name for
        automatic login.  The <filename>PamStack</filename> configuration
        option can be used to specify a different service name.  For example,
        if "foo" is specified, then GDM will use the "foo"
        service name for normal login and "foo-autologin" for
        automatic login. 
      </para>

      <para>
        For those looking at the code, the gdm_verify_user function in 
        <filename>daemon/verify-pam.c</filename> is used for normal login
        and the gdm_verify_setup_user function is used for automatic login.
      </para>
169 170 171
    </sect2>

    <sect2 id="displaytypes">
172
      <title>Tipos de pantalla diferentes</title>
173

174
      <para>GDM soporta tres tipos de pantalla diferentes: pantallas estática (local), pantallas flexibles (bajo demanda), y pantallas remotas (XDMCP). Las subsecciones «Definiciones del servidor X» y «Configuración de pantalla X local estática» de la sección «Configuración» explican cómo estos tipos de pantallas se definen en el archivo de configuración de GDM.</para>
175

176
      <para>Las pantallas locales estáticas siempre se inician por el demonio, y cuando mueren o se les mata, se reinician. GDM puede ejecutar tantos como se necesiten. GDM puede gestionar además servidores en los cuales no gestiona la entrada él mismo, permitiendo usar GDM para soportar terminales X.</para>
177

178
      <para>Las pantallas flexibles o bajo demanda, se inician por medio del protocolo socket con el comando <command>gdmflexiserver</command>. Esta característica sólo está disponible para los usuarios que hayan entrado en la consola y mostrará una pantalla de entrada nueva. Si una pantalla flexible se ha iniciado anteriormente en la consola, ejecutando <command>gdmflexiserver</command> de nuevo se mostrará un menú permitiendo a los usuarios volver a la sesión existente o iniciar una nueva sesión flexible. El comando <command>gdmflexiserver</command> bloquea la sesión actual antes de iniciar una pantalla flexible nueva, así que debe introducirse la contraseña del usuario antes de volver a la sesión existente. El comando <command>gdmflexiserver</command> puede usarse además para lanzar pantallas anidadas con <command>Xnest</command>. Éstas se lanzan en una ventana en la sesión actual del usuario. Las pantallas anidadas pueden iniciarse incluso si no se ha entrado en la consola y se inician ejecutando el comando <command>gdmflexiserver -n</command>. Las pantallas flexibles  no se reinician cuando la sesión termina. Las pantallas flexibles requieren soporte de terminales virtuales en el núcleo, y no estarán disponibles si no están soportados (como en Solaris). Las pantallas anidades requieren que el servidor X soporte Xnest.</para>
179

180
      <para>El último tipo es la pantalla remota XDMCP que se describe en la siguiente sección. Los equipos remotos pueden conectarse a GDM y presentar la pantalla de entrada si esto está activado. Algunas cosas son diferentes para las sesiones remotas. Por ejemplo, el menú Acciones que permite apagar, reiniciar o configurar GDM no se mostrará.</para>
181

182
      <para>Las pantallas iniciadas por medio del comando <command>gdmdynamic</command> se tratan como pantallas locales, así que se reinician automáticamente cuando la sesión termina. Este comando está pensado para gestionar más efectivamente las pantallas en un servidor multi-usuario (muchas pantallas conectadas a un solo servidor).</para>
183 184 185 186 187
    </sect2>

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

188
      <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 desea. 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>
189

190
      <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. Sin embargo la configuración de fábrica debería funcionar en la mayoría de sistemas. No la cambie a menos que sepa lo que está haciendo.</para>
191 192 193

      <para>GDM escucha en el puerto UDP 177 y responderá a las peticiones QUERY y BROADCAST_QUERY enviando un paquete WILLING al originador.</para>

194
      <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>
195

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

199
    <sect2 id="secureremote">
200 201
      <title>Securización de la conexión remota a través de SSH</title>
      <para>Tal como se explica en la sección «Seguridad», XDMCP no usa ninguna clase de encriptación y debido a esto es inherentemente inseguro. Como XDMCP usa UDP como capa de transporte de red, no es posible simplemente securizarla por medio de un túnel SSH.</para>
202

203
      <para>Para remediar este problema, gdm puede configurarse en tiempo de compilación con la opción .--enable-secureremote, con la cual gdm propone como una sesión integrada una sesión llamada «Conexión remota segura». Iniciando dicha sesión permite al usuario introducir el nombre o la dirección del equipo en el que quiere conectarse, siempre que dicho equipo remoto ejecute un servidor SSH, el usuario entonces obtiene una conexión al servidor en la cual la sesión X predeterminada se inicia y muestra en el equipo remoto local.</para>
204
      
205
      <para>Usar esta sesión permite una conexión de red mucho más segura y sólo necesita tener un servidor SSH ejecutándose en el equipo remoto remoto.</para>
206 207
    </sect2>

208 209
    <sect2 id="gtkgreeter">
      <title>El interfaz GTK+</title>
210

211
      <para>El interfaz GTK+ es el interfaz gráfico de usuario predeterminado que se presenta al usuario. El interfaz contiene un menú en la parte superior, un visor de rostros opcional, un logo opcional y un widget para entrada de texto. Este interfaz tiene soporte de accesibilidad completo, y debería usarse por los usuarios con necesidades de accesibilidad.</para>
212

213
      <para>El campo de entrada de texto se usa para introducir nombres de usuario, contraseñas, etc. <command>gdmlogin</command> está controlado por un demonio por debajo que es básicamente sin estado. El demonio controla el interfaz a través de un protocolo simple donde puede pedir al interfaz una cadena de texto con eco activado o desactivado. Similarmente, el demonio puede cambiar la etiqueta sobre la entrada de texto para corresponder con el valor que el sistema de autenticación quiere que el usuario introduzca.</para>
214

215
      <para>La barra del menú en la parte superior del interfaz de entrada permite al usuario seleccionar el tipo sesión/entorno de escritorio solicitado, seleccionar un idioma/configuración regional apropiada y opcionalmente apagar/reiniciar/suspender el equipo, configurar GDM (siempre que el usuario conozca la contraseña de administrador), cambiar el tema GTK+ o iniciar un selector XDMCP.</para>
216

217
      <para>El interfaz de entrada puede mostrar opcionalmente un logotipo en la ventana de entrada. La imagen debe estar en un formato legible por la biblioteca gdk-pixbuf (GIF, JPG, PNG, TIFF, XPM y posiblemente otros), y debe tener permiso de lectura para el usuario de GDM. Vea la opción <filename>Logo</filename> en la sección de referencia inferior para los detalles.</para>
218 219
    </sect2>

220 221
    <sect2 id="themedgreeter">
      <title>El interfaz con temas</title>
222

223
      <para>El interfaz con temas es un interfaz que ocupa la pantalla completa y es muy "temable". Los temas pueden seleccionarse e instalarse por medio de la aplicación de configuración o estableciendo la clave de configuración <filename>GraphicalTheme</filename>. El interfaz con temas se parece al interfaz GTK+ en que está controlado por un demonio por debajo, no tiene estados, y el demonio lo controla usando el mismo protocolo sencillo.</para>
224

225
      <para>La apariencia de este interfaz está controlada realmente por el tema y así los elementos del interfaz de usuario que están presentes pueden ser diferentes. La única cosa que debe estar presente siempre es el campo de entrada de texto tal como se describe arriba en el interfaz GTK+. El tema puede incluir botones que permitan al usuario seleccionar la configuración regional o idioma adecuado, detener/reiniciar/suspender el equipo, configurar GDM (siempre que el usuario conozca la contraseña de root), o iniciar un selector XDMCP.</para>
226

227
      <para>Puede obtener siempre un menú de las acciones disponibles pulsando la tecla F10. Esto puede ser útil si el tema no proporciona ciertos botones cuando realmente quiere hacer alguna acción permitida por la configuración de GDM.</para>
228 229 230 231 232 233 234
    </sect2>

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

      <para>GDM soporta un visor de rostros que mostrará una lista de usuarios que pueden entrar y un icono para cada usuario. Esta característica puede usarse con el interfaz GTK+ si la opción de configuración <filename>Examinador</filename> está establecida a "true". Esta característica puede usarse con el Interfaz con Temas si usa un tema de GDM que incluya un tipo de elemento "userlist", tal como  "happygnome-list"</para>

235
      <para>Por omisión, el visor de rostros está desactivado debido a que revelar nombres de usuario en la pantalla de entrada no es apropiado en muchos sistemas por razones de seguridad. Además GDM requiere alguna configuración para especificar qué usuarios deberían ser visibles. La configuración puede hacerse en la solapa «Usuarios» en <command>gdmsetup</command>. Esta característica es más práctica de usar en un sistema con un número pequeño de usuarios.</para>
236

237
      <para>Los iconos usados por GDM pueden instalarse globalmente por el administrador del sistema o pueden colocarse en los directorios personales de los usuarios. Si se instalan globalmente deberían estar en el directorio <filename>&lt;share&gt;/pixmaps/faces/</filename>  (aunque esto puede configurarse con la opción <filename>GlobalFaceDir</filename>) y el nombre del archivo debería ser el nombre del usuario, opcionalmente con un <filename>.png</filename> agregado. Los iconos de caras colocados en el directorio global de caras deben ser legibles por el usuario de GDM. Sin embargo, el demonio, proximiza las imágenes de los usuarios al interfaz y debido a esto no tienen que ser legibles por el usuario «gdm» sino por el root.</para>
238 239 240 241 242

      <para>Los usuarios pueden ejecutar el comando <command>gdmphotosetup</command> para configurar la imagen a usar para su id de usuario. Este programa escala apropiadamente el archivo si es más grande que las opciones de configuración  <filename>MaxIconWidth</filename> o <filename>MaxIconHeight</filename> y coloca al icono en un archivo llamado <filename>~/.face</filename>. Aunque <command>gdmphotosetup</command> escala las imágenes del usuario automáticamente, esto no garantiza que esas imágenes de usuario estén escaladas de forma adecuada así que un usuario puede crear su archivo <filename>~/.face</filename> a mano.</para>
        
      <para>GDM primero buscará la imagen de la cara del usuario en <filename>~/.face</filename>. Si no la encuentra, intentará con <filename>~/.face.icon</filename>. Si aún no la encuentra, usará el valor definido para "face/picture=" en el archivo <filename>~/.gnome2/gdm</filename>. Por último intentará con <filename>~/.gnome2/photo</filename> y <filename>~/.gnome/photo</filename> los cuales están obsoletos y se soportan por compatibilidad hacia atrás.</para>

243
      <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 especificada en la opción de configuración <filename>DefaultFace</filename> como resguardo, normalmente <filename>&lt;/share&gt;/pixmaps/nobody.png</filename>.</para>
244
      
245
      <para>Note que cargar y escalar los iconos de rostros situados en los directorios personales de los usuarios puede ser una tarea que consuma mucho tiempo. Debido a que no es práctico cargar imágenes sobre NIS o NFS, GDM no intenta cargar imágenes de rostros desde directorios personales remotos. Además, GDM parará de cargar imágenes de rostros después de 5 segundos de actividad y sólo mostrará los usuarios cuyas imágenes haya obtenido hasta entonces. La opción <filename>Include</filename> de <filename>gdm.conf</filename> puede usarse para especificar un conjunto de usuarios que deberían aparecer en el visor de rostros. Mientras los usuarios a incluir tengan un tamaño razonable, no debería haber ningún problema con GDM siendo incapaz de acceder a las imágenes de rostros. Para evitar estos problemas, se recomienda situar las imágenes de rostros en el directorio especificado por la opción de configuración <filename>GlobalFaceDir</filename>.</para>
246

247
      <para>Para controlar qué usuarios se muestran en el examinador de rostros, hay varias opciones de configuración que pueden usarse. Si se establece a true la opción <filename>IncludeAll</filename>, entonces se analizará el archivo de contraseñas y se mostrarán todos los usuarios. Si la opción <filename>IncludeAll</filename> se establece a falso, entonces la opción <filename>Include</filename> debería contener una lista de usuarios separada por comas. Sólo se mostrarán los usuarios especificados. Cualquier usuario listado en la opción <filename>Exclude</filename> y los usuarios cuyo UID sea inferior a <filename>MinimalUID</filename> se filtrarán con independencia de lo que esté establecido en <filename>IncludeAll</filename>. <filename>IncludeAll</filename> no está recomendado para sistemas donde las contraseñas se carguen por medio de una red (como cuando se usa NIS), debido a que puede ser muy lento cargar más de un pequeño número de usuarios sobre la red.</para>
248

249
      <para>Cuando el examinador está activado, los nombres de usuario válidos en el equipo están expuestos inherentemente a un intruso potencial. Esto puede ser una mala idea si no sabe quién puede acceder a una pantalla de entrada. Esto es especialmente cierto si ejecuta XDMCP (desactivado por omisión).</para>
250 251
    </sect2>

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

255
      <para>GDM por sí mismo usará syslog para registrar los errores o el estado. También puede registrar información de depuración, que puede ser útil para encontrar problemas si GDM no funciona apropiadamente. Esto puede activarse en el archivo de configuración.</para>
256

257
      <para>La salida de varios servidores X está almacenada en el directorio de registros de GDM, el cual es configurable, pero normalmente es <filename>/var/log/gdm/</filename>. La salida desde la sesión puede encontrarse en un archivo llamado <filename>&lt;display&gt;.log</filename>. Cuatro archivos más antiguos se almacenan también con  <filename>.1</filename> a <filename>.4</filename> anexado. Éstos se rotarán a medida que se inicien nuevas sesiones en esa pantalla. Puede usar estos registros para ver que decía el servidor X cuando arrancaba.</para>
258

259
      <para>La salida de la sesión de usuario está redirigida a <filename>~/.xsession-errors</filename> incluso antes de se inicie el script <filename>PreSession</filename>. Así que no es realmente necesario redirigir esto otra vez en el script de configuración de la sesión. Tal como se hace normalmente, si la sesión del usuario duró menos de 10 segundos, GDM asume que la sesión reventó y permite al usuario ver este archivo en un diálogo antes de volver a la pantalla de entrada. De esta manera el usuario puede ver los errores de la última sesión y corregir el problema.</para>
260

261
      <para>Puede suprimir la advertencia de los 10 segundos devolviendo un código 66 desde el script <filename>Xsession</filename> desde el binario de la sesión (el script <filename>Xsession</filename> predeterminado propaga esos códigos hacia atrás). Esto es útil si tiene alguna clase de inicios de sesión especiales para los que no es un error retornar menos de esos 10 segundos después, o si configura la sesión para mostrar algún mensaje de error y el mensaje de GDM podría ser confuso y redundante.</para>
262

263
      <para>La salida de la sesión se encauza a través del demonio gdm y así el archivo <filename>~/.xsession-errors</filename> está capado a cerca de 200 Kbytes por GDM para prevenir una posible denegación de servicio en la sesión. Una aplicación podría quizás leer algunos datos erróneos, imprimir advertencias o errores en stderr o stdout. Esto podría quizás llenar el directorio personal del usuario quien tendría que cerrar sesión e iniciar sesión de nuevo para limpiar esto. Esto podría ser especialmente desagradable si hay cuotas habilitadas. GDM además atrapa correctamente la señal XFSZ y para de escribir el archivo, lo que podría conducir a sesiones matadas si el archivo fue redirigido en la forma antigua desde el script.</para>
264

265
      <para>Note que algunos distribuidores parecen ignorar la redirección de <filename>~/.xsession-errors</filename> y la hacen ellos mismos en su propio script Xsession (establecido por la clave de configuración <filename>BaseXsession</filename>) que significa que GDM no será capaz de atrapar la salida y cubrir este archivo. Puede también perder datos de salida del script <filename>PreSession</filename> lo que puede hacer la depuración mucho más complicada ya que quizás la salida de lo que está equivocado no se imprimirá. Vea la descripción de la clave de configuración <filename>BaseXsession</filename> para más información, especialmente acerca de cómo manejar múltiples gestores de entrada usando el mismo script.</para>
266

267
      <para>Note que si la sesión es una sesión a prueba de fallos, o si GDM no puede abrir este archivo por alguna razón, entonces se creará un archivo de apoyo en el directorio <filename>/tmp</filename> llamado <filename>/tmp/xses-&lt;user&gt;.XXXXXX</filename> donde <filename>XXXXXX</filename> son caracteres aleatorios.</para>
268

269
      <para>Si ejecuta un sistema sin cuotas activadas, será bueno borrar el archivo <filename>~/.xsession-errors</filename> en el script <filename>PostSession</filename>. Así este archivo de registro no está por medio innecesariamente.</para>
270 271
    </sect2>

272
    <sect2 id="fileaccess">
273
      <title>Acceder a archivos</title>
274

275
      <para>En general GDM es muy reluctante respecto a leer/escribir archivos del usuario (como <filename>~/.dmrc</filename>, <filename>~/.face</filename>, <filename>~/.xsession-errors</filename>, y <filename>~/.Xauthority</filename>). Por ejemplo, se niega a acceder a cualquier cosa que no sean archivos regulares. Los enlaces, sockets y dispositivos se ignoran. El valor del parámetro <filename>RelaxPermissions</filename> determina si GDM debe aceptar archivos escribibles por el grupo del usuario u otros. Éstos se ignoran por omisión.</para>
276

277
      <para>Todas las operaciones en los archivos de usuario se realizan con el id efectivo del usuario. Si el control de sanidad falla en el archivo <filename>.Xauthority</filename> del usuario, se crea una cookie de resguardo en el directorio especificado por la opción de configuración <filename>UserAuthFBDir</filename> (<filename>/tmp</filename> por omisión).</para>
278

279
      <para>Finalmente, el administrador del sistema puede especificar el tamaño máximo del archivo que GDM debería aceptar y, en el caso de que el visor de rostros esté activado, se fuerza un tamaño máximo del icono. En sistemas grandes se avisa además que desactive el visor de rostros por razones de rendimiento. Mirar iconos en directorios personales, escalarlos y renderizarlos puede llevar mucho tiempo.</para>
280
    </sect2>
281

282
    <sect2 id="performance">
283
      <title>Rendimiento de GDM</title>
284

285
      <para>Para acelerar el rendimiento es posible construir GDM para que precargue las bibliotecas cuando el GDM muestre un programa de entrada por primera vez. Esto se ha mostrado para acelerar el primer inicio de sesión debido a que estas bibliotecas pueden cargarse en memoria mientras el usuario teclea su nombre y contraseña.</para>
286

287
      <para>Para usar esta característica, configure GDM con la opción <command>--with-prefetch</command>. Esto causará que GDM instale el programa <command>gdmprefetch</command> en el directorio <filename>libexecdir</filename>, instale el <filename>gdmprefetchlist</filename> en el directorio <filename>&lt;etc&gt;/gdm</filename>, y establezca la variable de configuración <filename>PreFetchProgram</filename> para que se llame al programa <command>gdmprefetch</command> con el archivo predeterminado <filename>gdmprefetchlist</filename>. El archivo predeterminado <filename>gdmprefetchlist</filename> se optimizó para un escritorio GNOME ejecutándose en Solaris, así que quizá necesite algo de ajuste fino en otros sistemas. Pueden contribuirse archivos alternativos de prefetchlist en la categoría «gdm» en <ulink type="http" url="http://bugzilla.gnome.org/">bugzilla.gnome.org</ulink>, para que puedan ser incluidos en lanzamientos futuros de GDM.</para>
288 289 290
    </sect2>
  </sect1>

291
  <sect1 id="security">
292 293
    <title>Seguridad</title>

294 295 296
    <sect2 id="PAM">
      <title>PAM</title>

297
      <para>GDM usa PAM para autenticación del usuario, aunque si su máquina no soporta PAM puede compilar GDM para que funcione con la base de datos de contraseñas y la biblioteca de funciones crypt.</para>
298

299
      <para>PAM significa Pluggable Authentication Module, y se usa por la mayoría de los programas que piden autenticación en su equipo. Permite al usuario configurar diferentes comportamientos de autenticación para distintos programas.</para>
300

301
      <para>Algunas características de GDM (como activar la entrada automática) quizá requieran que actualice su configuración PAM. PAM tiene interfaces distintos, pero similares, en diferentes sistemas operativos, así que compruebe su página man de pam.d o pam.conf para los detalles acerca de cómo configurarlo. Asegúrese de leer la documentación de PAM (eg: página man de pam.d/pam.conf) y tenga cuidado con las implicaciones de seguridad de cualquier cambio que intente hacer a su configuración.</para>
302

303
      <para>Si no hay ninguna entrada para GDM en su archivo de configuración de PAM, entonces las características como la entrada automática quizá no funcionen. No tener una entrada hará que GDM use el comportamiento predeterminado, se recomiendan configuraciones conservadoras y probablemente sean los que se entreguen con su distribución.</para>
304

305
      <para>Si desea que GDM funciona con otros tipos de mecanismos de autenticación (como una SmartCard), entonces debe implementar esto escribiendo un módulo PAM en vez de intentando modificar el código de GDM directamente. Refiérase a la documentación de PAM de su sistema. Esta cuestión se ha discutido en la lista de correo <address><email>gdm-list@gnome.org</email></address>, así que puede referirse a los archivadores de la lista para más información.</para>
306 307
    </sect2>

308 309 310
    <sect2 id="gdmuser">
      <title>El usuario GDM</title>

311
      <para>Por razones de seguridad se requieren un usuario y grupo dedicado para un funcionamiento correcto. La necesidad de ser capaz de escribir archivos Xauth es el porqué el usuario «nobody» no es apropiado para gdm.</para>
312

313
      <para>El demonio GDM normalmente se ejecuta como root, y hace de esclavo. Sin embargo GDM debería también tener un id de usuario y un id de grupo dedicado que se usa para sus interfaces gráficas <command>gdmgreeter</command> y <command>gdmlogin</command>. Éstos se configuran por medio de las opciones de configuración <filename>User</filename> y <filename>Group</filename> en los archivos de configuración de GDM. El usuario y grupo debería ser creado antes de ejecutar «make install». Por omisión GDM asume que el usuario y el grupo se llaman «gdm».</para>
314

315
      <para>Este id de usuario se usa para ejecutar los programas del IGU de GDM requeridos para la entrada. Toda la funcionalidad que requiere la autorización de root la realiza el proceso del demonio GDM. Este diseño asegura que si los programas del IGU son comprometidos, sólo los privilegios del usuario dedicado están disponibles.</para>
316

317
      <para>Debería notarse sin embargo que el usuario y el grupo de GDM tienen algunos privilegios que los hacen de alguna manera peligrosos. Por una parte tienen acceso al directorio de autorización del servidor X. Debe ser capaz de leer y escribir claves Xauth en <filename>&lt;var&gt;/lib/gdm</filename>. Este directorio debería tener como propietario root:gdm y permisos 1770. Ejecutar «make install» establecerá este directorio a estos valores. El proceso del demonio de GDM restablecerá este directorio a los permisos/propietario adecuados si por cualquier circunstancia, no estuvieran establecidos de forma correcta.</para>
318

319
      <para>El peligro es que alguien que gane privilegios del usuario/grupo GDM puede entonces conectarse a cualquier sesión. Así que no debería bajo ninguna circunstancia, hacer esto a algún usuario/grupo que pueda ser fácil obtener acceso, como el usuario <filename>nobody</filename>. Los usuarios que ganan acceso al usuario «gdm» podrían también modificar las claves Xauth y provocar ataques de denegación de servicio. También si una persona gana la capacidad de ejecutar programas como el usuario «gdm», podría ser posible espiar los procesos GDM en ejecución, incluyendo usuarios y contraseñas a medida que se teclean.</para>
320

321
      <para>Se espera que las distribuciones y los administradores de sistemas que usen GDM configuren el usuario dedicado de forma apropiada. Se recomienda que este id de usuario se configure para no permitirle iniciar sesión y no tener un intérprete de comandos predeterminado. Las distribuciones y los administradores del sistema deberían configurar el sistema de archivos para asegurarse de que el usuario GDM no tenga permiso de lectura o escritura a los archivos sensibles.</para>
322 323 324 325 326
    </sect2>

    <sect2 id="xauth">
      <title>Esquema de autenticación del servidor X</title>
 
327
      <para>El directorio de autorización del servidor (el <filename>ServAuthDir</filename>) se usa para albergar un conjunto de datos aleatorios internos además de los archivos de autorización del servidor X, y el nombre es realmente una reliquia de la historia. El demonio GDM fuerza que este directorio tenga el propietario <filename>root.gdm</filename> con los permisos 1770. De esta manera sólo root y el grupo de GDM tienen acceso de escritura a este directorio, pero el grupo GDM no puede eliminar los archivos que sean propiedad de root de este directorio, tales como los archivos de autorización del servidor X.</para>
328

329
      <para>GDM por omisión no confía en el directorio de autorización del servidor y lo trata de la misma manera que el directorio temporal respecto a crear archivos. De esta manera, alguien que rompa al usuario  de GDM no puede montar ataques creando enlaces en este directorio. Similarmente el directorio de registros del servidor X se trata de forma segura, pero ese directorio debería ser propiedad y escribible sólo por el usuario root.</para>
330

331
      <para>GDM sólo soporta el sistema de autenticación MIT-MAGIC-COOKIE-1. Normalmente se gana poco de otros esquemas, no se ha hecho ningún esfuerzo en implementarlos hasta ahora. Sea especialmente cuidadoso acerca de usar XDMCP porque las cookies de autenticación van sobre el cable como texto en claro.Obviamente si el espionaje es posible, entonces el atacante podría tan sólo espiar su contraseña de autenticación mientras usted inicia una sesion, con independencia del esquema de autenticación que se esté usando. Si el espionaje es posible y poco 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.</para>
332

333
      <para>En el lado superior, la generación de números aleatorios de GDM es muy conservadora y GDM toma medidas extraordinarias para obtener un verdadero número aleatorio de 128 bits, usando generadores de números aleatorios por hardware si es posible, además de la hora actual (con precisión de microsegundos), un array de 20 bytes de números pseudoaleatorios, pids de procesos, además de otra información aleatoria (posiblemente usando <filename>/dev/audio</filename> o <filename>/dev/mem</filename> si los generadores aleatorios hardware no están disponibles) para crear un búfer grande y después ejecutar un digest MD5 en él. Obviamente, todo este trabajo se desperdicia si envía la cookie a través de una red abierta o la almacena en un directorio NFS (vea la clave de configuración de <filename>UserAuthDir</filename>). Así que sea cuidadoso acerca de dónde usa su display X remoto.</para>
334 335 336 337 338
    </sect2>

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

339
      <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 DoS, (Denial of Service) 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 un DoS a un servidor XDMCP que a un servidor web.</para>
340

341
      <para>También es sabio bloquear todos los puertos del servidor X (puertos TCP 6000 + 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>
342

343
      <para>X no es un protocolo muy seguro para dejarlo en la red, y XDMCP es incluso menos seguro.</para>
344 345 346 347 348
    </sect2>

    <sect2 id="nfssecurity">
      <title>Seguridad de GDM con NFS</title>

349
      <para>Note que el tráfico NFS realmente va "sobre el cable" y puede verse. Cuando se acceda al archivo de autorización X del usuario (<filename>~/.Xauthority</filename>), GDM intentará abrir el archivo para leerlo como root. Si falla, GDM concluirá que se ha montado por NFS y usará automáticamente  <filename>UserAuthFBDir</filename>, que usualmente está en <filename>/tmp</filename>. Este comportamiento puede cambiarse poniendo a «false» <filename>NeverPlaceCookiesOnNFS</filename> en la sección <filename>[security]</filename>.</para>
350 351 352
    </sect2>

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

355
      <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>
356

357
      <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.</para>
358

359
      <para>Las secciones de arriba «Esquema de autenticación del servidor X» y «Seguridad con cortafuegos» también contienen información importante acerca de usuario XDMCP de forma segura. La siguiente sección también discute cómo configurar el control de acceso de XDMCP.</para>
360

361
      <para>Para solucionar la seguridad inherente de XDMCP, gdm propone una sesión predeterminada integrada que usa ssh para encriptar la conexión remota. Vea la sección «Securizar una conexión remota con ssh» arriba.</para>
362 363 364 365 366
    </sect2>

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

367
      <para>El control de acceso XDMCP se realiza usando TCP wrappers. Es posible compilar GDM sin TCP wrappers sin embargo, así que debería comprobar su configuración y verificar que funciona.</para>
368

369
      <para>Debería usar el nombre del demonio <command>gdm</command> en el archivo <filename>&lt;etc&gt;/hosts.allow</filename> y en el archivo <filename>&lt;etc&gt;hosts.deny</filename>. Por ejemplo para denegar la entrada a equipos de <filename>.evil.domain</filename> , añada</para>
370
<screen>
371
gdm: .dominio.maligno
372
</screen>
373
      <para>a <filename>&lt;etc&gt;/hosts.deny</filename>. También necesitará añadir </para>
374
<screen>
375
gdm: .su.dominio
376
</screen>
377 378 379 380
      <para>a su <filename>&lt;etc&gt;/hosts.allow</filename> si normalmente no permite todos los servicios desde todos los equipos. Vea la página del manual <ulink type="help" url="man:hosts.allow">hosts.allow(5)</ulink> para más detalles.</para>
    </sect2>
  </sect1>

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

384
    <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 actualmente reconocidos. En este respecto, puede usarse como un reemplazo de los archivos utmp y utmpx que están disponibles en la mayoría de los sistemas Unix.</para>
385

386
    <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 host 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>
387

388
    <para>En 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>
389

390
    <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>
391

392
    <para>Si no se desea el soporte para ConsoleKit se puede deshabilitar en tiempo de compilación usando la opción --with-console-kit=no al ejecutar configure.</para>
393 394 395

  </sect1>

396
  <sect1 id="gdmsetupusage">
397
    <title>Uso de gdmsetup para configurar GDM</title>
398

399
    <para>La aplicación <command>gdmsetup</command> se puede usar para configurar GDM. Si cree que ejecutar un IGU como root causa un riesgo de seguridad, entonces quizá quiera editar siempre los archivos a mano y no usar <command>gdmsetup</command>. Editar los archivos a mano se explica en la sección «Configuración» de este documento. Note que <command>gdmsetup</command> no soporta cambiar todas las variables de configuración, así que quizás sea necesario editar los archivos a mano para algunas configuraciones.</para>
400

401
    <para>El programa <command>gdmsetup</command> tiene cinco solapas. Local, Remoto, Accesibilidad, Seguridad y Usuarios, descritas abajo. Entre paréntesis está la información acerca de qué clave de configuración de GDM está afectada por cada selección del IGU. Vea la sección «Configuración» de este manual y los comentarios en el archivo &lt;share&gt;/gdm/defaults.conf para detalles adicionales acerca de cada clave.</para>
402 403

    <sect2 id="gdmsetuplocaltab">
404
      <title>Solapa Local</title>
405
     
406
      <para>La solapa Local se usa para controlar la apariencia de GDM para las pantallas locales/estáticas (no para las conexiones XDMCP remotas). Las opciones disponibles en esta solapa dependen de lo que esté seleccionado en la caja de combinación «Estilo». Esta caja de combinación se usa para determinar se usa el interfaz «Plano» o «Con tema». Las diferencias entre estos programas de interfaz se explican en la sección «Vista general» de este documento.</para>
407

408
      <para>Si la selección de «Estilo» es «Plano», entonces GDM usará el programa <command>gdmlogin</command> como el IGU (daemon/Greeter). Cuando esta opción está seleccionada, <command>gdmsetup</command> permite al usuario seleccionar si el fondo es una imagen o color sólido (greeter/BackGroundType). Si está seleccionado imagen, hay un botón de selección de archivos para escoger el archivo de imagen (greeter/BackgroundImage) y una casilla para escalar la imagen para que quepa en la pantalla (greeter/BackgroundImageScaleToFit). Si se selecciona color sólido, hay un botón disponible para permitir la selección del color (greeter/BackgroundColor). Además, el usuario puede seleccionar la imagen del logo que aparece en gdmlogin (greeter/Logo).</para>
409

410
      <para>Si la elección de «Estilo» es «Plano con visor de rostros», entonces el programa <command>gdmlogin</command> se usa como el IGU (daemon/Greeter) y el visor de rostros se activa (greeter/Browser). El visor de rostros se explica en la sección Vista general. De todas formas, las elecciones son las mismas que cuando la elección de «Estilo» es «Plana». Puede ser necesaria la configuración adicional en la solapa Usuarios para elegir qué usuarios aparecen en el Visor de rostros.</para>
411

412
      <para>Si la opción de «Estilo» es «Con temas», entonces se usa el programa <command>gdmgreeter</command> como el IGU (daemon/Greeter). Cuando esta opción está seleccionada, <command>gdmsetup</command> permite al usuario seleccionar el tema para que se use (greeter/GraphicalTheme). Note que la casilla en la izquierda del nombre del tema debe marcarse para que ese tema se pueda seleccionar. Pulsar en el tema pero no marcar la casilla resaltará el tema y el botón «Quitar» se puede usar para borrar el tema. Se muestra información acerca del autor del tema y el copyright para el tema seleccionado. Para activar el Visor de rostros, debe seleccionarse un tema que incluya un visor de rostros, como GNOME Feliz. El «Color de fondo» mostrado cuando GDM se inicia (y si el tema tiene elementos transparentes) también se puede seleccionar (greeter(GraphicalThemedColor). La caja combo «Tema» se puede establecer a «Aleatorio de los seleccionados» si quiere que se use un tema aleatorio para cada entrada (greeter/GraphicalThemeRand y greeter/GraphicalThemes). Para usar temas aleatorios, seleccione cada tema que quiera usar. Por omisión esta caja de combinación está establecida a «Sólo seleccionados», para que sólo un único tema pueda seleccionarse y ser usado.</para>
413

414
      <para>A pesar de la selección »Estilo», el usuario podría seleccionar si el menú de acciones es visible (greeter/SystemMenu), o so el menú Acciones incluye la elección para iniciar <command>gdmsetup</command> (greeter/ConfigAvailable), y si el menú de Acciones incluye la opción para hacer que <command>gdmchooser</command> ejecute una sesión de entrada remota XDMCP (greeter/ChooseButton). Note que la contraseña de root debe introducirse para iniciar <command>gdmsetup</command> desde la pantalla de entrada si está activado. Además el mensaje de bienvenida mostrado para las sesiones locales se puede seleccionar (greeter/DefaultWelcome y greeter/Welcome). El mensaje de Bienvenida puede contener las secuencias de caracteres descritas en la sección de «Nodos de texto» de la sección de «Interfaz de temas» de este manual.</para>
415 416 417
    </sect2>

    <sect2 id="gdmsetupremotetab">
418
      <title>Solapa Remoto</title>
419

420
      <para>La solapa Remoto controla la apariencia de GDM para los usuarios que accedan por medio de XDMCP. Por omisión, XDMCP está desactivado, y los usuarios deberían entender las secciones relacionadas con XDMCP de la sección de Seguridad de este documentos antes de activarlo. Esta solapa incluye una caja combinada «Estilo» que se puede usar para activar XDMCP y controlar la apariencia de GDM para usuarios remotos (gui/RemoteGreeter y xdmcp/Enable). Esta caja combinada se podría establecer a «Entrada remota desactivada» o «Igual que local». Si la solapa Local está puesta a «Plano» o «Plano con visor de rostros», entonces el usuario debería además seleccionar «Con temas». Si la solapa Local está puesta a «Con temas», entonces el usuario puede seleccionar además «Plano» y «Plano con visor de rostros». Se recomienda que se use el IGU «Plano» para las conexiones remotas ya que es más ligero y tiende a tener mejor rendimiento a través de la red.</para>
421

422
      <para>Si está activada la  entrada remota, entonces el usuario puede especificar el mensaje de bienvenida remoto que se mostrará (greeter/DefaultRemoteWelcome y greeter/RemoteWelcome). Este mensaje de bienvenida está separado desde el mensaje de bienvenida Local y puede tener un valor diferente. El mensaje de bienvenida puede contener las secuencias de caracteres descritas en la sección «Nodo de texto» de la sección «Interfaz con temas» de este manual.</para>
423

424
      <para>Si la selección de «Estilo» es «La misma que local» y la selección local es «Plano» o «Plano sin visor de rostros», entonces el usuario puede seleccionar si las imágenes del fondo debe mostrarse para las entradas remotas (greeter/BackgroundRemoteOnlyColor).</para>
425

426
      <para>Si la selección «Estilo» está activada y establecida a un valor diferente que la solapa «Local», entonces el usuario tiene las mismas selecciones de configuración que las encontradas en la solapa Local, excepto que las del Menú de Sistema, debido a que nunca están disponibles para las entradas remotas por razones de seguridad.</para>
427

428
      <para>Si está activada la entrada remota, hay un botón «Configurar XDMCP» que muestra un diálogo permitiendo al usuario establecer la configuración XDMCP, incluyendo si se confían las peticiones indirectas (xdmcp/MaxPending), las peticiones indirectas pendientes máximas  (xmdcp/MaxPendingIndirect), las sesiones remotas máximas (xdmcp/MaxSessions), tiempo máximo de espera  (xdmcp/MaxWait), tiempo máximo de espera para peticiones indirectas (xdmcp/MaxWaitIndirect), pantallas por equipo remoto (xdmcp/DisplaysPerHost), e intervalo de ping (xdmcp/PingIntervalSeconds). Los ajustes predeterminados son ajustes estándar y sólo deberían cambiarse por alguien que entienda las ramificaciones del cambio.</para>
429 430 431
    </sect2>

    <sect2 id="gdmsetupaccessibilitytab">
432
      <title>Solapa Accesibilidad</title>
433

434
      <para>La solapa de Accesibilidad se usa para activar las características de Accesibilidad en GDM. «|Activar entrada accesible» (daemon/AddGtkModules y daemon/GtkModulesList) activa los listeners de gestos de GDM que se explican en la sección «Accesibilidad» de este documento. Hay además una casilla para permitir a los usuarios cambiar el tema al usar el interfaz «Plano» (gui/AllowGtkThemeChange). Esta característica permite a los usuarios de GDM cambiar el tema a temas de Alto Contraste o  Bajo Contraste si fuera necesario. El usuario podría seleccionar además si GDM debería reproducir un sonido cuando la pantalla de entrada esté preparara, cuando la entrada tiene éxito y cuando la entrada ha fallado. Los botones del selector de archivos se usan para seleccionar el archivo de sonido a reproducir, y el botón «Reproducir» se puede usar para obtener una muestra del sonido.</para>
435 436 437
    </sect2>

    <sect2 id="gdmsetupsecuritytab">
438
      <title>Solapa Seguridad</title>
439

440
      <para>La solapa Seguridad permite al usuario activar la entrada automática y la entrada temporizada, qué usuario entra por medio de una entrada automática o temporizada, y el retardo de la entrada temporizada (daemon/AutomaticLoginEnable, daemon/AutomaticLogin, daemon/TimedLoginEnable, daemon/TimedLogin, y daemon/TimedLoginDelay). Si se activa la entrada automática, entonces el usuario especificado entrará automáticamente al reiniciar sin que GDM pida usuario y contraseña. Si el usuario sale de su sesión, GDM se iniciará y pedirá un usuario y contraseña para volver a entrar. Si está activado TimedLogin, entonces GDM iniciará sesión con el usuario especificado tras un número especificado de segundos. El usuario podría activar la entrada temporizada para las conexiones remotas (XDMCP) marcando la casilla «Permitir entradas remotas temporizadas».</para>
441

442
      <para>En esta solapa, el usuario puede seleccionar si el usuario administrador del sistema puede entrar, y si el usuario administrador del sistema puede entrar por medio de conexiones remotas (XDMCP) (security/AllowRoot y security/AllowRemoteRoot). El usuario puede activar la depuración de GDM (debug/Enable) lo cual causa que los mensajes de depuración se envíen al registro del sistema. La depuración sólo debería usarse para diagnosticar un problema y no debería dejarse activada cuando no se necesita.Si se selecciona la opción «Denegar conexiones TCP al servidor X» desactivará el reenvío de X (security/DisallowTCP). Se puede establecer un retardo de entrada (security/RetryDelay) para hacer que GDM espere un número de segundos después de una entrada fallida.</para>  
443

444
      <para>El botón «Configurar servidor X» se puede usar para especificar como GDM gestiona cada pantalla. La caja combo «Servidores» muestra qué definiciones de servidor están disponibles (Estándar, Terminal, y Selector por omisión). Vea la sección «Definiciones de servidor X» de la sección de «Configuración» para más información acerca de cómo crear nuevas definiciones de servidores.</para>
445

446
      <para>Para cualquier tipo de servidor, el usuario podría modificar el «Nombre del servidor» (server/name), el «Comando» (server/command) que se usa para lanzar el servidor X, si el tipo de servidor lanzará  el interfaz de entrada o el de selección de equipo remoto (server/chooser) tras iniciar el servidor X, si GDM manipulará este tipo (normalmente sólo se establece a falso cuando se entra en una sesión de tipo terminal), y si el tipo de sesión soporta sesiones «Flexibles» (server/flexible).</para>
447

448
      <para>La sección «Servidores que iniciar» muestra qué tipo de servidor se muestra para cada pantalla en la máquina. Los usuarios podrían pulsar en el botón «Añadir/Modificar) para añadir una pantalla nueva a la lista o para modificar una pantalla seleccionada, Esto simplemente hace corresponder a cada pantalla física con la definición del servidor que se usará para gestionar esa pantalla. El botón «Quitar» se puede usar para quitar una pantalla de la lista.</para>
449 450 451
    </sect2>

    <sect2 id="gdmsetupuserstab">
452
      <title>Solapa Usuarios</title>
453

454
      <para>La solapa Usuarios controla qué usuarios aparecen en el Visor de Rostros. Si la casilla «Incluir todos los usuarios de /etc/password» está seleccionada, entonces todos los usuarios (con un id de usuario por encime de greeter/MinimalUID y que no estén en la lista Excluir) se muestran. Si esta casilla no está seleccionada, entonces los usuarios se deben añadir a la lista «Incluir». Los usuarios en la lista «Excluir» nunca se muestran. Los botones «Añadir» y «Quitar» se usan para añadir un usuario nuevo a la lista o quitar un usuario seleccionado de la lista. El botón «Aplicar cambios de usuarios» se debe pulsar tras modificar las listas «Incluir» y «Excluir». Los botones de flechas de la izquierda y derecha se pueden usar para mover un usuario seleccionado de una lista a otra.</para>
455 456 457
    </sect2>
  </sect1>

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

461 462 463
    <para>GDM tiene una gestión de configuración potente. La configuración del sistema está almacenada en <filename>&lt;share&gt;/gdm/defaults.conf</filename> y la intención es que este archivo se pueda almacenar en un sistema de archivos compartido de manera que los administradores de sistema sólo tengan que modificar un solo archivo para controlar la configuración de varias máquinas. Además las distribuciones de GDM pueden parchear este archivo al actualizar para mejorar la usabilidad, la seguridad, etc. La configuración podría adaptarse para una máquina específica editando el archivo <filename>&lt;etc&gt;/gdm/custom.conf</filename> para incluir una configuración distinta para una clave específica. Aquellos parámetros en las secciones «gui» y «greater», y la clave security/PamStack se pueden personalizar por pantalla especificandolos en un archivo llamado <filename>&lt;etc&gt;/gdm/custom.conf&lt;display num&gt;</filename>. Por ejemplo, los overrides de configuración para la pantalla ":103" se podrían almacenar en el archivo <filename>&lt;etc&gt;/gdm/custom.conf:103</filename>. La configuración por pantalla está soportada en GDM 2.14.6 y posterior.</para>

    <para>El comando <command>gdmsetup</command> es un programa IGU que puede usar para editar la configuración de GDM. Este programa puede lanzarse directamente desde la pantalla de entrada si la clave greeter/ConfigAvailable está establecida a «true». El GUI no soporta todas las claves de configuración de GDM, así que quizá tenga que editar los archivos de configuración a mano para editar esas claves. Si crees que ejecutar un GUI perteneciente al root es un riesgo de seguridad, entonces podría querer editar siempre estos archivos a mano. Este programa no soporta establecer la configuración por cada pantalla, así que los archivos de configuración por cada pantalla deben configurarse a mano.</para>
464 465 466 467

    <para>Las distribuciones deberían editar el archivo <filename>&gt;&lt;share&gt;/gdm/defaults.conf</filename> para establecer los valores predeterminados para que éstos se preserven como predeterminados y no sean modificados por los usuarios modificando su archivo de configuración personal <filename>&lt;etc&gt;/gdm/custom.conf</filename>.</para>

    <para>Si quiere cambiar la configuración a mano, edite el archivo <filename>&lt;etc&gt;/gdm/custom.conf</filename> y asegúrese de que el par clave=valor que quiere está incluido en la sección apropiada. Por ejemplo, para cambiar la clave  "Greeter" en la sección "daemon" asegúrese de que la sección daemon del archivo <filename>&lt;etc&gt;/gdm/custom.conf</filename> tiene el valor como el de este ejemplo. </para>
468 469 470 471 472

<screen>
[daemon]
Greeter=/usr/lib/gdmgreeter
</screen>
473

474
    <para>Los archivos de configuración (especialmente <filename>&lt;share&gt;/gdm/defaults.conf</filename> y <filename>&lt;etc&gt;/gdm/custom.conf</filename>) contienen comentarios útiles y ejemplos, así que léalos para más información acerca de cambiar su configuración. GDM considera las líneas que comienzan por un carácter «#» un comentario, y estas líneas serán ignoradas por GDM. Algunas claves en <filename>&lt;share&gt;/gdm/defaults.conf</filename> se comentan mientras que otras están establecidas. Los valores comentados muestran el valor predeterminado.</para>
475

476
    <para>EL archivo  <filename>&lt;share&gt;/gdm/defaults.conf</filename> contiene las opciones de configuración predeterminadas para GDM, y no debería ser modificado por el usuario. El archivo <filename>&lt;etc&gt;/gdm/custom.conf</filename> es donde los usuarios pueden especificar sus opciones de configuración personalizadas. Las opciones de configuración especificadas en el archivo <filename>&lt;etc&gt;/gdm/custom.conf</filename> toman precedencia sobre los valores en el archivo principal <filename>&lt;share&gt;/gdm/defaults.conf</filename>. Ejecutar el comando <command>gdmsetup</command> hará que el archivo <filename>&lt;etc&gt;/gdm/custom.conf</filename> se modifique con las opciones de configuración del usuario y hará que cualquier programa del IGU de GDM se actualice automáticamente. Anteriormente a la versión 2.13.0.4 GDM sólo soportaba el archivo <filename>&lt;etc&gt;/gdm/gdm.conf</filename>, así que si está usando una versión más antigua de GDM tan sólo edite ese archivo directamente.</para>
477

478
    <para>La ubicación de los archivos de configuración puede controlarse por medio de las opciones de configuración <command>--with-defaults-conf</command> y <command>--with-custom-conf</command>. La opción --config del demonio GDM podría usarse también para especificar la ubicación del archivo de configuración. El demonio GDM debe reiniciarse para cambiar el archivo de configuración en uso.</para>
479

480
    <para><filename>&lt;share&gt;/gdm/factory-gdm.conf</filename> es el archivo de  configuración tal como se empaqueta con el demonio. Esto puede ser útil para ver si el archivo <filename>&lt;share&gt;/gdm/defaults.conf</filename> ha cambiado.</para>
481

482
    <para>Los demás archivos de configuración de GDM se encuentran, por omisión, en la carpeta <filename>&lt;etc&gt;/gdm/</filename> o sus subdirectorios. Sin embargo, la ubicación de todos los archivos de configuración se definen en los archivos de configuración de GDM, así que el administrador del sistema puede elegir situar estos archivos en cualquier lugar.</para>
483 484 485

    <para>Esta es una lista de los contenidos del directorio de configuración:</para>

486
<screen>
487 488 489 490 491 492 493 494
locale.alias
Xsession
XKeepsCrashing
modules/
Init/
PostLogin/
PreSession/
PostSession/
495
</screen>
496

497
    <para><filename>locale.alias</filename> es un archivo que se parece mucho al archivo de alias regionales del sistema pero no es el mismo. Éstos son los idiomas que están disponibles en su sistema. Todos los idiomas además se prueban para ver si actualmente existen antes de presentárselos al usuario.</para>
498

499
    <para><filename>Xsession</filename> es un script que configura una sesión de usuario y después ejecuta la selección de sesión del usuario. Note que el script de sesión se inicia típicamente por el archivo <filename>desktop</filename> asociado con la sesión que el usuario a escogido. Algunas sesiones quizá inicien la sesión del usuario por medio de un mecanismo diferente que el script <filename>Xsession</filename> así que marque el <filename>desktop</filename> apropiado antes de asumir que el problema de inicio está causado por este archivo.</para>
500

501
    <para><filename>XKeepsCrashing</filename> es un script que se ejecuta cuando el servidor X continúa colgándose y no se puede recuperar. El script predeterminado incluido funcionará con la mayoría de las distribuciones de Linux y puede ejecutar la aplicación de configuración de X siempre que la persona en la consola conozca la contraseña de root.</para>
502

503
    <para>Los módulos de accesibilidad se configuran en el subdirectorio <filename>modules/</filename>, y son un tema aparte. Lea los archivos predeterminados provistos, tienen documentación adecuada. De nuevo normalmente la instalación predeterminada se da en archivos con <filename>factory</filename> en su nombre, y dichos archivos no se leen, están solo ahí para que usted pueda volver siempre a la configuración predeterminada.</para>
504

505
    <para>Los archivos que describen las sesiones GDM disponibles siguen la especificación de archivos <filename>.desktop</filename> de freedesktop.org y se instalan en <filename>&lt;etc&gt;/X11/sessions/</filename>. Este directorio también lo lee el gestor de entrada de KDE para una configuración común. El siguiente directorio <filename>&lt;share&gt;/gdm/BuiltInSessions/</filename> se lee para las sesiones integradas específicas de GDM (KDM las lleva en el propio código cuando se escribió este manual). Por último la configuración predeterminada también lee <filename>&lt;share&gt;/xsessions/</filename> (que debería ser  <filename>/usr/share/xsessions/</filename> si realmente quiere cooperar con KDM) donde los paquetes del escritorio pueden instalar sus propios archivos de sesión. Los directorios bajo <filename>&lt;etc&gt;</filename> deberían estar reservados para la configuración. La aproximación de la especificación de archivos de escritorio hace fácil para los sistemas de gestión de paquetes instalar gestores de ventanas y diferentes tipos de sesiones sin requerir que el administrador del sistema edite los archivos. Vea la clave de configuración <filename>SessionDesktopDir</filename> para cambiar las rutas. Solía ocurrir que GDM almacenaba sus sesiones integradas en <filename>&lt;etc&gt;/dm/Sessions/</filename> pero esto es obsoleto a partir de 2.5.90.0 Note que antes de la versión 2.4.4.2 sólo se leía <filename>&lt;etc&gt;/dm/Sessions/</filename>.</para>
506

507
    <para>Puede desactivarse una sesión (si fue instalada en <filename>&lt;share&gt;xsessions/</filename>) añadiendo un <filename>.desktop</filename> nombrado idénticamente a uno de los directorios anteriores en la ruta (como <filename>&lt;etc&gt;/X11/sessions</filename>) y usando <filename>Hidden=true</filename> en ese archivo.</para>
508 509

    <sect2 id="scriptdirs">
510
      <title>Los directorio de scripts</title>
511 512 513
      
      <para>En esta sección explicaremos los directorios <filename>Init</filename>, <filename>PostLogin</filename>, <filename>PreSession</filename> y <filename>PostSession</filename> ya que son muy similares.</para>

514
      <para>Cuando el servidor X se haya iniciado con éxito, GDM intentará ejecutar el script llamado <filename>Init/&lt;displayname&gt;</filename>. Ej: <filename>Init/:0</filename> para la primera pantalla local. Si este archivo no se encuentra, GDM intentará ejecutar <filename>Init/&lt;hostname&gt;</filename>. Ej: <filename>Init/somehost</filename>. Si esto aún no se encuentra, GDM intentará <filename>Init/XDMCP</filename> para todas las entradas XDMCP o <filename>Init/Flexi</filename> para todas las pantallas bajo demanda. Si no se encuentra ninguno de los anteriores, GDM ejecutará <filename>Init/Default</filename>. El script se ejecutará como root y GDM se bloquea hasta que termina. Use el script <filename>Init/*</filename> para las aplicaciones que se suponen que se ejecutan junto con la ventana de entrada de GDM. xconsole por ejemplo. Los comandos para poner el fondo de pantalla, etc. van también en este archivo.</para>
515

516
      <para>Es responsabilidad del administrador de sistemas decidir si los clientes iniciados por el script Init deben matarse antes de iniciar la sesión del usuario. Esto se controla con la opción de configuración <filename>KillInitClients</filename></para>
517

518
      <para>Cuando el usuario ha sido autenticado con éxito GDM intenta los scripts en el directorio <filename>PostLogin</filename> de la misma manera que para el directorio <filename>Init</filename>. Esto se hace antes de que cualquier configuración de la sesión se realice, y así que este debería ser el script donde quizá usted desee configurar el directorio personal si necesita hacerlo (aunque debería usar el módulo <filename>pam_mount</filename> si puede para esto). Tiene las variables de entorno <filename>$USER</filename> y <filename>$DISPLAY</filename> establecidas para este script, y de nuevo se ejecuta como root. El script debería devolver 0 si tiene éxito y de otra manera el usuario no iniciará sesión. Sin embargo esto no es cierto para la sesión a prueba de fallos.</para>
519

520
      <para>Después de que la sesión del usuario haya sido configurada desde el lado de las cosas de GDM, GDM ejecutará los scripts en el directorio de <filename>PreSession</filename>, de nuevo de la misma manera que el directorio <filename>Init</filename>. Use este script para la gestión de sesión local o el material de contabilidad. La variable de entorno <filename>$USER</filename> contiene el nombre de inicio de sesión del usuario autenticado y <filename>$DISPLAY</filename> está establecido al visualizador actual. El script debería devolver 0 si tiene éxito. Cualquier otro valor hará que GDM termine el proceso actual de inicio de sesión. Esto sin embargo no ocurre para la sesión a prueba de fallos. Además la variable de entorno <filename>$X_SERVERS</filename> está establecida y ésta apunta a un archivo falso de servidores X para usarla con la aplicación de contabilidad sessreg.</para>
521

522
      <para>Después de esto se ejecuta el script <filename>Xsession</filename> base con el ejecutable de la sesión seleccionada como primer argumento. Esto se ejecuta como el usuario, y realmente esta es la sesión del usuario. Los ejecutables de sesiones disponibles se toman de la línea <filename>Exec=</filename> en los archivos <filename>.desktop</filename> de la ruta especificada en <filename>SessionDesktopDir</filename>. Usualmente esta ruta es <filename>&lt;etc&gt;/X11/sessions/:&lt;etc&gt;/dm/Sessions:/usr/share/xsessions/</filename>. Se usa el primer archivo encontrado. El usuario o escoge de estas sesiones o GDM buscará dentro del archivo <filename>~/.dmrc</filename> la preferencia almacenada.</para>
523

524
      <para>Este script debería cargar realmente el perfil de los usuarios y generalmente hacer todo el vudú que se necesita para lanzar una sesión. Debido a que muchos sistemas restablecen las selecciones de idioma realizadas por GDM, GDM también establece la variable <filename>$GDM_LANG</filename> al idioma seleccionado. Puede usar esto para restaurar las variables de entorno de idiomas tras ejecutar el perfil del usuario. Si el usuario eligió el idioma del sistema, entonces <filename>$GDM_LANG</filename> no se establece.</para>
525

526
      <para>Cuando el usuario termina su sesión, se ejecuta el script <filename>PostSession</filename>. De nuevo la operación es similar a <filename>Init</filename>, <filename>PostLogin</filename> y <filename>PreSession</filename>. De nuevo el script se ejecuta con privilegios de root, el demonio esclavo se bloqueará y la variable de entorno <filename>$USER</filename> contendrá el nombre del usuario que acaba de cerrar sesión y <filename>$DISPLAY</filename> se establecerá al visualizador que el usuario usó, sin embargo note que el servidor X para este visualizador quizá ya esté muerto y así que no debería intentar acceder a él. Además la variable de entorno <filename>$X_SERVERS</filename> está establecida y ésta apunta a un archivo generado falsificado de servidores X para usar con la aplicación de contabilidad sessreg.</para>
527

528
      <para>Note que el script de <filename>PostSession</filename> se ejecutará incluso cuando el visualizador falle al responder debido a un error de E/S o similar. Así que, no hay garantía de que funcionen las aplicaciones X durante la ejecución del script.</para>
529

530
      <para>Excepto para el script <filename>Xsession</filename> todos estos scripts también tendrán la variable de entorno <filename>$RUNNING_UNDER_GDM</filename> establecida a <filename>yes</filename>, así que podría quizás usar scripts similares para distintos gestores de entrada. <filename>Xsession</filename> siempre tendrá <filename>$GDMSESSION</filename> establecido al nombre base de la sesión que el usuario eligió ejecutar sin la extensión <filename>.desktop</filename>. Además <filename>$DESKTOP_SESSION</filename> también está establecida al mismo valor y de hecho esto también lo establecerá KDM en versiones futuras.</para>
531

532
      <para>Ninguno de scripts <filename>Init</filename>, <filename>PostLogin</filename>, <filename>PreSession</filename> o <filename>PostSession</filename> son necesarios y se pueden dejar vacíos. El script <filename>Xsession</filename> sin embargo es necesario así como al menos un archivo de sesión <filename>.desktop</filename>.</para>
533 534 535
    </sect2>

    <sect2 id="configfile">
536
      <title>Los archivos de configuración - <filename>defaults.conf</filename> y <filename>custom.conf</filename></title>
537
      
538
      <para>GDM usa dos archivos de configuración: <filename>&lt;share&gt;/gdm/defaults.conf</filename> y <filename>&lt;etc&gt;/gdm/custom.conf</filename>. El archivo <filename>&lt;share&gt;/gdm/defaults.conf</filename> contiene las elecciones de configuración predeterminadas para GDM, y no debería modificarse por el usuario. El archivo <filename>&lt;etc&gt;/gdm/custom.conf</filename> es donde los usuarios pueden especificar sus elecciones de configuración personales. Las opciones de configuración especificadas en el archivo <filename>&lt;etc&gt;/gdm/custom.conf</filename> toman precedencia sobre los valores en el archivo <filename>&lt;share&gt;/gdm/defaults.conf</filename> Si una opción de configuración no está definida en cualquier archivo, GDM usará el valor predeterminado descrito en los comentarios en el archivo <filename>&lt;share&gt;/gdm/defaults.conf</filename>.</para>
539

540
      <para>Ejecutar el comando <command>gdmsetup</command> causará que se modifique <filename>&lt;etc&gt;/gdm/custom.conf</filename> con las selecciones de configuración del usuario.</para>
541

542
      <para>Anterior a GDM 2.13.0.4 sólo existía el archivo <filename>&lt;etc&gt;/gdm/gdm.conf</filename>. Si actualiza a una versión nueva de GDM, la instalación comprobará para ver si su archivo <filename>&lt;etc&gt;/gdm/gdm.conf</filename> es diferente de su archivo <filename>&lt;etc&gt;/gdm/factory-gdm.conf</filename> . Si lo es, su archivo <filename>&lt;etc&gt;/gdm/gdm.conf</filename> se copiará automáticamente a <filename>&lt;etc&gt;/gdm/custom.conf</filename> para preservar  cualesquiera cambios de configuración.</para>
543
        
544
      <para>La ubicación de los archivos de configuración puede controlarse por medio de las opciones de configuración <command>--with-defaults-conf</command> y <command>--with-custom-conf</command>. La opción --config del demonio GDM podría usarse en su lugar para especificar la ubicación del archivo de configuración. El demonio GDM debe reiniciarse para cambiar el archivo de configuración en uso.</para>
545

546
      <para>Ambos archivos de configuración están divididos en secciones cada una conteniendo variables que definen el comportamiento para una parte específica de la suite GDM. Refiérase a los comentarios en el archivo <filename>&lt;share&gt;/gdm/defaults.conf</filename> para información adicional acerca de cada ajuste de configuración.</para>
547

548
      <para>Los archivos <filename>&lt;share&gt;/gdm/defaults.conf</filename> y <filename>&lt;etc&gt;/gdm/custom.conf</filename> siguen el estándar de sintaxis de archivo de configuración <filename>.ini</filename>. Las palabras clave entre corchetes definen secciones, las cadenas antes del signo igual (=) son variables y los datos tras el signo igual representan su valor. Las líneas en blanco o las líneas que empiezan con la almohadilla (#) se ignoran. El configurador gráfico intentará preservar tanto los comentario (líneas con una almohadilla) como la estructura completa del archivo así que puede intercambiar usando el IGU o editando a mano el archivo de configuración.</para>
549 550 551 552 553 554 555 556 557

      <sect3 id="daemonsection">
        <title>Configuración del demonio</title>

        <variablelist>
          <title>[daemon]</title>

          <varlistentry>
            <term>AddGtkModules</term>
558
            <listitem>
559 560
              <synopsis>AddGtkModules=false</synopsis>
              <para>Si es true, entonces activa <command>gdmgreeter</command> o <command>gdmlogin</command> para que se lancen con módulos GTK+ adicionales. esto es útil cuando se requieren características extra como un inicio sesión accesible. Note que sólo deberían usarse los módulos «confiables» para minimizar las cuestiones de seguridad.</para>
561
              <para>Si es true, entonces el demonio de registro <command>at-spi-registryd</command> se lanzará por <command>gdmgreeter</command> o <command>gdmlogin</command> iniciando con la versión GDM 2.17.</para>
562 563 564 565 566 567 568 569
              <para>Usualmente esto se usa para los módulos de accesibilidad. Los módulos que se cargan se especifican con la clave <filename>GtkModulesList</filename>.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>AlwaysRestartServer</term>
            <listitem>
              <synopsis>AlwaysRestartServer=false</synopsis>
570
              <para>Si es true, entonces gdm nunca trata de reutilizar servidores X existentes reinicializándolos. Tan sólo mata el servidor X existente y empieza de nuevo. Normalmente , tan sólo reinicializar es una manera mejor pero si el uso de memoria del servidor X continua creciendo esto puede ser una opción más segura. En Solaris, este valor siempre es true, y este ajuste de configuración se ignora.</para>
571 572 573
            </listitem>
          </varlistentry>

574 575 576 577
          <varlistentry>
            <term>AlwaysLoginCurrentSession</term>
            <listitem>
              <synopsis>AlwaysLoginCurrentSession=true</synopsis>
578
              <para>Si es «true», cuando el usuario entra y ya tiene una sesión existente, entonces se concecta a esa sesión en lugar de iniciar una sesión nueva. Esto sólo funciona en sesiones que se ejecutan en VTs (Virtual Terminals) iniciados con gdmflexiserver, y no con XDMCP. Note que los VTs no están soportados en todos los sistemas operativos.</para>
579 580 581
            </listitem>
          </varlistentry>

582 583 584 585
          <varlistentry>
            <term>AutomaticLoginEnable</term>
            <listitem>
              <synopsis>AutomaticLoginEnable=false</synopsis>
586
              <para>Si el usuario dado en AutomaticLogin debería entrar al primer arranque. No se pedirá ninguna contraseña. Esto es útil para estaciones de trabajo de un sólo usuario donde la seguridad de la consola local no es un problema. Además podría ser útil para terminales públicos, aunque allí vea <filename>TimedLogin</filename>.</para>
587 588 589 590 591 592 593
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>AutomaticLogin</term>
            <listitem>
              <synopsis>AutomaticLogin=</synopsis>
594
              <para>Este usuario debería iniciar sesión automáticamente al primer arranque. AutomaticLoginEnable debe ser true y esto debe ser un usuario válido para que esto ocurra. Sin embargo "root" nunca puede iniciar una sesión automáticamente y gdm se negará a hacerlo incluso si lo configura.</para>
595

596
              <para>Se reconocen los siguientes caracteres de control dentro del nombre especificado:</para>
597

598
              <para>&percnt;&percnt;&mdash; carácter `&percnt;'</para>
599

600
              <para>&percnt;d &mdash; nombre de la pantalla</para>
601

602
              <para>&percnt;h &mdash; nombre de host de la pantalla</para>
603

604
              <para>Alternativamente, el nombre podría terminar con una barra vertical |, el símbolo de cauce. El nombre se usa entonces como una aplicación a ejecutar que revuelve el nombre de usuario deseado en la salida estándar. Si se devuelve un nombre de usuario vacío o inválido, no se realiza el inicio de sesión automático. Esta característica se usa típicamente cuando se usan varios visores remotos como kioscos de Internet, con un usuario específico para iniciar sesión automáticamente en cada visualizador.</para>
605 606 607 608 609 610 611
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>BaseXsession</term>
            <listitem>
              <synopsis>BaseXsession=&lt;etc&gt;/gdm/Xsession</synopsis>
612
              <para>Este es el archivo base X session. Cuando un usuario entra, este script se ejecuta con la sesión seleccionada como primer argumento. La sesión seleccionada será la indicada por <filename>Exec=</filename> en el archivo de sesión <filename>.desktop</filename>.</para>
613

614
              <para>Si quiere usar el mismo script para varios gestores de entrada diferentes, y quiere tener algunos de los scripts para que sólo se ejecuten por GDM, entonces puede comprobar por la presencia de la variable de entorno <filename>GDMSESSION</filename>. Esto siempre será establecido al nombre base del archivo <filename>.desktop</filename> (sin la extensión) que se está usando en esta sesión, y sólo estará establecido para las sesiones GDM. Anteriormente algunos scripts estaban comprobando <filename>GDM_LANG</filename>, pero eso sólo se establece cuando el usuario escoge un idioma no predeterminado del sistema.</para>
615

616
              <para>Este script debería encargarse de hacer el login para el usuario y por lo tanto debería incluir <filename>&lt;etc&gt;/profile</filename> y demás. El script estándar entregado con GDM incluye los archivos en este orden: <filename>&lt;etc&gt;/profile</filename> después <filename>~/.profile</filename> después <filename>&lt;etc&gt;/xprofile</filename> y finalmente<filename>~/.xprofile</filename>. Note que las diferentes distribuciones podrían cambiar esto. Algunas veces la configuración personal del usuario estará en <filename>~/.bash_profile</filename>, por muy defectuoso que esto sea.</para>
617 618 619 620
            </listitem>
          </varlistentry>
          
          <varlistentry>
621
            <term>Selector</term>
622 623
            <listitem>
              <synopsis>Chooser=&lt;bin&gt;/gdmchooser</synopsis>
624
              <para>Ruta completa y nombre del ejecutable del selector seguido de argumentos opcionales.</para>
625 626 627 628 629 630 631
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>Configurator</term>
            <listitem>
              <synopsis>Configurator=&lt;bin&gt;/gdmsetup --disable-sound --disable-crash-dialog</synopsis>
632
              <para>La ruta hacia el binario del configurador. Si la opción del interfaz <filename>ConfigAvailable</filename> está puesta a «true» entonces se ejecuta este binario cuando alguien elije Configuración desde el menú de Acciones. Desde luego GDM pedirá primero la contraseña de root. Y nunca permitirá que esto ocurra desde una pantalla remota.</para>
633 634 635 636 637 638 639
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>ConsoleCannotHandle</term>
            <listitem>
              <synopsis>ConsoleCannotHandle=am,ar,az,bn,el,fa,gu,hi,ja,ko,ml,mr,pa,ta,zh</synopsis>
640
              <para>Éstos son los idiomas que la consola no puede manipular debido a cuestiones de tipografía. Aquí queremos decir la consola de texto, no X. Esto sólo se usa cuando hay errores que informar y no podemos iniciar X.</para>
641 642 643 644 645 646 647
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>ConsoleNotify</term>
            <listitem>
              <synopsis>ConsoleNotify=true</synopsis>
648
              <para>Si es false, gdm no mostrará un diálogo de mensaje en la consola cuando ocurra un error.</para>
649 650
            </listitem>
          </varlistentry>
651
                             
652 653 654
          <varlistentry>
            <term>DefaultPath</term>
            <listitem>
655
              <synopsis>DefaultPath=defaultpath (valor  establecido por la configuración)</synopsis>
656
              <para>Especifica la ruta que debe establecerse en la sesión del usuario. Este valor será sobreescrito por el valor de <filename>/etc/default/login</filename> si contiene "ROOT=&lt;pathname&gt;". Si el archivo <filename>/etc/default/login</filename> existe, pero no contiene ningún valor para ROOT, se usará el el valor tal como esté definido en la configuración de GDM.</para>
657 658 659 660 661 662 663
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>DefaultSession</term>
            <listitem>
              <synopsis>DefaultSession=gnome.desktop</synopsis>
664
              <para>La sesión que se usará por omisión si el usuario no tiene una preferencia guardada y ha escogido «Última» desde la lista de sesiones. Note que «Última» no necesita mostrarse, vea la clave <filename>ShowLastSession</filename>.</para>
665 666 667 668 669 670 671 672
            </listitem>
          </varlistentry>
          
          
          <varlistentry>
            <term>DisplayInitDir</term>
            <listitem>
              <synopsis>DisplayInitDir=&lt;etc&gt;/gdm/Init</synopsis>
673
              <para>Directorio que contiene los script de inicio de la pantalla. Vea la sección «Los directorios de scripts» para más información.</para>
674 675 676 677 678 679 680
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>DisplayLastLogin</term>
            <listitem>
              <synopsis>DisplayLastLogin=true</synopsis>
681 682
              <para>Si es «true» entonces la última información de entrada se imprime para el usuario antes de pedirle una contraseña. Mientras que esto revela algo de información acerca de qué usuarios están en un sistema, por otra parte debería dar al usuario una idea de cuando entró y si no parece cierta, pueden entonces abortar la entrada y contactar con el administrador del equipo (evitando ejecutar scripts de inicio maliciosos). Esto se añadió en la versión 2.5.90.0</para>
              <para>Esto es para que GDM sea conforme a CSC-STD-002-85, aunque es puramente teórico ahora. Alguien debería leer esa especificación y asegurarse de que esto actualmente es conforme (en conjunto con otros lugares en GDM). Vea <filename>http://www.radium.ncsc.mil/tpep/library/rainbow/CSC-STD-002-85.html</filename> para más información.</para>
683 684 685 686 687 688 689
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>DoubleLoginWarning</term>
            <listitem>
              <synopsis>DoubleLoginWarning=true</synopsis>
690
              <para>si es «true», GDM avisará al usuario si ya ha entrado en otro terminal virtual. En sistemas donde GDM soporte comprobar los terminales virtuales X, GDM permitirá al usuario cambiar al terminal de entrada anterior en lugar de entrar.</para>
691 692 693 694 695 696 697
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>DynamicXServers</term>
            <listitem>
              <synopsis>DynamicXServers=false</synopsis>
698
              <para>Si es «true», el demonio GDM confiará en las peticiones para gestionar pantallas por medio de una conexión socket en <filename>/tmp/.gdm_socket</filename>. Las pantallas se pueden crear, iniciar y borrar con los comandos apropiados. El comando <filename>gdmdynamic</filename> es un método conveniente para enviar estos mensajes.</para>
699 700 701 702 703 704 705
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>FailsafeXServer</term>
            <listitem>
              <synopsis>FailsafeXServer=</synopsis>
706
              <para>Una línea de comandos X en caso de que no podamos iniciar el servidor X normal. Debería ser probablemente alguna clase de script que ejecute un servidor X apropiado a baja resolución que funcione siempre. Esto se intenta antes de que se ejecute el script <filename>XKeepsCrashing</filename>.</para>
707 708 709 710 711 712 713
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>FirstVT</term>
            <listitem>
              <synopsis>FirstVT=7</synopsis>
714
              <para>En sistemas donde GDM soporta la reserva automática de TV (Terminales virtuales), este es el primer tv que probar. Usualmente los inicios de sesión en entrada de texto se ejecutan en los tvs más bajos. Vea además <filename>VTAllocation</filename>.</para>
715 716 717 718 719 720 721
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>FlexibleXServers</term>
            <listitem>
              <synopsis>FlexibleXServers=5</synopsis>
722
              <para>El número máximo de pantallas flexibles asociadas. Estas son pantallas que pueden ejecutarse usando la conexión socket <filename>/tmp/.gdm_socket</filename>. Esto se usa tanto para pantallas flexibles como para pantallas Xnest.</para>
723 724 725 726 727 728 729
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>FlexiReapDelayMinutes</term>
            <listitem>
              <synopsis>FlexiReapDelayMinutes=5</synopsis>
730
              <para>Después de cuantos minutos de inactividad en la pantalla de entrada debería desconectarse la pantalla flexible. Esto sólo tiene efecto antes de que un usuario inicie sesión. También no afecta a los servidores flexibles Xnest. Para desactivar este comportamiento establezca este valor a 0. Esto se añadió en la versión 2.5.90.0.</para>
731 732 733 734 735 736 737
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>Greeter</term>
            <listitem>
              <synopsis>Greeter=&lt;bin&gt;/gdmlogin</synopsis>
738
              <para>Ruta completa al nombre del ejecutable del interfaz de entrada seguido de los argumentos opcionales. Este es el interfaz de entrada usado para todas las pantallas excepto para las pantallas XDMCP remotas. Vea además <filename>RemoteGreeter</filename></para>
739 740 741 742 743 744 745
            </listitem>
          </varlistentry>
          
          <varlistentry>
            <term>Group</term>
            <listitem>
              <synopsis>Group=gdm</synopsis>
746
              <para>El nombre del grupo bajo el cual <command>gdmlogin</command>, <command>gdmgreeter</command>, <command>gdmchooser</command> y los diálogos GTK+ internos en caso de fallo se ejecutan. Vea ademas <filename>User</filename>. Este usuario tendrá acceso a todos los archivos de autorización X, y quizás a otros datos internos de GDM y por lo tanto no debería usarlo nadie. El <filename>ServAuthDir</filename> es propiedad de este grupo. La propiedad y permisos de <filename>ServAuthDir</filename> deberia ser <filename>root.gdm</filename> y 1770.</para>
747 748 749 750 751 752 753
            </listitem>
          </varlistentry>
          
          <varlistentry>
            <term>GtkModulesList</term>
            <listitem>
              <synopsis>GtkModulesList=module-1:module-2:...</synopsis>
754
              <para>Una lista separada por dos puntos de módulos GTK+ que <command>gdmgreeter</command> o <command>gdmlogin</command> invocar´an si <filename>AddGtkModules</filename> está a true. El formato es el mismo que el interfaz Gtk+ estándar.</para>
755 756 757 758 759 760
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>HaltCommand</term>
            <listitem>
761
              <synopsis>HaltCommand=&lt;sbin&gt;/shutdown -h now</synopsis>
762
              <para>ruta completa y argumentos al comando que ejecutar cuando el usuario selecciona «Apagar» desde el menú Acciones. Esto puede ser una lista separada por ";" de comandos a intentar. Si falta un valor, el comando de apagado no estará disponible. Note que lo predeterminado para este valor no está vacío, así que para  desactivar «Apagar» debe establecerse a un valor vacío.</para>
763 764 765 766 767 768 769
            </listitem>
          </varlistentry>
          
          <varlistentry>
            <term>KillInitClients</term>
            <listitem>
              <synopsis>KillInitClients=true</synopsis>
770
              <para>Determina si GDM sebe matar los clientes X iniciados por los scripts de inicio cuando el usuario inicia sesión.</para>
771 772 773 774 775 776 777
            </listitem>
          </varlistentry>
          
          <varlistentry>
            <term>Directorio de registro</term>
            <listitem>
              <synopsis>LogDir=&lt;var&gt;/log/gdm</synopsis>
778
              <para>Directorio conteniendo los archivos de sucesos para las pantallas individuales. Por omisión éste es el mismo que el de ServAuthDir.</para>
779 780 781 782 783 784 785
            </listitem>
          </varlistentry>
          
          <varlistentry>
            <term>PidFile</term>
            <listitem>
              <synopsis>PidFile=&lt;var&gt;/run/gdm.pid</synopsis>
786
              <para>Nombre del archivo que contiene el id de proceso de <filename>gdm</filename>.</para>
787 788 789 790 791 792 793
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>PreFetchProgram</term>
            <listitem>
              <synopsis>PreFetchProgram=command</synopsis>
794
              <para>Programa que se ejecutará por el programa de entrada/interfaz de GDM cuando se muestre la pantalla inicial. El propósito es proporcionar un gancho donde los archivos que se usarán tras la entrada puedan precargarse para mejorar la velocidad para el usuario. El programa se llamará sólo una vez, la primera vez que se muestre la interfaz de entrada. El comando gdmprefetch será usado. Esta utilidad cargará cualquier biblioteca pasada en la línea de comandos, o si el argumento empieza por un carácter «@», procesará el archivo asumiendo que es un archivo ASCII conteniendo una lista de bibliotecas, una por línea, y cargará cada biblioteca en el archivo.</para>
795 796 797 798 799 800 801
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>PostLoginScriptDir</term>
            <listitem>
              <synopsis>PostLoginScriptDir=&lt;etc&gt;/gdm/PostLogin</synopsis>
802
              <para>Directorio que contiene los scripts ejecutados justo después de que el usuario inicie sesión, pero antes de que se realice ninguna configuración de sesión. Vea la sección ``Los directorios de Scripts'' para más información.</para>
803 804 805 806 807 808 809
            </listitem>
          </varlistentry>
          
          <varlistentry>
            <term>PostSessionScriptDir</term>
            <listitem>
              <synopsis>PostSessionScriptDir=&lt;etc&gt;/gdm/PostSession</synopsis>
810
              <para>Directorio conteniendo los scripts ejecutados después de que el usuario cierre la sesión. Vea la sección ``Los directorios de Scripts'' para más información.</para>
811 812 813 814 815 816 817
            </listitem>
          </varlistentry>
          
          <varlistentry>
            <term>PreSessionScriptDir</term>
            <listitem>
              <synopsis>PreSessionScriptDir=&lt;etc&gt;/gdm/PreSession</synopsis>
818
              <para>Directorio que contiene los scripts ejecutados antes de que el usuario inicie sesión. Vea la sección ``Los directorios de Scripts'' para más información.</para>
819 820 821 822 823 824
            </listitem>
          </varlistentry>
          
          <varlistentry>
            <term>RebootCommand</term>
            <listitem>
825
              <synopsis>RebootCommand=&lt;sbin&gt;/shutdown -r now</synopsis>
826
              <para>Ruta completa y argumentos opcionales para el comando que ejecutar cuando el usuario selecciona Reiniciar desde el menú de Acciones. Esto puede ser una lista separada por «;» de comandos que probar. Si falta, el comandos de reinicio no está disponible. Note que lo predeterminado para este valor es no vacío así que para desactivar el reinicio debe establecerlo explícitamente a un valor vacío.</para>
827 828 829 830 831 832 833
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>RemoteGreeter</term>
            <listitem>
              <synopsis>RemoteGreeter=&lt;bin&gt;/gdmlogin</synopsis>
834
              <para>La ruta completa y el nombre del ejecutable del interfaz de entrada seguida de argumentos opcionales. Esto se usa para todas las sesiones remotas XDMCP. Es útil tener el interfaz de entrada que menos recursos gráficos demande si usa el Interfaz con temas para su interfaz principal. Vea además la clave <filename>Greeter</filename>.</para>
835 836 837 838 839 840
            </listitem>
          </varlistentry>
          
          <varlistentry>
            <term>RootPath</term>
            <listitem>
841
              <synopsis>RootPath=defaultpath (valor establecido por configure)</synopsis>
842
              <para>Especifica la ruta que se establecerá en la sesión del root y los scripts  {Init,PostLogin,PreSession,PostSession} ejecutados por GDM. Este valor podrá ser sobrepasado con el valor de <filename>/etc/default/login</filename> si contiene "SUROOT=&lt;pathname&gt;". Si el archivo <filename>/etc/default/login</filename> existe, pero no contiene ningún valor para SUROOT, el valor tal como se define en la configuración de GDM será el que se use.</para>
843 844 845 846 847 848 849
            </listitem>
          </varlistentry>
          
          <varlistentry>
            <term>ServAuthDir</term>
            <listitem>
              <synopsis>ServAuthDir=&lt;var&gt;/gdm</synopsis>
850
              <para>Directorio que contiene los archivos de autenticación X para las pantallas individuales. Debería ser propiedad de <filename>root.gdm</filename> con los permisos 1770, donde <filename>gdm</filename> es el grupo GDM tal como se define por la opción <filename>Group</filename> Esto es que debería ser propiedad de root, con el grupo <filename>gdm</filename> teniendo permisos de escritura completos y el directorio debería estar con el bit de persistencia activado y otros no deberían tener permiso para el directorio. De esta manera el usuario de GDM no puede borrar archivos que pertenezcan a root en ese directorio, mientras que aún puede escribir sus propios archivos allí. GDM intentará cambiar los permisos por el usuario cuando se ejecute por primera vez si los permisos no son los de arriba. Este directorio también se usa para otros archivos privados que el demonio necesite almacenar Otros usuario no deberían tener ninguna forma de entrar a este directorio y leer o cambiar su contenido. Cualquiera que pueda leer este directorio puede conectarse a cualquier pantalla de este equipo.</para>
851 852 853 854 855 856
            </listitem>
          </varlistentry>
          
          <varlistentry>
            <term>SessionDesktopDir</term>
            <listitem>
857
              <synopsis>SessionDesktopDir=&lt;etc&gt;/X11/sessions/:&lt;etc&gt;/dm/Sessions/:&lt;share&gt;/xsessions/</synopsis>
858
              <para>Directorio que contiene los archivos <filename>.desktop</filename> que son las sesiones disponibles en el sistema. Desde 2.4.4.2 esto se trata como una variable tipo PATH y se usa el primar archivo encontrado.</para>
859 860 861 862 863 864
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>SoundProgram</term>
            <listitem>
865 866
              <synopsis>SoundProgram=<filename>&lt;bin&gt;/play</filename> (o <filename>&lt;bin&gt;/audioplay</filename> en Solaris)</synopsis>
              <para>La aplicación que se usará al reproducir un sonido. Actualmente se usa para reproducir el sonido de inicio de sesión, vea la clave <filename>SoundOnLoginFile</filename>. Soportado desde 2.5.90.0.</para>
867 868 869 870 871 872
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>StandardXServer</term>
            <listitem>
873
              <synopsis>StandardXServer=/dir/to/X (valor asignado por el archivo de configuración)</synopsis>
874
              <para>Ruta completa y argumentos al comando del servidor X estándar. Esto de usa cuando gdm no puede encontrar ninguna otra definición, y se usa como valor predeterminado y valor para usar en caso de fallo en varios lugares. Esto debería ser capaz de ejecutar alguna clase de servidor X.</para>
875 876 877 878 879 880 881
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>SuspendCommand</term>
            <listitem>
              <synopsis>SuspendCommand=</synopsis>
882
              <para>Ruta completa y argumentos al comando que se ejecutará cuando el usuario seleccione Suspender desde el menú Acciones. Si estuviera vacío no habrá ese elemento del menú. Note que lo predeterminado para este valor es no vacío, así que para desactivar la suspensión debe establecer esto explícitamente a un valor vacío.</para>
883 884 885 886 887 888 889
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>TimedLoginEnable</term>
            <listitem>
              <synopsis>TimedLoginEnable=false</synopsis>
890
              <para>Si el usuario dado en <filename>TimedLogin</filename> debería abrir una sesión después del número de segundos (establecidos en <filename>TimedLoginDelay</filename>) de inactividad en la pantalla de entrada. Esto es útil para terminales de acceso público o quizás incluso para uso doméstico. Si el usuario usa el teclado o abre los menús, el temporizador se restablecerá al valor  <filename>TimedLoginDelay</filename> o 30 segundos, lo que sea mayor. si el usuario no introduce un nombre de usuario sino que tan sólo pulsa la tecla INTRO mientras que el programa de entrada está pidiendo el nombre del usuario, entonces GDM asume que el usuario quiere entrar inmediatamente como el usuario temporizado. Note que si no se pedirá ninguna contraseña para este usuario así que debería ser cuidadoso, aunque si usa PAM puede configurarlo para que requiera que introduzca una contraseña antes de permitir la entrada.</para>
891 892 893 894 895 896 897
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>TimedLogin</term>
            <listitem>
              <synopsis>TimedLogin=</synopsis>
898
              <para>Este es el usuario que debería iniciar sesión tras un número de segundos de inactividad. Éste nunca puede ser «root» y gdm rechazará iniciar como root de esta manera. Se soportan las mismas características que para <filename>AutomaticLogin</filename>. Se soportan los mismos caracteres de control y redirección a una aplicación.</para>
899 900 901 902 903 904 905
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>TimedLoginDelay</term>
            <listitem>
              <synopsis>TimedLoginDelay=30</synopsis>
906
              <para>Retardo en segundos antes de que el usuario <filename>TimedLogin</filename> entre en la sesión. Debe ser mayor o igual a 10.</para>
907 908 909 910 911 912 913
            </listitem>
          </varlistentry>
          
          <varlistentry>
            <term>User</term>
            <listitem>
              <synopsis>User=gdm</synopsis>
914
              <para>El usuario bajo el cual <command>gdmlogin</command>, <command>gdmgreeter</command>, <command>gdmchooser</command> y los diálos GTK+ internos a prueba de fallos se ejecutan. Vea además <filename>Group</filename>. Este usuario tendrá acceso a todos los archivos de autorización X, y quizás a otros datos internos de GDM y por lo tanto no debería ser un usuario como nobody, sino un usuario dedicado.</para>
915 916 917 918 919 920 921
            </listitem>
          </varlistentry>
          
          <varlistentry>
            <term>UserAuthDir</term>
            <listitem>
              <synopsis>UserAuthDir=</synopsis>
922
              <para>El directorio donde el archivo <filename>.Xauthority</filename> debería guardarse. Cuando no se especifique nada se usará el directorio personal del usuario. Éste es a lo que se expande la virgulilla así que puede establecerlo a cosas como: <filename>~/authdir/</filename>.</para>
923

924
              <para>Si no usa la expansión de la virgulilla, entonces el nombre de archivo creado será aleatorio, como en <filename>UserAuthFBDir</filename>. De esta manera muchos usuarios pueden tener el mismo directorio de autenticación. Por ejemplo quizá quiera establecer esto a <filename>/tmp</filename> cuando tenga el directorio de personal en NFS, debido a que no desea que los archivos de cookies vayan por el cable. Los usuarios deberían tener privilegios de escritura en este directorio, y este directorio debería tener el bit de persistencia activado y todo lo demás, igual que el directorio <filename>/tmp</filename>.</para>
925

926
              <para>Normalmente si este es el directorio personal del usuario GDM aún se negará a poner cookies allí si piensa que es NFS (probando root-squashing). Esto puede cambiarse estableciendo <filename>NeverPlaceCookiesOnNFS</filename> a «false» en la sección <filename>[security]</filename></para>
927 928 929 930 931 932 933
            </listitem>
          </varlistentry>
          
          <varlistentry>
            <term>UserAuthFBDir</term>
            <listitem>
              <synopsis>UserAuthFBDir=/tmp</synopsis>
934
              <para>Si GDM falla al actualizar el archivo <filename>.Xauthority</filename> del usuario se crea una cookie para casos de fallo en este directorio.</para>
935 936 937 938 939 940 941
            </listitem>
          </varlistentry>
          
          <varlistentry>
            <term>UserAuthFile</term>
            <listitem>
              <synopsis>UserAuthFile=.Xauthority</synopsis>
942
              <para>Nombre del archivo usado para almacenar cookies del usuario.</para>
943 944 945 946 947 948 949
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>VTAllocation</term>
            <listitem>
              <synopsis>VTAllocation=true</synopsis>
950
              <para>En sistemas donde GDM soporta reserva de TV (terminales virtuales) automáticos (actualmente Linux y FreeBSD sólo), puede hacer que GDM agregue automáticamente el argumento del tv al ejecutable del servidor X. De esta manera las carreras que surjan de cada servidor X gestionando su propia reserva de tv se pueden evitar. Vea además <filename>FirstVT</filename>.</para>
951 952 953 954 955 956 957
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>XKeepsCrashing</term>
            <listitem>
              <synopsis>XKeepsCrashing=&lt;etc&gt;/gdm/XKeepsCrashing</synopsis>
958
              <para>Un script para ejecutar en caso de que X no logre iniciarse. Esto es para ejecutar una configuración de X o cualquier otra cosa para hacer que la configuración de X funcione. Vea el script que vino con la distribución para un ejemplo. El script <filename>XKeepsCrashing</filename> se prueba en Red Hat, pero podría funcionar en cualquier otro lugar. Su integrador del sistema debería asegurarse de que este script está actualizado para su sistema particular.</para>
959
              <para>En caso de que se configure <filename>FailsafeXServer</filename>, ése se intentará primero, y éste sólo se usará como respaldo si incluso ese servidor X sigue colgándose.</para>
960 961 962 963 964 965
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>Xnest</term>
            <listitem>
966
              <synopsis>Xnest=&lt;bin&gt;/X11/Xnest (/usr/openwin/bin/Xnest en Solaris)</synopsis>
967
              <para>La ruta completa y los argumentos al comando Xnest. Esto se usa para las pantallas Xnest flexibles. De esta manera el usuario puede iniciar pantallas de entrada nuevas en una ventana anidadda. Por supuesto debe tener instalado el paquete xnest para que esto funcione.</para>
968 969 970 971 972 973 974 975 976 977 978 979 980 981 982
            </listitem>
          </varlistentry>
        </variablelist>
      </sect3>

      <sect3 id="securitysection">
        <title>Opciones de seguridad</title>
        
        <variablelist>
          <title>[security]</title>
          
          <varlistentry>
            <term>AllowRoot</term>
            <listitem>
              <synopsis>AllowRoot=true</synopsis>
983
              <para>Permitir a root (usuario privilegiado) entrar a través de GDM. Establezca esto a falso si no quiere permitir dichas entradas.</para>
984
              <para>En sistemas que soportan PAM, este parámetro no es tan útil ya que puede usar PAM para hacer lo mismo, y de hecho para hacer más. Sin embargo todavía se sigue, así que probablemente debería dejarlo a TRUE para los sistemas PAM.</para>
985 986 987 988 989 990 991
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>AllowRemoteRoot</term>
            <listitem>
              <synopsis>AllowRemoteRoot=false</synopsis>
992 993 994
              <para>Permitir al root (usuario privilegiado) entrar remotamente a través de GDM. Este valor debería establecerse a true para permitir dichas entradas. Las entradas remotas son cualquier  entrada que provengan a través de XDMCP.</para>
              <para>En sistemas que soporten PAM, este parámetro no es tan útil debido a que puede usar PAM para hacer lo mismo, e incluso más.</para>
              <para>Este valor será sobrepasado y establecido a false si existe el archivo <filename>/etc/default/login</filename> y contiene  "CONSOLE=/dev/login", y será establecido a true si el archivo <filename>/etc/default/login</filename> existe y contine cualquier otro valor o ningún valor para CONSOLE.</para>
995 996 997 998 999 1000 1001
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>AllowRemoteAutoLogin</term>
            <listitem>
              <synopsis>AllowRemoteAutoLogin=false</synopsis>
1002
              <para>Permitir que la entrada temporizada funcione de forma remota. Esto es, que las conexiones remotas a través de XDMCP se les permita entrar con el usuario "TimedLogin" dejando que expire el tiempo de entrada, igual que el usuario local en la primera consola.</para>
1003
              <para>Note que esto puede hacer un sistema muy inseguro, y por eso está desactivado por omisión.</para>
1004 1005 1006 1007 1008 1009 1010
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>CheckDirOwner</term>
            <listitem>
              <synopsis>CheckDirOwner=true</synopsis>
1011
              <para>Por omisión GDM comprueba el propietario de los directorios personales antes de escribir en ellos, esto previene problemas de seguridad en caso de una configuración inadecuada. Sin embargo en algunos lugares los directorios personales serán propiedad de un usuario diferente y en este caso es necesario activar esta opción. Además tendrá que activar la clave <filename>RelaxPermissions</filename> a almenos el valor 1 debido a que en este escenario los directorios personales serán escribibles por el grupo. Soportado desde 2.6.0.4.</para>
1012 1013 1014
            </listitem>
          </varlistentry>

1015 1016 1017 1018
          <varlistentry>
            <term>SupportAutomount</term>
            <listitem>
              <synopsis>SupportAutomount=false</synopsis>
1019
              <para>Por omisión GDM comprueba la propiedad de los directorios personales antes de escribir en ellos, esto previene problemas de seguridad en caso de una configuración inadecuada. Sin embargo cuando los directorios personales están gestionados por automounter, a menudo no están montados antes de acceder a ellos. Esta opción soluciona algunas peculiaridades del automontador de Linux.</para>
1020 1021 1022
            </listitem>
          </varlistentry>

1023 1024 1025 1026
          <varlistentry>
            <term>DisallowTCP</term>
            <listitem>
              <synopsis>DisallowTCP=true</synopsis>
1027
              <para>Si es <literal>true</literal>, entonces agregar siempre <filename>-nolisten tcp</filename> a la línea de comandos de los servidores X locales, para de esta forma no permitir conexiones TCP. Esto es útil si no quiere preocuparse por permitir conexiones remotas, debido a que el protocolo X podría ser potencialmente un riesgo de seguridad si se deja abierto, incluso aunque no exista ningún problema conocido de seguridad.</para>
1028 1029 1030 1031 1032 1033 1034
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>NeverPlaceCookiesOnNFS</term>
            <listitem>
              <synopsis>NeverPlaceCookiesOnNFS=true</synopsis>
1035
              <para>Normalmente si esto es <literal>true(lo cual es por omisifalse. Note que esta opci</literal></para>
1036 1037 1038 1039 1040 1041 1042
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>PasswordRequired</term>
            <listitem>
              <synopsis>PasswordRequired=false</synopsis>
1043
              <para>Si es <literal>true</literal>, esto hará que se pase PAM_DISALLOW_NULL_AUTHTOK como una opción a pam_authenticate y pam_acct_mgmt, no permitiendo una contraseña vacía. Este ajuste sólo tendrá efecto si GDM está usando PAM. Este valor no se tendrá en cuanta si  <filename>/etc/default/login</filename> contiene "PASSREQ=[YES|NO]". Si existe el archivo <filename>/etc/default/login</filename> pero no contiene ningún valor para PASSREQ, se usará el valor tal como se defina en la configuración de GDM.</para>
1044 1045 1046 1047 1048 1049 1050
            </listitem>
          </varlistentry>
          
          <varlistentry>
            <term>RelaxPermissions</term>
            <listitem>
              <synopsis>RelaxPermissions=0</synopsis>
1051
              <para>Por omisión GDM ignora los archivos y directorios escribibles para otros usuarios que no sean el propietario.</para> 
1052
              
1053
              <para>Cambiar el valor de RelaxPermissions hace posible alterar este comportamiento:</para>
1054
              
1055 1056 1057
              <para>0: Opción paranoia. Sólo acepta archivos y directorios que pertenezcan al usuario.</para>
              <para>1: Permitir archivos y directorios escribibles por el grupo.</para>
              <para>2: Permitir archivos y directorios escribibles por todo el mundo.</para>
1058 1059 1060 1061 1062 1063 1064
            </listitem>
          </varlistentry>
          
          <varlistentry>
            <term>RetryDelay</term>
            <listitem>
              <synopsis>RetryDelay=1</synopsis>
1065
              <para>El número de segundos que GDM debería esperar antes de reactivar el campo de la entrada después de una entrada fallida.</para>
1066 1067 1068 1069 1070 1071 1072
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>UserMaxFile</term>
            <listitem>
              <synopsis>UserMaxFile=65536</synopsis>
1073
              <para>GDM rehusará a leer/escribir archivos más grandes que este número (especificado en bytes).</para>
1074
              
1075
              <para>Además de la comprobación del tamaño del archivo GDM es extremadamente quisquilloso respecto a acceder a archivos en directorios de usuario. No seguirá enlaces simbólicos y puede rehusar opcionalmente a leer archivos y directorios escribibles por otros usuarios distintos del propietario. Vea la opción <filename>RelaxPermissions</filename> para más información.</para>
1076 1077 1078 1079 1080 1081
            </listitem>
          </varlistentry>
        </variablelist>
      </sect3>

      <sect3 id="xdmcpsection">