Vista general

2.1. Introducción

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

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

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

Para obtener más información acerca de GDM consulte la página web del proyecto en http://wiki.gnome.org/Projects/GDM.

Para discusiones o consultas acerca de GDM consulte la lista de correo

. Esta lista está archivada y es una buena fuente para comprobar o buscar respuestas a preguntas comunes. Esta lista está archivada en http://mail.gnome.org/archives/gdm-list/ y tiene una utilidad de búsqueda para buscar mensajes por palabras clave.

Envíe cualquier informe de error o sugerencias de mejoras a la categoría «gdm» en http://bugzilla.gnome.org.

2.2. Estabilidad de interfaces

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

Las interfaces que continúan siendo soportadas de forma estable incluyen Init, PreSession, PostSession, PostLogin y los scripts Xsession. Algunas opciones de configuración del demonio en el archivo <etc>/gdm/custom.conf aún están soportadas. También, ~/.dmrc y las ubicaciones del visor de rostros están soportadas.

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

2.3. Descripción funcional

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

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

Independientemente del tipo de pantalla, GDM hará lo siguiente cuando gestione la pantalla. Iniciará un proceso del servidor X, después ejecutará el script Init como usuario root e iniciará el programa interfaz de entrada con temas en la pantalla.

El programa de la interfaz gráfica con temas se ejecuta con el usuario/grupo sin privilegios «gmd». Este usuario y grupo están descritos en la sección «Seguridad» de este documento. La funciones principales del programa son proporcionar un mecanismo para seleccionar una cuenta con la que iniciar sesión y gestionar el diálogo entre el usuario y el sistema al autenticar dicha cuenta. El proceso de autenticación lo lleva a cabo PAM (Pluggable Authentication Modules). Los módulos PAM determinan qué preguntas se muestran al usuario para autenticarle. En sistemas medios, el programa de interfaz gráfica con temas pedirá un usuario y una contraseña para la autenticación. No obstante algunos sistemas pueden configurarse para usar mecanismos alternativos como huellas dactilares o lectores de tarjetas SmartCard. Se puede configurar GDM configurar para que soporte estas alternativas de manera paralela con las extensiones del programa de inicio de sesión con temas y la opción --enable-split-authentication./configure, o una sola a través del sistema de configuración de PAM.

La extensión de tarjetas inteligentes se puede activar o desactivar mediante la clave org.gnome.display-manager.extensions.smartcard.active de gsettings.

Igualmente, la extensión de huella dactilar se puede activa o desactivar mediante la clave org.gnome.display-manager.extensions.fingerprint.active de gsettings.

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

Además de la autenticación, el programa gráfico permite al usuario seleccionar qué sesión iniciar y qué idioma usar. Las sesiones están definidas por archivos que terminan con el sufijo .desktop y se puede encontrar más información acerca de estos archivos en la sección «Sesión de usuario de GDM y configuración de idioma» de este documento. De forma predeterminada GDM está configurado para mostrar un visor de rostros de tal forma que el usuario puede seleccionar su cuenta de usuario pulsando sobre una imagen en lugar de tener que escribir su nombre de usuario. GDM mantiene un seguimiento de la sesión predeterminada del usuario y del idioma en el archivo ~/.dmrc del usuario y usará estos valores predeterminados si el usuario no selecciona una sesión o idioma en la pantalla de inicio gráfica.

Después de autenticar un usuario el demonio ejecuta el script PostLogin como root, después ejecuta el script PreSession como root. Después de ejecutar estos scripts se inicia la sesión del usuario. Cuando el usuario termina su sesión se ejecuta el script PostSession como root. Estos scripts se proporcionan como ganchos para distribuciones y usuarios finales, para que personalicen cómo se gestionan las sesiones. Por ejemplo, usando estos ganchos puede ajustar una máquina que crea la carpeta de usuario $HOME al vuelo y lo elimina al finalizar la sesión. La diferencia entre los scripts PostLogin y PreSession es que PostLogin se ejecuta antes de que se llame a pam_open_session, siendo el lugar ideal para hacer cualquier cosa que debería hacerse antes de que se inicialice la sesión de usuario. El script PreSession se llama después de la inicialización de la sesión.

2.4. El panel de la interfaz de entrada con temas

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

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

2.5. Accesibilidad

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

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

2.6. El visor de rostros de GDM

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

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

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

Los iconos usados por GDM pueden instalarse globalmente por el administrador del sistema o pueden colocarse en las carpetas personales de los usuarios. Si se instalan globalmente deberían estar en la carpeta <share>/pixmaps/faces/ y el nombre del archivo debería ser el nombre del usuario. Los archivos de imágenes de rostro deberían ser una imágen estándar que GTK+ pueda leer, como PNG o JPEG. Los iconos de caras colocados en la carpeta global de caras deben ser legibles por el usuario de GDM.

Si no hay icono global para el usuario GDM buscará en la carpeta $HOME del usuario el archivo de imagen. GDM busca primero la imagen de la cara del usuario en ~/.face. Si no lo encuentra probará con ~/.face.icon. Si aún así no lo encuentra usará el valor definido para "face/picture=" en el archivo ~/.gnome2/gdm.

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

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

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

2.7. XDMCP

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

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

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

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.

Si parece que XDMCP no funciona, asegúrese de que todas las máquinas están especificadas en /etc/hosts.

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

2.8. Registro de actividad

GDM usa 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. La salida de depuración se puede activar estableciendo la clave debug/Enable a cierta en el archivo <etc>/gdm/custom.conf.

La salida de los varios servidores X se almacena en la carpeta de registro de GDM, que generalmente es <var>/log/gdm/. Cualquier mensaje del servidor X se guarda en un archivo asociado con el valor de la pantalla, <display>.log.

La salida de la sesión se redirecciona a través del demonio de GDM al archivo ~/$XDG_CACHE_HOME/gdm/session.log. El archivo se sobreescribe en cada inicio de sesión, de tal forma que iniciar de nuevo sesión con el mismo usuario a través de GDM hará que cualquier mensaje de la sesión anterior se pierda.

Note que si GDM no puede crear este archivo por alguna razón, entonces se creará un archivo alternativo llamado ~/$XDG_CACHE_HOME/gdm/session.log.XXXXXXXX donde XXXXXX son algunos caracteres aleatorios.

2.9. Cambio rápido de usuarios

GDM permite que varios usuarios inicien sesión al mismo tiempo. Después de que un usuario haya iniciado sesión, otros usuarios pueden iniciar sesión a través del Selector de usuarios en el Panel de GNOME o a través del botón «Cambiar usuario» en el diálogo del salvapantallas de GNOME. La sesión activa se puede cambiar de nuevo usando el mismo mecanismo, Note que algunas distribuciones puede que no añadan el Selector de usuario a la configuración predeterminada del panel. Se puede añadir usando el menú contextual del panel.

Note que esta característica está disponible en sistemas que soporten Terminales virtuales. Esta característica no funcionará si los Terminales virtuales no están disponibles.