Preparación para el examen 101 de LPI: Sistema de Ventanas X

Tema 101 de la Administración de Nivel Junior (LPIC-1)

En este tutorial, Ian Shields sigue preparándolo para dar el® Examen 101 de la Administración de Nivel Junior (LPIC-1) del Linux Professional Institute. En éste, el quinto de una serie de cinco tutoriales, Ian brinda una introducción al Sistema de Ventanas X en Linux®. Al finalizar este tutorial, usted sabrá cómo instalar y realizar el mantenimiento del Sistema de Ventanas X. Este tutorial se ocupa de los principales paquetes de X en Linux: XFree86 y X.Org.

Ian Shields, Senior Programmer, IBM  

Ian ShieldsIan Shields works on a multitude of Linux projects for the developerWorks Linux zone. He is a Senior Programmer at IBM at the Research Triangle Park, NC. He joined IBM in Canberra, Australia, as a Systems Engineer in 1973, and has since worked on communications systems and pervasive computing in Montreal, Canada, and RTP, NC. He has several patents. His undergraduate degree is in pure mathematics and philosophy from the Australian National University. He has an M.S. and Ph.D. in computer science from North Carolina State University. You can contact Ian at ishields@us.ibm.com.



13-10-2009

Antes de comenzar

Conozca qué es lo que estos tutoriales pueden enseñarle y qué hacer para aprovecharlos al máximo.

Acerca de esta serie

El Linux Professional Institute (LPI) brinda certificados a administradores de sistemas Linux en dos niveles: nivel junior (también denominado "nivel de certificación 1") y nivel intermedio (también denominado "nivel de certificación 2"). Para obtener el nivel de certificación 1, usted deberá aprobar los exámenes 101 y 102; para obtener el nivel de certificación 2, deberá aprobar los exámenes 201 y 202.

developerWorks ofrece tutoriales para ayudarlo a preparar cada uno de los cuatro exámenes. Cada uno de los exámenes abarca diversos temas, y cada tema posee su correspondiente tutorial de autoestudio en developerWorks. Para el examen 101 de LPI, los cinco temas y sus correspondientes tutoriales de developerWorks son:

Tabla 1. Examen 101 de LPI: tutoriales y temas
Tema del examen 101 de LPITutorial de developerWorksResumen del tutorial
Tema 101Preparación para el examen 101 de LPI:
Hardware y arquitectura
Aprenda a configurar el hardware de su sistema con Linux. Al finalizar este tutorial, usted sabrá de qué manera Linux configura el hardware que se encuentra en una PC moderna y dónde buscar la solución de los problemas que podrían surgir.
Tema 102Preparación para el examen 101 de LPI:
Instalación y gestión de paquetes Linux
Obtenga una introducción a la instalación y la gestión de paquetes Linux. Al finalizar este tutorial, usted sabrá cómo Linux usa las particiones de disco, cómo Linux realiza el arranque, y cómo instalar y gestionar los paquetes de software.
Tema 103Preparación para el examen 101 de LPI:
Comandos de GNU y UNIX
Obtenga una introducción a los comandos de GNU y UNIX. Al finalizar este tutorial, usted sabrá cómo se usan los comandos del shell bash, incluyendo cómo se usan los comandos y filtros de procesamiento de textos, cómo se buscan los archivos y directorios, y cómo se gestionan los procesos.
Tema 104Preparación para el examen 101 de LPI:
Dispositivos, sistemas de archivos Linux, y el Estándar de Jerarquía de Sistema de Archivos (FHS).
Aprenda cómo se crean sistemas de archivos en las particiones de discos, y cómo se facilita el acceso de los usuarios a los mismos, cómo se gestiona la propiedad de archivos y los cupos de usuarios, y cómo se reparan los sistemas de archivos cuando es necesario. Aprenda también acerca de los vínculos físicos y simbólicos, cómo ubicar archivos en su sistema de archivos, y dónde se deben colocar los archivos.
Tema 110Preparación para el examen 101 de LPI:
Sistema de Ventanas X
(Este tutorial). Aprenda a instalar y realizar el mantenimiento del Sistema de Ventanas X. Vea los objetivos detallados que aparecen más adelante.

Para aprobar los exámenes 101 y 102 (y obtener el nivel de certificación 1), usted deberá:

  • Trabajar en la línea de comandos de Linux
  • Realizar tareas simples de mantenimiento: brindar ayuda a los usuarios, agregar usuarios a un sistema mayor, realizar tareas de backup y restauración, y detener y reiniciar el sistema
  • Instalar y configurar una estación de trabajo (incluyendo a X) y conectarla a una LAN, o conectar una PC independiente a Internet mediante un módem

Para seguir preparándose para el nivel de certificación 1, consulte los tutoriales de developerWorks para el examen 101 de LPI, así como el conjunto completo de tutoriales sobre LPI de developerWorks.

El Linux Professional Institute no avala ninguna técnica o material de preparación de exámenes en particular. Para obtener más detalles, por favor escriba a info@lpi.org.

Acerca de este tutorial

Bienvenido a "The X Window System”, el quinto de cinco tutoriales diseñados para prepararlo para el examen 101 de LPI. En este tutorial, usted aprenderá sobre la configuración del Sistema de Ventanas X en Linux. Este tutorial abarca los dos principales paquetes para X en Linux: XFree86 y X.Org.

Este tutorial está organizado de acuerdo con los objetivos que tiene LPI para este tema. A grandes rasgos, se podrán esperar más preguntas sobre el examen cuando los objetivos tienen mayor valor.

Tabla 2. Sistema de Ventanas X: Objetivos del examen que se tratan en este tutorial
Objetivo del examen de LPIValor del objetivoResumen del objetivo
1.110.1
Instalación y configuración de X
Valor 5Configure e instale X y un servidor de fuentes X. Verifique que la tarjeta de video y el monitor estén soportados por su servidor X, y ajuste y adapte X a medida para la tarjeta y el monitor. Instale un servidor de fuentes X, instale las fuentes y configure X para usar el servidor de fuentes.
1.110.2
Configuración de un gestor de visualización
Valor 3Configure y adapte a medida un gestor de visualización. Encienda y apague el gestor de visualización y cambie su saludo y sus bitplanes predeterminados. Configure los gestores de visualización para que sean usados por estaciones X, como por ejemplo los gestores de visualización de X, GNOME, y KDE.
1.110.4
Instalación y adaptación a medida de un entorno de gestor de ventanas
Valor 5Adapte a medida un entorno de escritorio y un gestor de ventanas para todo el sistema, incluyendo los menús del gestor de ventanas y del panel del escritorio. Seleccione y configure una terminal X, y verifique y resuelva problemas de dependencias de bibliotecas para las aplicaciones X. Exporte una vista X a la estación de trabajo de un cliente.

Requisitos previos

Para aprovechar al máximo este tutorial, usted deberá contar con un conocimiento básico de Linux y un sistema Linux en funcionamiento donde poder practicar con los comandos que se tratan en este tutorial. Además, deberá estar familiarizado con el uso de aplicaciones GUI, preferentemente las incluidas en el Sistema de Ventanas X.

Este tutorial se basa en los contenidos tratados en los cuatro tutoriales anteriores de la serie, de manera que será conveniente que en primer lugar repase los tutoriales de los temas 101, 102, 103, y 104.

Las diferentes versiones de un mismo programa pueden generar distintos formatos de resultados, por lo cual los resultados que usted obtenga pueden no ser exactamente iguales en apariencia a los listados y las figuras de este tutorial.


Instalación y configuración de X

Esta sección abarca el material para el tema 1.110.1 del examen 101 de la Administración de Nivel Junior (LPIC-1). El tema tiene un valor de 5.

En esta sección, usted aprenderá a:

  • Verificar que su tarjeta de video y su monitor están soportados por su servidor X
  • Configurar e instalar X
  • Ajustar y adaptar a medida a X para la tarjeta y el monitor
  • Configurar e instalar un servidor de fuentes X
  • Instalar las fuentes

Historia del Sistema de Ventanas X

El Sistema de Ventanas X, también conocido como X o X11, es un sistema de ventanas de visualización gráfica (mapa de bits). X fue desarrollado en 1984 en el MIT como parte del Proyecto Athena, en el cual se proporcionó un entorno informático con distintas piezas de hardware. X separa las funciones de visualización en un servidor de pantallas y clientes, que brindan la lógica de la aplicación. Es transparente a red, de manera que no es necesario que el servidor de pantallas y el cliente se encuentren en la misma máquina. Observe que el sentido que aquí se le da a las palabras “cliente” y “servidor” se opone de alguna manera a lo que normalmente se cree. Además de manejar la salida de datos que se visualiza, el extreme del servidor maneja también la entrada de datos desde dispositivos tales como teclado, mouse, tablillas gráficas y pantalla táctil.

X brinda un kit de herramientas para aplicaciones de GUI, pero no especifica una interfaz de usuario. En un típico sistema Linux, usted deberá elegir entre escritorios KDE o GNOME, y probablemente dispondrá de varios otros gestores de ventanas. Debido a que X no especifica una interfaz de usuario, estos escritorios y gestores de ventanas tienen aspectos diferentes.

Gracias a que X se desarrolló para una amplia comunidad con diversos tipos de hardware, usted notará que las distintas versiones de cliente y servidor de X por lo general interactúan bastante bien.

XFree86 y X.Org

Para el año 1987, MIT deseaba transferir el control de X, por lo cual se fundó el MIT X Consortium como una organización sin fines de lucro con el objeto de supervisar el desarrollo de X. Luego de algunos otros cambios en materia de control, el Open Group formó X.Org en 1999. Desde 1992, gran parte del desarrollo activo de X fue realizado por XFree86, que originalmente creó un puerto de X para el hardware Intel® 386 destinado a su uso en Linux, por lo cual se denominó XFree86. XFree86 se unió a X.Org como un miembro no remunerado.

Si bien fueron originalmente creadas para el 386, las versiones posteriores de XFree86 soportaron muchas plataformas diferentes, hasta convertirse en las versiones de X más usadas en Linux. Luego de ciertas disputas sobre los nuevos términos para el otorgamiento de licencias y el modelo de desarrollo de XFree86, se formó la Fundación X.Org. Trabajando a partir de la última versión de XFree86 con la licencia anterior, creó X11R6.7 y X11R6.8. Muchas distribuciones todavía usan XFree86, aunque muchas otras han elegido en cambio X.Org.

Soporte de hardware para video

Tanto los paquetes XFree86 como los X.Org soportan una amplia gama de tarjetas de video modernas. Consulte la documentación online para ver la versión correspondiente (ver Recursos). Algunos fabricantes no ofrecen drivers de código abierto para todas las funciones, de manera que es posible que usted deba integrar a su sistema XFree86 un driver del mismo fabricante. Vea la página web del fabricante para buscar los drivers Linux mejorados o más actualizados. Esto sucede a menudo con los drivers del acelerador 3D. Incluso si XFree86 no puede usar las capacidades de hardware de su tarjeta, probablemente usted pueda ejecutarla en el modo framebuffer de VESA (Video Electronics Standards Association).

Los monitores modernos implementan la especificación Display Data Channel (o DDC) de VESA, que permite que la información y las capacidades del monitor se determinen de acuerdo al programa. Las herramientas de configuración de XFree86 (a excepción dexf86config) usan esta información para configurar su sistema X.

Una manera de ver cómo funciona X con su hardware es arrancar una distribución por medio de un live CD, como por ejemplo Knoppix o Ubuntu. Estas poseen, por lo general, una excelente capacidad para detector y usar hardware. Muchas distribuciones ofrecen una opción de instalación gráfica, que además requiere la detección y el uso correctos de su hardware.

XFree86

La mayoría de las distribuciones incluyen una versión de XFree86 o X.Org dentro del paquete del sistema. De lo contrario, usted podrá encontrar un paquete RPM o debe instalarlo aplicando las técnicas que aprendió en el tutorial para el tema 102: “Preparación para el examen 101 de LPI: Instalación y gestión de paquetes de Linux."

Instalación de XFree86

Si usted no dispone del paquete XFree86, deberá descargar los archivos de la página web del proyecto XFree86 (ver Recursos). Existen paquetes pre-elaborados disponibles para Linux en muchas plataformas de hardware conocidas, o es posible instalarlos desde la distribución de origen. Este tutorial supone que usted instalará un paquete binario de la versión actual (versión 4.5.0).

Usted deberá descargar numerosos paquetes binarios. Deberá usar la suma de verificación md5 y las claves de GPG para validar sus descargas. La Tabla 3 enumera los archivos necesarios para XFree86.

Tabla 3. Archivos necesarios para XFree86
File (archivo)Descripción
Xinstall.shScript de instalación
extractPrograma utilitario de extracción en Tarball
Xbin.tgzclientes, utilitarios y bibliotecas en tiempo de ejecución para X
Xlib.tgzArchivos de datos requeridos en el tiempo de ejecución
Xman.tgzPáginas de manual
Xdoc.tgzDocumentación XFree86
Xfnts.tgzConjunto base de fuentes
Xfenc.tgzDatos de codificación de fuentes
Xetc.tgzArchivos de configuración en tiempo de ejecución: parte 1
Xrc.tgzArchivos de configuración en tiempo de ejecución: parte 2
Xvar.tgzDatos en tiempo de ejecución
Xxserv.tgzServidor X de XFree86
Xmod.tgzMódulos del servidor X

Si usted no está seguro de cuál es la versión que debe descargar, descargue el archivo Xinstall.sh que usted considere más acertado, y use la opción-checkpara verificar el sistema como se muestra en el Listado 1.

Listado 1. Verificación del paquete binario XFree86 correcto
root@pinguino:~/xfree86# sh Xinstall.sh -check
Checking which OS you're running...
uname reports 'Linux' version '2.6.12-10-386', architecture 'i686'.
libc version is '6.3.5' (6.3).

Binary distribution name is 'Linux-ix86-glibc23'

If you don't find a binary distribution with this name, then
binaries for your platform are not available from XFree86.org.

Para este ejemplo, usted deberá buscar el paquete "Linux-ix86-glibc23".

La Tabla 4 muestra todos los archivos opcionales para XFree86. Para este tutorial, usted necesitará el servidor de fuentes además de cualquier otro artículo que desee instalar.

Tabla 4. Archivos opcionales de XFree86
FileDescripción
Xdrm.tgzOrigen de los módulos kernel del Gestor de Renderización Directa (DRM)
Xfsrv.tgzServidor de fuentes
Xnest.tgzServidor X anidado
Xprog.tgzarchivos de encabezado X, archivos de configuración y bibliotecas para el desarrollo de aplicaciones X
Xprt.tgzServidor X de impresión
Xvfb.tgzServidor X de framebuffer virtual
Xtinyx.tgzServidores TinyX
Xf100.tgzfuentes de 100dpi
Xfcyr.tgzfuentes cirílicas
Xfscl.tgzFuentes escalables (Speedo, Type1 y TrueType)
Xhtml.tgzVersión HTML de la documentación
Xps.tgzVersión PostScript de la documentación
Xpdf.tgzVersión PDF de la documentación

Antes de instalar XFree86, usted deberá hacer un backup de sus directorios /usr/X11R6, /etc/X11, y /etc/fonts debido a que sus contenidos pueden cambiar con la instalación de XFree86. Para ello, puede usar los comandostar,cp, ozip. Cuando esté preparado para instalar XFree86, cambia al directorio en el cual descargó los archivos XFree86, y ejecute el script Xinstall.sh como se muestra en el in Listado 2.

Listado 2. Instalación de XFree86
root@pinguino:~/xfree86# sh Xinstall.sh

Se le pedirá que responda a varias preguntas, que varían según usted tenga una versión anterior de X instalada o no. Luego de la instalación de los componentes obligatorios, se le pedirá que instale los componentes opcionales de manera individual.

Luego de la instalación de los archivos, el script ejecutará el comandoldconfigy le ofrecerá configurar diversos vínculos simbólicos.

El modo más sencillo para instalar XFree86 es instalar todos los componentes que desea usando el script Xinstall.sh. Si no lo hace, usted deberá reinstalar todo el paquete, por lo cual cualquier personalización que usted haya realizado quedará posiblemente sobrescrita, o deberá instalar ciertos componentes de manera manual.

Configuración de XFree86

Históricamente, la configuración de XFree86 implicaba la creación de un archivo XF86Config, que contenía información sobre la tarjeta de video, el mouse, el teclado y el hardware visual, así como otros ítems a medida, como las resoluciones de pantalla preferidas. La herramienta de configuración original,xf86config, exigía que el usuario tuviera e ingresara información detallada sobre los cronometrajes de la tarjeta de video y el monitor. Las versiones más recientes de XFree86 son capaces de determinar el hardware disponible de manera dinámica y pueden funcionar con poca o ninguna información de configuración.

Las herramientas de configuración disponibles son:

XFree86 -autoconfig
Al hacer funcionarXFree86con la opción-autoconfigel sistema intentará configurar automáticamente el servidor X. Si su configuración se encuentra correctamente determinada, usted deberá poder mover el cursor X por la pantalla usando el mouse. Presione las teclas Ctrl y Alt y oprima la tecla de Retroceso para salir de la pantalla. De esta manera, se confirma que la configuración automática funcionará. No se escribe un archivo de configuración.
XFree86 -configure
Hacer funcionarXFree86con la opción-configurepuede resultar adecuado si la opción-autoconfigno funciona. Esta opción puede generar problemas en algunos sistemas.
xf86cfg
El comandoxf86cfgintentará poner en marcha los drivers de visualización y de datos de entrada. Si lo consigue, usted verá una ventana con un diagrama de su sistema. Con el botón derecho del mouse, haga clic sobre un ítem para ver o actualizar su configuración. En algunos sistemas, quizás sea necesario usar un teclado numérico en lugar de los botones del mouse, si el mouse no fue detectado adecuadamente. Quizás resulte conveniente tratar de crear un vínculo simbólico a /dev/mouse desde su mouse real antes de ejecutarxf86cfg. Por ejemplo:
ln -s /dev/input/mice /dev/mouse
Cuando presione Quit (Salir), el sistema le pedirá que guarde sus archivos de configuración /etc/X11R6/lib/X11/XF86Config y /etc/X11R6/lib/X11/xkb/X0-config.keyboard.
xf86config
El comandoxf86configusa una interfaz en modo de texto para solicitar información sobre su mouse, teclado, tarjeta de video y monitor de manera interactiva. Usted necesitará información de frecuencia vertical y horizontal para el monitor. Puede seleccionar la mayoría de las tarjetas de video en una base de datos de tarjetas de video conocidas. De lo contrario, quizás necesite información específica sobre el chipset y el cronometraje de su tarjeta.

Notas:

  1. Si su sistema incluye XFree86, es probable que su distribuidor haya incluido una herramienta, como por ejemplo el comandosax2que se usa en sistemas SUSE o el comandoredhat-config-xfree86que se usa en algunos sistemas Red Hat®. Consulte siempre la documentación de su sistema para ver si incluye estas herramientas.
  2. Otra de las herramientas de configuración,XF86Setup, ya no se entrega con XFree86.

X.Org

La mayoría de las distribuciones incluyen una versión de XFree86 o X.Org en el paquete del sistema. Si no es así, quizás usted pueda encontrar un paquete RPM o debe instalarlo siguiendo las técnicas que aprendió en el tutorial sobre el tema 102, "Preparación para el examen 101 de LPI: Instalación y gestión de paquetes de Linux."

Instalación de X.Org n

Si no dispone de un paquete X.Org, deberá descargar y construir el origen en la página web de X.Org o en un espejo (ver Recursos). Al momento de la elaboración de este documento, estos sitios no contenían paquetes binarios prefabricados para X11R6.9.0 o X11R7.0. El origen está disponible en el repositorio de CVS, o como tarballs comprimidos con gzip o bzip2. Usted deberá obtener uno de los archivos gz o bz2, pero no ambos. Usted descubrirá que X.Org Modular Tree Developer's Guide (Guía del desarrollador de árbol modular deX.Org) (ver Recursos) resultará una ayuda invaluable al momento de descargar y construir por sí mismo X.Org. Tome nota de los paquetes adicionales, tales como freetype, fontconfig, y Mesa, que se recomiendan para una construcción totalmente funcional.

Configuración de X.Org

El paquete X.Org se basa en una versión reciente de XFree86 y posee capacidades de configuración similares, que incluyen la determinación dinámica del hardware disponible. El archivo de configuración se denomina xorg.conf más que XF86Config. Es posible encontrarlo en uno de estos lugares: /etc/xorg.conf, /etc/X11/xorg.conf, /usr/X11R6/etc/xorg.conf, /usr/X11R6/lib/X11/xorg.conf.hostname, o /usr/X11R6/lib/X11/xorg.conf.

Las herramientas de configuración disponibles son:

X -configure
La ejecución deXcon la opción-configurehace que el servidor X cargue cada uno de los módulos del driver, sondee el equipo en busca del driver, y cree un archivo de configuración que se guarda en el directorio principal del usuario que puso en marcha el servidor (por lo general /root). El archivo recibe el nombre de xorg.conf.new.
xorgcfg
Esta herramienta es similar a xf86cfg
xorg86config
El comandoxorgconfigusa una interfaz en modo de texto que solicita información sobre el mouse, el teclado, la tarjeta de video y el monitor de manera interactiva. Al igual que con xf86config, usted necesitará información de frecuencia horizontal y vertical para su monitor. Puede seleccionar la mayoría de las tarjetas de video en una base de datos de tarjetas de video conocidas. De lo contrario, es posible que necesite información específica sobre el chipset y el cronometraje de su tarjeta.

Ajuste de X

Los monitores modernos CRT de sincronización múltiple cuentan con controles para fijar el tamaño y la posición de la imagen que se muestra en pantalla. Si su monitor no posee esta capacidad, usted podrá usar el comandoxvidtunepara ajustar el tamaño y la posición de su monitor X. Cuando ejecutaxvidtunedesde una sesión en una terminal X, verá una ventana similar a la de la Figura 1. Ajuste las configuraciones y haga clic en Test para ver cómo funcionan, o haga clic en Apply para modificar las configuraciones. Si haga clic en Show, se imprimirán las configuraciones actuales en la ventana de su terminal en un formato que pueda usar como la configuración Modeline de su archivo CF86Config o xorg.conf.

Figura 1. Ejecución de xvidtune
Running xvidtune

Consulte la página man para ver información adicional.

Generalidades sobre las fuentes en X

Durante muchos años, el manejo de las fuentes en los sistemas X era realizado por el sistema de fuentes core X11. Las versiones recientes de los servidores X XFree86 (y X.Org) incluyen el sistema de fuentes Xft. El sistema de fuentes core fue diseñado originalmente para soportar fuentes de mapas de bits monocromáticos, pero con el tiempo ha sido ampliado. El sistema Xft fue diseñado para responder a los requerimientos modernos, incluyendo el antisolapamiento y la rasterización de subpixeles, y permite que las aplicaciones tengan un control amplio de la renderización de pictogramas. Una diferencia importante entre ambos sistemas es que las fuentes de core se manejan en el servidor, mientras que las fuentes de Xft son manejadas por el cliente, que envía los pictogramas necesarios al servidor.

X usaba originalmente las fuentes del Tipo 1 (o Tipo 1de Adobe), una especificación de fuentes desarrollada por Adobe. El sistema Xft puede manejarlas, al igual que los tipos de fuentes de OpenType, TrueType, Speedo, y CID.

Servidor de fuentes xfs

Con l sistema de fuentes core X11, el servidor X obtiene fuentes e información sobre fuentes de un servidor de fuentes. El servidor de fuentes X,xfs, usualmente se ejecuta como un daemon y se pone en marcha al inicio del sistema, si bien es posible ejecutarlo como una tarea común. Por lo general, usted instalará un servidor de fuentes como parte de su instalación de X. Sin embargo, debido a que X es un protocolo de red, será posible obtener fuentes e información sobre fuentes en una red más que en su máquina local.

El servidor de fuentes X usa un archivo de configuración, que por lo general es /usr/X11R6/lib/X11/fs/config. El Listado 3 muestra un ejemplo de archivo de configuración de fuentes. El archivo de configuración puede estar también ubicado en o vinculado a /etc/X11/fs.

Listado 3. Ejemplo de /usr/X11R6/lib/X11/fs/config
# allow a max of 10 clients to connect to this font server
client-limit = 10

# when a font server reaches its limit, start up a new one
clone-self = on

# alternate font servers for clients to use
#alternate-servers = foo:7101,bar:7102

# where to look for fonts
#
catalogue = /usr/X11R6/lib/X11/fonts/misc:unscaled,
        /usr/X11R6/lib/X11/fonts/75dpi:unscaled,
        /usr/X11R6/lib/X11/fonts/100dpi:unscaled,
        /usr/X11R6/lib/X11/fonts/misc,
        /usr/X11R6/lib/X11/fonts/Type1,
        /usr/X11R6/lib/X11/fonts/Speedo,
        /usr/X11R6/lib/X11/fonts/cyrillic,
        /usr/X11R6/lib/X11/fonts/TTF,
        /usr/share/fonts/default/Type1

# in 12 points, decipoints
default-point-size = 120

# 100 x 100 and 75 x 75
default-resolutions = 75,75,100,100

# how to log errors
use-syslog = on

# don't listen to TCP ports by default for security reasons
no-listen = tcp

Este ejemplo es típico de una instalación de una estación de trabajo Linux en la cual el servidor de fuentes no proporciona las fuentes en las conexiones de la red TCP (no-listen = tcp).

Biblioteca Xft l

La biblioteca Xft brinda funciones que permiten que las aplicaciones de los clientes seleccionen las fuentes en base a un criterio de patrones y generen pictogramas para enviar al servidor. Los patrones toman en cuenta cosas tales como la familia de la fuente (Helvetica, Times, etc.), el tamaño de la fuente, el valor (regular, negrita, cursiva), y muchas otras características posibles. Mientras que el sistema de fuentes core permitía al cliente encontrar la correspondencia para la primera fuente disponible en un servidor, el sistema Xft encuentra la mejor correspondencia para todos los criterios y luego envía la información del pictograma al servidor. Xft interactúa con FreeType para la provisión de fuentes y con las extensiones X Render, lo cual ayuda a acelerar las operaciones de suministro de fuentes. Xft está incluido en las versiones actuales de XFree86 y X.Org.

Nota: Si su servidor X funciona en una red y usa una tarjeta de video que no soporta las extensiones X Render, quizás le convenga desactivar el antisolapamiento ya que el funcionamiento de la red en este caso puede constituir un problema. Se puede usar el comandoxdpyinfopara verificar su servidor X. El Listado 4 muestra parte del resultado dexdpyinfo. Debido a que el resultado dexdpyinfoes muy extensor, quizás sea preferible usargreppara filtrar 'RENDER'.

Listado 4. Verificación de las extensiones RENDER con xdpyinfo
[ian@lyrebird ian]$ xdpyinfo
name of display:    :0.0
version number:    11.0
vendor string:    The XFree86 Project, Inc
vendor release number:    40300000
XFree86 version: 4.3.0
maximum request size:  4194300 bytes
motion buffer size:  256
bitmap unit, bit order, padding:    32, LSBFirst, 32
image byte order:    LSBFirst
number of supported pixmap formats:    7
supported pixmap formats:
    depth 1, bits_per_pixel 1, scanline_pad 32
    depth 4, bits_per_pixel 8, scanline_pad 32
    depth 8, bits_per_pixel 8, scanline_pad 32
    depth 15, bits_per_pixel 16, scanline_pad 32
    depth 16, bits_per_pixel 16, scanline_pad 32
    depth 24, bits_per_pixel 32, scanline_pad 32
    depth 32, bits_per_pixel 32, scanline_pad 32
keycode range:    minimum 8, maximum 255
focus:  window 0x2000011, revert to Parent
number of extensions:    30
    BIG-REQUESTS
    DOUBLE-BUFFER
    DPMS
    Extended-Visual-Information
    FontCache
    GLX
    LBX
    MIT-SCREEN-SAVER
    MIT-SHM
    MIT-SUNDRY-NONSTANDARD
    RANDR
    RECORD
    RENDER
    SECURITY
    SGI-GLX
    SHAPE
    SYNC
    TOG-CUP
    X-Resource
    XC-APPGROUP
    XC-MISC
    XFree86-Bigfont
    XFree86-DGA
    XFree86-DRI
    XFree86-Misc
    XFree86-VidModeExtension
    XInputExtension
    XKEYBOARD
    XTEST
    XVideo
default screen number:    0
number of screens:    1

El uso de Xft en lugar del sistema core X exige cambios en las aplicaciones, de manera que es posible que algunas de sus aplicaciones al parecer no aprovechen el mejor suministro de fuentes de Xft. Al momento de escribir este documento, el kit de herramientas Qt (usado para KDE) y el kit de herramientas GTK+ (usado para GNOME), así como las versiones 1.2 de Mozilla y superiores, constituyen ejemplos de aplicaciones que usan Xft.

Instalación de fuentes

Existen dos métodos para instalar fuentes, uno para Xft, y otro más complejo para las fuentes de core X11.

Fuentes para Xft

Xft usa fuentes ubicadas en un conjunto de conocidos directorios de fuentes, así como fuentes instaladas en el subdirectorio .fonts del directorio principal del usuario. Los directorios de fuentes conocidos incluyen subdirectorios de /usr/X11R6/lib/X11/lib/fonts según figuran en el ítem del catálogo de /usr/X11R6/lib/X11/fs/config. Se pueden especificar otros directorios en la sección XF86Config o xorg.conf de FontPath, según el paquete de servidor X que usted use.

Simplemente copie sus archivos de fuentes al directorio .fonts del usuario o a un directorio tal como /usr/local/share/fonts para usarlas en todo el sistema. El servidor de fuentes deberá elegir las nuevas fuentes y ponerlas a su disposición en la próxima oportunidad posible. Usted puede activar esta actualización con el comandofc-cache.

La tecnología actual de fuentes de X usa módulos cargables para brindar soporte de fuente a distintos tipos de fuentes, como se muestra en la Tabla 5.

Tabla 5. Módulos de fuentes del servidor X
ModuleDescripción
bitmapFuentes con mapa de bits (.bdf, .pcf, y .snf)
freetypeFuentes de TrueType (.ttf yd .ttc), fuentes de OpenType (.otf y .otc) y fuentes del Tipo 1 (.pfa y .pfb)
type1Fuentes alternativas para el Tipo 1 (.pfa y .pfb) y CID
xttMódulo TrueType alternativo (.ttf y .ttc)
speedoFuentes Bitstream Speedo (.spd)

Si tiene problemas al instalar y usar una fuente, vea el registro del servidor (por ejemplo, /var/log/XFree86.0.log) para asegurar que se cargó el módulo adecuado. Los nombres de los módulos distinguen entre mayúsculas y minúsculas. Usted puede usar el comandoxsetpara visualizar (y determinar) las configuraciones del servidor X, incluyendo la ruta de las fuentes y la ubicación de los archivos de configuración y registro, como se ilustra en el Listado 5.

Listado 5. Visualización de configuraciones del servidor X con xset
[ian@lyrebird ian]$ xset -display 0:0 -q
Keyboard Control:
  auto repeat:  on    key click percent:  0    LED mask:  00000000
  auto repeat delay:  500    repeat rate:  30
  auto repeating keys:  00ffffffdffffbbf
                        fadfffffffdfe5ff
                        ffffffffffffffff
                        ffffffffffffffff
  bell percent:  50    bell pitch:  400    bell duration:  100
Pointer Control:
  acceleration:  2/1    threshold:  4
Screen Saver:
  prefer blanking:  yes    allow exposures:  yes
  timeout:  0    cycle:  0
Colors:
  default colormap:  0x20    BlackPixel:  0    WhitePixel:  16777215
Font Path:
  /home/ian/.gnome2/share/cursor-fonts,unix/:7100,/home/ian/.gnome2/share/fonts
Bug Mode: compatibility mode is disabled
DPMS (Energy Star):
  Standby: 7200    Suspend: 7200    Off: 14340
  DPMS is Enabled
  Monitor is Off
Font cache:
  hi-mark (KB): 5120  low-mark (KB): 3840  balance (%): 70
File paths:
  Config file:  /etc/X11/XF86Config
  Modules path: /usr/X11R6/lib/modules
  Log file:     /var/log/XFree86.0.log

Si usted debe controlar aún más el comportamiento de Xft, podrá usar el archivo de configuración de todo el sistema (/etc/fonts/fonts.conf) o un archivo específico del usuario (.fonts.conf, ubicado en el directorio principal del usuario). Entre otras cosas, podrá activar o desactivar el antisolapamiento y controlar la renderización de subpixeles (utilizada en las pantallas de LCD). Estos son archivos XML, de manera que usted deberá asegurar que se mantenga correctamente el formato XML cuando edite los archivos. Consulte las páginas man (o info) para obtener información adicional sobre los contenidos y el formato de estos archivos.

Fuentes Core X11

Si usted tiene archivos en Bitmap Distribution Format (.bdf), será conveniente convertirlos a Portable Compiled Format (.pcf) con el comandobdftopcfy luego comprimirlos congzipantes de instalarlos. Una vez realizada esta tarea, usted podrá copiar las nuevas fuentes a un directorio, como por ejemplo /usr/local/share/fonts/bitmap/, y luego ejecutar el comandomkfontdirpara crear un directorio de comandos que pueda usar el servidor de fuentes. Estos pasos se ilustran en el Listado 6.

Listado 6. Instalación de una fuente con mapa de bits
[root@lyrebird root]# bdftopcf courier12.bdf -o courier12.pcf
[root@lyrebird root]# gzip courier12.pcf
[root@lyrebird root]# mkdir -p /usr/local/share/fonts/bitmap
[root@lyrebird root]# cp *.pcf.gz /usr/local/share/fonts/bitmap/
[root@lyrebird root]# mkfontdir /usr/local/share/fonts/bitmap/
[root@lyrebird root]# ls /usr/local/share/fonts/bitmap/
courier12.pcf.gz  fonts.dir

Observe que el comandomkfontdirfue el que creó el archivo fonts.dir.

Cuando se instalan fuentes escalables, tales como TrueType o Type1, se requerirá un paso adicional para crear la información de escalamiento. Luego de copiar los archivos de las fuentes al directorio destino, ejecute el comandomkfontscaley luego el comandomkfontdir. El comandomkfontscalecreará un índice de archivos de fuentes escalables en un archivo denominado fonts.scale.

Una vez establecidos el directorio de fuentes y la información de escalamiento para sus nuevas fuentes, usted deberá indicarle al servidor dónde encontrarlas, incluyendo el nuevo directorio en la ruta de fuentes. Puede hacerlo de manera momentánea usando el comandoxseto de manera permanente agregando una entrada de FontPath a XF86Config o xorg.conf. Para agregar el nuevo directorio de fuentes con mapas de bits a la parte anterior de la ruta de fuentes, use la opción+fpdexsetcomo se muestra en el Listado 7.

Listado 7. Actualización de la ruta de fuentes con xset
[ian@lyrebird ian]$  xset +fp /usr/local/share/fonts/bitmap/ -display 0:0

Si bien aquí no se muestra, resultará una buena idea agregar las fuentes escalables antes de las fuentes con mapas de bits en la ruta, ya que esto genera una mejor correspondencia de fuentes. Para agregar directorios a la parte posterior de la ruta, use la opciónfp+. De manera similar, el uso de las opciones-fpyfp-quitará los directorios de fuentes desde la parte delantera y posterior de la ruta de fuentes, respectivamente.

Usted puede realizar modificaciones permanentes a la ruta de fuentes mediante la edición de los archivos XF86Config o xorg.conf. Puede agregar tantas líneas de FontPath como necesite en la sección Files (archivos), como se muestra en el Listado 8.

Listado 8. Actualización de XF86Config o xorg.conf
Section "Files"
# RgbPath is the location of the RGB database.  Note, this is the name of the
# file minus the extension (like ".txt" or ".db").  There is normally
# no need to change the default.

# Multiple FontPath entries are allowed (they are concatenated together)
# By default, Red Hat 6.0 and later now use a font server independent of
# the X server to render fonts.

        RgbPath      "/usr/X11R6/lib/X11/rgb"
        FontPath     "unix/:7100"
        FontPath     "/usr/local/share/fonts/bitmap/"
EndSection
[

Para más información sobre otras modificaciones que usted puede hacer a los archivos de configuración X, consulte las páginas man para XF86Config o xorg.conf, según corresponda.


Instalación de un gestor de visualización

Esta sección abarca el material del tema 1.110.2 del examen 101 de la Administración de Nivel Junior (LPIC-1). El tema tiene un valor de 3.

En esta sección, usted aprenderá a:

  • Instalar un gestor de visualización y adaptarlo a medida
  • Cambiar el saludo del gestor de visualización
  • Cambiar los bitplanes predeterminados para el gestor de visualización
  • Configurar gestores de visualización para usarlos en estaciones X

Los gestor de visualización que analizaremos son XDM (Gestor de visualización de X), GDM (Gestor de visualización de GNOME), y KDM (Gestor de visualización de KDE).

Gestores de visualización

En la sección anterior, si usted instaló y configuró X en un sistema que no tenía a X ya instalado, probablemente observó que, para obtener cualquier tipo de visualización gráfica, debió inicialmente conectarse a una ventana de la terminal y ejecutar el comandostartx. Si bien este proceso funciona para las visualizaciones locales, resulta engorroso. Más aún, no funciona para las terminales X remotas.

La solución consiste en usar un gestor de visualización para que presente una pantalla de conexión gráfica y maneje la autenticación. Una vez que el usuario está autenticado, el gestor de visualización inicia una sesión para el usuario del sistema en el cual funciona el gestor de visualización. El resultado gráfico se ve en la pantalla donde el usuario ingresó su identificación de conexión. Puede tratarse de una visualización local o de una visualización X conectada a una red.

Tanto XFree86 como X.Org vienen con el gestor de visualización XDM. Existen otros dos gestores de visualización conocidos: KDE y GNOME. En esta sección, usted aprenderá a instalar y adaptar estos tres gestores de visualización a su medida.

Para establecer una conexión gráfica, sin embargo, usted deberá comprender la inicialización del sistema Linux. Podrá conocer más sobre este tema en el próximo tutorial, Preparación para el examen 102 de LPI (tema 106): Arranque, inicialización, interrupción y niveles de ejecución, y en la Preparación para el examen 201 de LPI (tema 202): Puesta en marcha del sistema. En el recordatorio de esta sección, usted aprenderá lo suficiente como para iniciar su sistema con una conexión gráfica, pero el énfasis de esta sección se encuentra en la instalación y la personalización del gestor de visualización.

En sistemas tales como Red Hat® y SUSE, Xse inicia usualmente en el nivel de ejecución 5. Los sistemas Debian tratan a los niveles de ejecución 2 a 5 como equivalentes, y tienen el nivel de ejecución 2 predeterminado para el inicio. La determinación del nivel de ejecución predeterminado se realiza en /etc/inittab como se muestra en el Listado 9.

Listado 9. Determinación del nivel de ejecución predeterminado en /etc/inittab.
# The default
                    runlevel is defined here id:5:initdefault:

Otra línea, como la que se muestra en el Listado 10 (para un sistema SUSE) o la del Listado 11 (para un sistema Ubuntu), es la encargada de determinar el script o programa a ejecutarse en primer lugar.

Listado 10. Script inicial para el sistema SUSE (o Red Hat)
# First script to be executed, if not
                    booting in emergency (-b) mode si::bootwait:/etc/init.d/boot
Listado 11. Script inicial para el sistema Ubuntu (o Debian)
# Boot-time system configuration/initialization script.
# This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS

Los scripts de inicialización (/etc/init.d/boot or /etc/init.d/rcS) ejecutarán entonces otros scripts. Con el tiempo se ejecutará una serie de scripts para el nivel de ejecución elegido. Para los ejemplos anteriores, los mismos pueden incluir /etc/rc2.d/S13gdm (Ubuntu) o /etc/init.d/rc5.d/S16xdm (SUSE), que son scripts para ejecutar un gestor de visualización. Usted descubrirá que los directorios rc n.d en /etc/init.d por lo general contienen vínculos simbólicos a scripts en /etc/init.d sin la S (o K) inicial y sin número. La S indica que el script se deberá ejecutar cuando se ingrese el nivel de ejecución, y la K indica que se deberá ejecutar el script cuando finalice el nivel de ejecución. Los dígitos especifican el orden del 1 al 99 en el cual se deberán ejecutar los scripts.

Pista: Busque los scripts que finalizan con dm si está tratando de determinar cómo se inicia el gestor de visualización.

Quizás descubra que el script utilizado para ejecutar un gestor de visualización, digamos /etc/init.d/rc5.d/S16xdm, es un script pequeño que contiene lógica adicional para determinar cuál es el gestor de visualización que realmente se va a ejecutar. De modo que, si bien muchos sistemas permiten controlar esto en la configuración, usted podrá también descubrir cuál es el gestor de visualización que se ejecutará examinando los archivos de inicialización.

No deberá sorprenderlo la posibilidad de controlar si su gestor de visualización se inicia con la puesta en marcha del sistema, simplemente mediante la creación de vínculos simbólicos para el inicio y la interrupción en el directorio rc n.d adecuado. Más aún, para detener o iniciar el gestor de visualización, usted puede usar el script de /etc/init.d directamente como se muestra en el Listado 12.

Listado 12. Detención e inicio de un gestor de visualización
root@pinguino:~# /etc/init.d/gdm stop
 * Stopping GNOME Display Manager...                                     [ ok ]
root@pinguino:~# /etc/init.d/gdm start
 * Starting GNOME Display Manager...                                     [ ok ]

Ahora que usted sabe controlar cómo se detiene y se inicia un gestor de visualización, veamos cómo se configura cada uno de los tres gestores de visualización.

XDM

El Gestor de visualización de X (XDM) está incluido en los paquetes XFree86 y X.Org. Conforme al Estándar de Jerarquía de Sistemas de Archivos, los archivos de configuración deberán estar ubicados en /etc/X11/xdm. El archivo de configuración principal es /etc/X11/xdm/xdm-config. Este archivo contiene la ubicación de los demás archivos usados por XDM, los requerimientos de información y autorización, los nombres de los scripts ejecutados para realizar las diversas tareas del usuario, y otros datos de configuración.

El archivo Xservers determina cuál es la visualización local o cuáles son las visualizaciones que XDM deberá gestionar. Por lo general contiene una única línea, como se muestra en el Listado 13.

Listado 13. Ejemplo de archivo Xservers
:0 local /usr/X11R6/bin/X :0 vt07

El Listado 13 indica que X debe ejecutarse en la terminal virtual 7. La mayoría de los sistemas soportan el uso de Ctrl-Alt-F1 a Ctrl-Alt-F7 para cambiar entre terminales virtuales, en donde vt01 a vt06 corresponden a terminales en modo de texto y vt07 es la terminal X.

Si usted desea soportar terminales remotas, necesitará un archivo Xaccess. Este archivo controla el modo en que XDM se comunica con las terminales que adhieren al X Gestor de visualización Control Protocol (Protocolo de control de gestores de visualización de X) (XDCMP). Las terminales que no adhieren a este protocolo están definidas en el archivo Xservers. XDCMP usa el conocido Puerto UDP 177. Por razones de seguridad, usted deberá restringir el uso de XDCMP a una red interna confiable con la protección de firewall adecuada.

Usted podrá personalizar el modo de trabajo de XDM actualizando los scripts en /etc/X11/xdm. En especial, el script Xsetup (o Xsetup_0) le permite personalizar el saludo de bienvenida. La Figura 2 muestra un saludo XDM simple con el agregado de un reloj digital.

Figura 2. Saludo XDM modificado
A modified XDM greeting

El origen del archivo modificado Xsetup_0 se muestra en el Listado 14.

Listado 14. Ejemplo de archivo Xsetup_0
#!/bin/shxclock -geometry 80x80 -bg wheat&
                    xconsole -geometry 480x130-0-0 -daemon -notify -verbose -fn fixed
                    -exitOnFail

El saludo que se muestra en la Figura 2 provino de un sistema que usaba una resolución de pantalla de 640x480 pixeles a 256 colores. XDM usa la resolución predeterminada de su archivo XF86Config or xorg.conf. Para modificar la resolución de pantalla predeterminada para todo el sistema, usted puede editar este archivo o usar los programas utilitarios que pueden venir con el sistema. El Listado 15 muestra la sección Screen (pantalla) de un archivo XF86Config. Observe que la DefaultDepth (profundidad predeterminada) es 16, de manera que el servidor X tratará de ejecutar la pantalla en la primera resolución posible especificada para esta profundidad, que en este caso es de 1024x768.

Listado 15. Configuración de la resolución de pantalla
Section "Screen"
  DefaultDepth 16
  SubSection "Display"
    Depth      15
    Modes      "1280x1024" "1024x768" "800x600" "640x480"
  EndSubSection
  SubSection "Display"
    Depth      16
    Modes      "1024x768" "800x600" "640x480"
  EndSubSection
  SubSection "Display"
    Depth      24
    Modes      "1280x1024" "1024x768" "800x600" "640x480"
  EndSubSection
  SubSection "Display"
    Depth      32
    Modes      "1280x1024" "1024x768" "800x600" "640x480"
  EndSubSection
  SubSection "Display"
    Depth      8
    Modes      "1280x1024" "1024x768" "800x600" "640x480"
  EndSubSection
  Device       "Device[0]"
  Identifier   "Screen[0]"
  Monitor      "Monitor[0]"
EndSection

Observe queDepthse refiere a la cantidad de bits que conforman cada pixel. También recibe el nombre de bits por pixel o bitplanes. Por lo tanto, el uso de 8 bitplanes o de 8 bits para cada color permite hasta 256 colores, mientras que una profundidad de 16 permite hasta 65536 colores. Con las tarjetas gráficas de hoy en día, resultan comunes profundidades mayores de hasta 24 y 32.

Usted podrá verificar la resolución de pantalla usando el comandoxwininfoy la opción-rootpara ver las características del servidor X que tiene en funcionamiento, como se muestra en el Listado 16.

Listado 16. Verificación de la resolución de pantalla
ian@lyrebird:~> xwininfo -display 0:0 -root

xwininfo: Window id: 0x36 (the root window) (has no name)

  Absolute upper-left X:  0
  Absolute upper-left Y:  0
  Relative upper-left X:  0
  Relative upper-left Y:  0
  Width: 1024
  Height: 768
  Depth: 16
  Visual Class: TrueColor
  Border width: 0
  Class: InputOutput
  Colormap: 0x20 (installed)
  Bit Gravity State: NorthWestGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: no
  Corners:  +0+0  -0+0  -0-0  +0-0
  -geometry 1024x768+0+0

KDM

KDM es el gestor de escritorio K para el entorno de escritorio K (KDE). La versión 3 de KDE usa un archivo de configuración kdmrc, lo cual representa una variante respecto a las anteriores versiones, que utilizaban información de configuración que se basaba en los archivos de configuración xdm. Este se encuentran en el directorio $KDEDIR/share/config/kdm/ , donde $KDEDIR puede estar en /etc/kde3/kdm/ o en otra ubicación. Por ejemplo, en un sistema SUSE SLES8, se encuentra ubicado en /etc/opt/kde3/share/config/kdm.

Listado 17. Archivo de configuración KDM: kdmrc
[Desktop0]
BackgroundMode=VerticalGradient
Color1=205,205,205
Color2=129,129,129
MultiWallpaperMode=NoMulti
Wallpaper=UnitedLinux-background.jpeg
WallpaperMode=Scaled

[X-*-Greeter]
GreetString=UnitedLinux 1.0 (%h)
EchoMode=OneStar
HiddenUsers=nobody,
BackgroundCfg=/etc/opt/kde3/share/config/kdm/kdmrc
MinShowUID=500
SessionTypes=kde,gnome,twm,failsafe

[General]
PidFile=/var/run/kdm.pid
Xservers=/etc/opt/kde3/share/config/kdm/Xservers

[Shutdown]
HaltCmd=/sbin/halt
LiloCmd=/sbin/lilo
LiloMap=/boot/map
RebootCmd=/sbin/reboot
UseLilo=false

[X-*-Core]
Reset=/etc/X11/xdm/Xreset
Session=/etc/X11/xdm/Xsession
Setup=/opt/kde3/share/config/kdm/Xsetup
Startup=/etc/X11/xdm/Xstartup
AllowShutdown=Root

[Xdmcp]
Willing=/etc/X11/xdm/Xwilling
Xaccess=/etc/X11/xdm/Xaccess

Muchas secciones contienen el mismo tipo de información de configuración que para XDM, pero con ciertas diferencias. Por ejemplo, el campo SessionTypes permite a KDM iniciar uno de varios tipos de sesión diferentes; y hay otros comandos que permiten a KDM detener o reiniciar el sistema.

Usted puede configurar KDM mediante la edición del archivo kdmrc. Además, puede cambiar muchas de las configuraciones del gestor de inicio de sesión con el centro de control KDE (kcontrol) como se muestra en la Figura 3.

Figura 3. Modificación de la configuración KDM con kcontrol
Modifying KDM configuration with kcontrol

El manual de KDM (ver Recursos) incluye amplia información sobre la configuración de KDM.

GDM

GDM es el Desktop Manager GNOME para el entorno de escritorio GNOME. Este desktop manager no se basó en XDM, sino que fue programado desde cero. GDM usa un archivo de configuración gdm.conf, que por lo general se ubica en el directorio /etc/X11/gdm. El Listado 18 muestra parte de un archivo gdm.conf.

Listado 18. Parte del archivo de configuración GDM: gdm.conf
# You should probably never change this value unless you have a weird setup
PidFile=/var/run/gdm.pid
# Note that a post login script is run before a PreSession script.
# It is run after the login is successful and before any setup is
# run on behalf of the user
PostLoginScriptDir=/etc/X11/gdm/PostLogin/
PreSessionScriptDir=/etc/X11/gdm/PreSession/
PostSessionScriptDir=/etc/X11/gdm/PostSession/
DisplayInitDir=/etc/X11/gdm/Init
   ...
# Probably should not touch the below this is the standard setup
ServAuthDir=/var/gdm
# This is our standard startup script.  A bit different from a normal
# X session, but it shares a lot of stuff with that.  See the provided
# default for more information.
BaseXsession=/etc/X11/xdm/Xsession
# This is a directory where .desktop files describing the sessions live
# It is really a PATH style variable since 2.4.4.2 to allow actual
# interoperability with KDM.  Note that <sysconfdir>/dm/Sessions is there
# for backwards compatibility reasons with 2.4.4.x
#SessionDesktopDir=/etc/X11/sessions/:/etc/X11/dm/Sessions/:/usr/share/gdm/Buil\
tInSessions/:/usr/share/xsessions/
# This is the default .desktop session.  One of the ones in SessionDesktopDir
DefaultSession=default.desktop

Nuevamente, usted encontrará ciertas similitudes en el tipo de información de configuración que se utiliza para GDM, KDM, y XDM, aunque gdm.conf es un archivo mucho más extenso que incluye muchas más opciones.

Usted puede configurar GDM mediante la edición del archivo gdm.conf. Además, puede cambiar muchas de las configuraciones con el comandogdmsetup. La Figura 4 muestra un recibidor alternativo que está disponible en un sistema Fedora.

Figura 4. Modificación de la configuración de GDM con gdmsetup
Modifying GDM configuration with gdmsetup

El Manual de Referencia del Gestor de Visualización GNOME, disponible en la sección de ayuda de gdmsetup (de lo contrario, ver Recursos), contiene amplia información sobre la configuración de GDM.


Personalización de un gestor de ventanas

Esta sección abarca el material para el tema 1.110.4 del examen 101 de la Administración de Nivel Junior (LPIC-1). El tema tiene un valor de 5.

En esta sección, usted aprenderá a:

  • Personalizar un entorno de escritorio o gestor de ventanas para todo el sistema
  • Personalizar los menús del gestor de ventanas y del panel de escritorio
  • Configurar una terminal X
  • Verificar y resolver los problemas de dependencias de biblioteca para las aplicaciones X
  • Exportar una vista X

Gestores de ventanas

En la sección anterior, usted aprendió acerca de los gestores de visualización y cómo instalarlos. También aprendió en este tutorial que si bien X es un kit de herramientas que permite que las aplicaciones creen ventanas gráficas, el mismo no especifica una interfaz de usuario. En esta sección, usted aprenderá más acerca de las interfaces de usuario y cómo configurar lo que sucede después de que usted inicia y pone en funcionamiento una sesión X.

Podrá imaginar que, sin una especificación de interfaz de usuario, la creatividad de los desarrolladores puede generar numerosos estilos de ventanas diferentes, que lucharán entre sí por obtener espacio en su pantalla, todas ellas con distintas pulsaciones de teclas, operaciones de mouse y estilos para cosas tales como botones, casillas de diálogo, etc. Con el fin de poner cierto orden en el caos, se desarrollaron kits de herramientas de alto nivel, que a su vez, dieron origen a gestores de ventanas, como por ejemplo twm, fvwm, y fvwm2, y finalmente a escritorios tales como KDE y GNOME.

Los escritorios brindan una experiencia de usuario consistente, pero consumen considerables recursos de CPU y de memoria. Antes de que las computadoras tuvieran la capacidad de soportar escritorios del tipo de KDE o GNOME, los gestores de ventanas eran muy populares, habiendo todavía muchos usuarios que los prefieren debido a su poco peso y rápida capacidad de respuesta.

Si usted ha instalado X recientemente y escribe el comandostartx, obtendrá una vista similar a la de la Figura 5.

Figura 5. Ejecución de twm con startx
Modifying GDM configuration with gdmsetup

Este es el gestor de ventanas twm, que se muestra con el menú que se obtiene al presionar el botón principal de mouse (generalmente el botón izquierdo para los usuarios diestros) sobre el fondo de pantalla. Usted verá tres ventanas de terminal y un reloj análogo, pero no verá barras de tareas, iniciadores ni accesorios de escritorio.

El comandostartxes en realidad un comando de front-end paraxinit, que inicia el proceso y algunas aplicaciones del cliente en el servidor X. Por lo general se ubica en /usr/X11R6/bin, al igual quexinity muchos otros programas utilitarios de X . Las aplicaciones X pueden tomar las configuraciones de una base de datos de recursos X y de una línea de comandos. La Tabla 6 incluye el nombre y el propósito de cada uno de los archivos de configuración usados porstartxoxinit. Observe que todos o algunos de estos archivos pueden no estar presentes en un determinado sistema o un directorio principal de usuario.

Tabla 6. Archivos de configuración para startx y xinit
ArchivoDescripción
$HOME/.xinitrcScript ejecutable definido por el usuario que fusiona los archivos de recursos e inicia las aplicaciones del cliente
$HOME/.xserverrcScript ejecutable definido por el usuario que brinda una sustitución manual de la configuración predeterminada del servidor X
/usr/X11R6/lib/X11/xinit/xinitrcScript ejecutable predeterminado por el sistema que fusiona los archivos de recursos e inicia las aplicaciones del cliente
/usr/X11R6/lib/X11/xinit/xserverrcScript ejecutable predeterminado por el sistema que brinda una sustitución manual de la configuración predeterminada del servidor X
$HOME/.XresourcesArchivo definido por el usuario que describe los recursos para las aplicaciones X
$HOME/.XmodmapArchivo definido por el usuario que define las configuraciones de teclado y mouse
/usr/X11R6/lib/X11/xinit/.XresourcesArchivo predeterminado por el sistema que describe los recursos para las aplicaciones X
/usr/X11R6/lib/X11/xinit/.XmodmapArchivo predeterminado por el sistema que define las configuraciones de teclado y mouse

Observe particularmente que los archivos xinitrc y xserverrc del sistema omiten el punto principal, mientras que los demás lo incluyen.

Cada una de las ventanas de la pantalla, y de hecho cada uno de los widgets de la pantalla, posee atributos tales como altura, ancho, y ubicación (geometría), colores o imágenes de primer plano y de segundo plano, texto y color de título, etc. Para una nueva aplicación de cliente, la mayoría de estos valores pueden ser suministrados en la línea de comando. Debido a que existen numerosos atributos, resulta más sencillo contar con valores predeterminados. Estos valores predeterminados se almacenan en una base de datos de recursos, que se construye a partir de los archivos de recursos mediante el comandoxrdb.

El Listado 19 muestra el archivo xinit predeterminado que viene con XFree86 4.5.0.

Listado 19. Ejemplo de archivo xinit: /usr/X11R6/lib/X11/xinit/xinitrc
#!/bin/sh
# $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap

# merge in defaults and keymaps

if [ -f $sysresources ]; then
    xrdb -merge $sysresources
fi

if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap
fi

if [ -f $userresources ]; then
    xrdb -merge $userresources
fi

if [ -f $usermodmap ]; then
    xmodmap $usermodmap
fi

# start some nice programs

twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
exec xterm -geometry 80x66+0+0 -name login

Observe que el comandoxrdbse utiliza para fusionar los recursos, y el xmodmap se usa para actualizar las definiciones de teclado y mouse. Por ultimo, existen numerosos programas que se inician en el segundo plano con un programa final que se inicia en el primer plano mediante el comandoexec, que finaliza el script actual (xinitrc) y transfiere el control a la ventana xterm con la geometría 80x66+0+0 . Esta es la ventana de inicio de sesión, y su finalización finaliza el servidor X. Debe existir una aplicación así, aunque algunas personas prefieran que el gestor de ventanas (en este ejemplo: twm) desempeñe este rol. Todas las demás aplicaciones deberán iniciarse en el segundo plano para que el script pueda completarse.

Los primeros dos valores de la especificación de la geometría definen el tamaño de la ventana. Para un reloj, está en pixels, mientras que para la ventana xterm, está en líneas y columnas. Si se encuentra presente, los siguientes dos valores definen la colocación de la ventana. Si el primer valor es positivo, la ventana se coloca cerca del borde izquierdo de la pantalla, mientras que los valores negativos hacen que se coloque cerca del borde derecho. De manera similar, los signos positivo y negativo del segundo valores refieren respectivamente a la parte superior e inferior de la pantalla.

Suponga usted que desea que su reloj tenga un tamaño mayor y otro color, y que se ubique en el extremo inferior derecho de la pantalla, en lugar de en el extremo superior derecho de la misma. Si desea esto sólo para un usuario, copie el archivo anterior en el directorio principal del usuario como .xinitrc (recuerde el punto) y edite la especificación del reloj como se muestra en el Listado 20. Podrá encontrar todos los nombres de los colores en el archivo rgb.txt del árbol de directorio de su instalación X (por ejemplo: /usr/X11R6/lib/X11/rgb.txt).

Listado 20. Modificación de la puesta en marcha de xclock en xinitrc
xclock -background mistyrose
                    -geometry 100x100-1-1 &

Si desea actualizar los valores predeterminados para toda la instalación, deberá actualizar los archivos /usr/X11R6/lib/X11/xinit/.Xresources y /usr/X11R6/lib/X11/xinit/.Xmodmap en lugar de las versiones con punto para los usuarios individuales.

Existen numerosas herramientas que pueden ayudarlo a personalizar las ventanas y las pulsaciones de teclas.

xrdb
fusiona los recursos de un archivo de recursos en la base de datos de recursos X para el servidor X en funcionamiento. De manera predeterminada, pasa el archivo de recursos de origen a través de un compilador C++. Especifique la opción-nocppsi no cuenta con un compilador instalado.
xmodmap
fija los enlaces de teclado y mouse. Por ejemplo, usted puede cambiar las configuraciones para el uso del mouse por parte de usuarios zurdos, o configurar las teclas de espacio y suprimir para que funcionen de la manera en que usted está acostumbrado a trabajar.
xwininfo
le brinda información sobre una ventana, incluyendo información sobre geometría.
editres
le permite personalizar los recursos para las ventanas de su pantalla, ver los cambios y guardarlos en un archivo que más tarde podrá usar con xrdb.
xev
inicia una ventana y captura los eventos de X que se muestran en la ventana xterm de origen. Use este comando para ayudar a determinar los códigos adecuados a utilizar cuando se personalizan teclados o se verifican los eventos del mouse.

En las páginas man, encontrará más información sobre estos comandos.

La Figura 6 muestra una pantalla muy concurrida con varios de estos comandos en funcionamiento.

  • La ventana de la terminal superior izquierda (ventana de conexión) está usandoxwdpara capturar toda la pantalla en un archivo.
  • La ventana que se superpone a ella está ejecutandoeditrespara modificar los recursos de la ventana del reloj.
  • La pequeña ventana está ejecutandoxev, y el resultado está pasando a la ventana de terminal ubicada debajo de ella. La ventana del lado derecho muestra el resultado dexwininfopara la ventana raíz (toda la pantalla).
  • El reloj adaptado a medida con su color rosa pálido está funcionando en el extremo inferior derecho de la pantalla.
Figura 6. Información y configuración de ventanas
Window information and configuration

Además de las ventanas mismas, el gestor de ventanas también permite la personalización. Por ejemplo, el menú que se muestra en la Figura 5 está configurado en un archivo de personalización twm. El sistema predeterminado se encuentra en el árbol del directorio de instalación X (/usr/X11R6/lib/X11/twm/system.twmrc), y los usuarios individuales podrán contar con un archivo .twmrc. Si un usuario tiene múltiples vistas, es posible que haya archivos (tales como .twmrc.0 o .twmrc.1) para cada número de vista. El Listado 21 muestra la parte del archivo system.twmrc que define el menú que se muestra en la Figura 5.

Listado 21. Configuración de menú en twm
menu "defops"
{
"Twm"   f.title
"Iconify"       f.iconify
"Resize"        f.resize
"Move"          f.move
"Raise"         f.raise
"Lower"         f.lower
""              f.nop
"Focus"         f.focus
"Unfocus"       f.unfocus
"Show Iconmgr"  f.showiconmgr
"Hide Iconmgr"  f.hideiconmgr
""              f.nop
"Xterm"         f.exec "exec xterm &"
""              f.nop
"Kill"          f.destroy
"Delete"        f.delete
""              f.nop
"Restart"       f.restart
"Exit"          f.quit
}

Consulte las páginas man para obtener más información sobre twm o su gestor de ventanas de preferencia.

Escritorios

Si usted está usando un gestor de visualización o escritorio, descubrirá que estos también se pueden configurar. De hecho, usted ya ha visto en la sección anterior el archivo Xsetup_0 para XDM. Al igual que con la configuración de gestor de ventanas que usted acaba de ver, la configuración del escritorio se puede realizar por usuario o para todo el sistema.

Personalización de GNOME

GNOME se configure principalmente mediante archivos XML. Los archivos predeterminados del sistema se encuentran en los directorios del sistema de archivos /etc, como por ejemplo /etc/gconf, /etc/gnome, y/etc/gnome-vfs2..0, junto con otros directorios para aplicaciones específicas de GNOME. La configuración del usuario se encuentra por lo general en subdirectorios del directorio principal que empiezan con .g. El Listado 22 muestra varias de las posibles ubicaciones de la información sobre configuración de GNOME.

Listado 22. Ubicaciones de la configuración de GNOME
[ian@lyrebird ian]$ ls -d /etc/g[cn]*
/etc/gconf  /etc/gnome  /etc/gnome-vfs-2.0  /etc/gnome-vfs-mime-magic
[ian@lyrebird ian]$ find . -maxdepth 1 -type d -name ".g[nc]*"
./.gnome2
./.gconfd
./.gconf
./.gnome
./.gnome2_private
./.gnome-desktop
./.gnome_private

En lugar de las extensas páginas man, GNOME cuenta con un manual online; usted podrá acceder al mismo con el comandognome-help, o desde un item de menú tal como Desktop > Help. Al momento de escribir este documento, el manual consta de tres secciones principales: Desktop (Escritorio), Applications (Aplicaciones), y Other Documentation (Otros documentos). La tabla de contenidos de una reciente versión de Desktop Help se muestra en la Figura 7.

Figura 7. Información y configuración de ventanas
Window information and configuration

Usted encontrará información sobre las herramientas de configuración en la Guía de Administración del Sistema de la sección Desktop y en el Manual de Editor de Configuración en el tema aplicaciones de la sección Desktop.

Usted podrá poner en funcionamiento el editor de configuraciones gráficas con el comandogconf-editoro seleccionando Configuration Editor en el menú Applications > System Tools (Aplicaciones >Herramientas del sistema). La configuración de la aplicación de terminales gnome se muestra en la Figura 8.

Figura 8. Información y configuración de ventanas
Window information and configuration

Además de las herramientas gráficas, existe un programa de líneas de comandogconftool-2para interrogar y actualizar la información de configuración de GNOME. Consulte la Guía de Administración del Sistema antes mencionada para obtener más detalles.

Personalización de KDE

KDE se configure mediante archivos de texto plano con codificación UTF-8 para caracteres que no sean ASCII. Al igual que con GNOME, pueden existir muchos archivos de configuración diferentes. Si existen múltiples archivos con el mismo nombre en distintos lugares del árbol de configuración, se fusionan los valores de los mismos. Los valores Sy6stem se ubican en el árbol $KDEDIR/share/config, donde $KDEDIR puede ser /etc/kde3/kdm/ o quizás encontrarse en otro lugar. Por ejemplo, en un sistema SUSE SLES8, se encuentra ubicado en /etc/opt/kde3/share/config. Las personalizaciones específicas del usuario se encuentran ubicadas en el árbol .kde/share del directorio principal del usuario.

Los archivos de configuración tienen uno o más nombres de grupo encerrados entre corchetes, seguidos por claves y pares de valores. La calve puede incluir espacios y se separa del valor con un signo igual. El archivo de configuración para el buscador konqueror se muestra en el Listado 23.

Listado 23. Archivo de configuración KDE para el buscador konqueror browser
[HTML Settings]

[Java/JavaScript Settings]
ECMADomainSettings=localhost::Accept
JavaPath=/usr/lib/java2/jre/bin/java
EnableJava=true
EnableJavaScript=true

[EmbedSettings]
embed-text=true
embed-audio=false
embed-video=false

[Reusing]
MaxPreloadCount=1
PreloadOnStartup=true

Los archivos de configuración se pueden editar de manera manual. La mayoría de los sistemas incluyen una herramienta de edición gráfica, como KConfigEditor, o una herramienta personalizada para la distribución, como el SUSE Control Center.

Distintos xterms

El programaxtermusual que se instala con escritorios gráficos resulta muy funcional, pero también utiliza gran cantidad de recursos del sistema. Si usted está ejecutando un sistema con numerosas terminales X de clientes que funcionan en un único procesador, quizás sea conveniente considerar el uso de una terminal más liviana. Dos de estas terminales sonrxvtyaterm(construida sobrerxvt). Son emuladores VT102,que por lo general no se instalan de manera predeterminada, por lo cual usted deberá instalarlos aparte.

Bibliotecas requeridas

En este momento, es posible que usted se esté dando cuenta de que pueden haber múltiples bibliotecas y kits de herramientas diferentes para usar con las aplicaciones X. Por lo tanto, ¿cómo se asegura de tener las bibliotecas adecuadas? El comandolddenumera las dependencias de bibliotecas para cualquiera de las aplicaciones. En su forma más sencilla, toma el nombre de un archivo ejecutable e imprime las bibliotecas necesarias para ejecutar el programa. Observe quelddno busca automáticamente en su PATH (ruta), por lo cual usted generalmente deberá brindar la ruta (relativa o absoluta) así como el nombre del programa, a menos que el mismo se encuentre en el directorio actual. El Listado 24 muestra las dependencias de bibliotecas para los tres emuladores de terminales que vimos anteriormente. La cantidad de dependencias de bibliotecas para cada uno de ellos le dará una pista sobre los requerimientos relativos del sistema para cada uno.

Listado 24. Dependencias de bibliotecas para xterm, aterm, y rxvt
    root@pinguino:~# ldd `which xterm`
        linux-gate.so.1 =>  (0xffffe000)
        libXft.so.2 => /usr/X11R6/lib/libXft.so.2 (0xb7fab000)
        libfontconfig.so.1 => /usr/X11R6/lib/libfontconfig.so.1 (0xb7f88000)
        libfreetype.so.6 => /usr/X11R6/lib/libfreetype.so.6 (0xb7f22000)
        libexpat.so.0 => /usr/X11R6/lib/libexpat.so.0 (0xb7f06000)
        libXrender.so.1 => /usr/X11R6/lib/libXrender.so.1 (0xb7eff000)
        libXaw.so.7 => /usr/X11R6/lib/libXaw.so.7 (0xb7ead000)
        libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0xb7e99000)
        libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0xb7e4f000)
        libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0xb7e46000)
        libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0xb7e30000)
        libXpm.so.4 => /usr/X11R6/lib/libXpm.so.4 (0xb7e22000)
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0xb7e15000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0xb7d56000)
        libncurses.so.5 => /lib/libncurses.so.5 (0xb7d15000)
        libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7be6000)
        libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7be3000)
        /lib/ld-linux.so.2 (0xb7fc3000)
root@pinguino:~# ldd `which aterm`
        linux-gate.so.1 =>  (0xffffe000)
        libXpm.so.4 => /usr/X11R6/lib/libXpm.so.4 (0xb7f81000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0xb7ec1000)
        libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0xb7eb9000)
        libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0xb7ea3000)
        libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7d75000)
        libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7d72000)
        /lib/ld-linux.so.2 (0x80000000)
root@pinguino:~# ldd `which rxvt`
        linux-gate.so.1 =>  (0xffffe000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0xb7eb0000)
        libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7d81000)
        libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7d7e000)
        /lib/ld-linux.so.2 (0x80000000)

Exportación de una vista

Se conoce a las vistas X con un nombre similar a hostname:displaynumber.screennumber. Para un sistema Linux que funciona en una estación de trabajo tal como una PC, normalmente existe una vista con una única pantalla. En este caso, es posible que se omita el displayname, como suele suceder, por lo cual se lo conocerá como :0.0. La variable de entorno DISPLAY por lo general se establece con el nombre de la vista, de manera que usted podrá visualizarla mediante el comandoecho $DISPLAY. Dependiendo del sistema usado, esta variable podrá o no establecerse si usted utilizasu -para cambiar a otro usuario. En este caso, es probable que necesite configurar y exportar DISPLAY como se muestra en el Listado 25. En este listado, usted verá un intento de configurar la aplicación xclock luego de cambiar a root, pero el intento falla debido a que la variable de entorno DISPLAY no está establecida. Incluso si lo estuviera, usted no podrá usar la vista, debido a que necesitará además una autorización para hacerlo..

Listado 25. Intento de iniciar xclock
ian@lyrebird:~> whoami
ian
ian@lyrebird:~> echo $DISPLAY
:0.0
ian@lyrebird:~> su -
Password:
lyrebird:~ # echo $DISPLAY

lyrebird:~ # xclock
Error: Can't open display:
lyrebird:~ # export DISPLAY=:0.0
lyrebird:~ # echo $DISPLAY
:0.0
lyrebird:~ # xclock
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified

Error: Can't open display: :0.0
lyrebird:~ # export XAUTHORITY=~ian/.Xauthority
lyrebird:~ # xclock
lyrebird:~ # ls -l ~ian/.Xauthority
-rw-------  1 ian users 206 Feb 18 16:20 /home/ian/.Xauthority

Veamos qué sucede aquí. En este caso, el usuario ian se conectó al sistema y su entornoDISPLAYestaba establecido en :0.0 como era de esperarse. Cuando el usuario ian cambió al usuario root, la variable de entornoDISPLAYno se configure, y fracasó el intento de iniciarxclockdebido a que la aplicación desconocía qué vista utilizar.

Por lo tanto, el usuario sustituido, root, fijó la variable de entornoDISPLAY, y la exportó para que estuviera disponible para otros shells que pudieran iniciarse a partir de esta ventana de terminal. Observe que la configuración y exportación de una variable de entorno no usa el signo inicial $, mientras que la visualización u otro uso del valor lo hace. Observe, además, que si el comandosuhubiera omitido el signo - (menos), la variable de entornoDISPLAYse hubiera establecido como lo hubiera hecho para el usuario ian. Sin embargo, incluso con la variable de entorno establecida,xclockfalló.

El motivo de la segunda falla está en la naturaleza de cliente/servidor de X. Aunque root esté ejecutando una ventana en la única vista del sistema, la vista es solamente propiedad del usuario que se conectara originalmente: en este caso, ian. Veamos los métodos de autorización de X.

Métodos de autorización

Para las vistas locales de los sistemas Linux, la autorización generalmente depende de la denominada MIT-MAGIC-COOKIE-1, que usualmente se regenera cada vez que se reinicia el servidor X. Un usuario puede extraer la magic cookie del archivo .Xauthority dentro de su directorio principal (usando el comandoxauth extracty pasándola a otro usuario para fusionarla a su archivo de usuario .Xauthority con el comandoxauth merge. De manera opcional, un usuario puede otorgar autorización a otros usuarios para que accedan al sistema local mediante el comandoxhost +local:.

XAUTHORITY

Otra alternativa consiste en fijar la variable de entorno XAUTHORITY en la ubicación de un archivo que contenga la MIT-MAGIC-COOKIE-1 adecuada. Cuando se cambia a root, resulta fácil hacerlo, debido a que root puede leer archivos propiedad de otros usuarios. Esto es, de hecho, lo que hicimos en el Listado 25, por lo cual después de establecer y exportar XAUTHORITY a ~ian/.Xauthority, root estará en condiciones de abrir ventanas gráficas en el escritorio. Dijimos que mencionaríamos una diferencia con los sistemas Red Hat. El uso desupara cambiar la raíz de un sistema Red Hat tiene algunas diferencias respecto de un sistema SUSE, en el cual la configuración de la vista se realiza automáticamente para usted.

Entonces, ¿qué sucede si usted cambia a otro usuario que no sea root? Usted observará por el Listado 25 que el archivo .Xauthority para el usuario ian sólo permite un acceso de lectura y escritura. Ni siquiera pueden leerlo los miembros del mismo grupo, lo cual usted desea, a menos que quiera que alguien en particular abra una aplicación que lo lleve a su pantalla evitando que usted haga cualquier cosa. Entonces, si usted extrae una MIT-MAGIC-COOKIE-1 de su archivo .Xauthority, deberá encontrar algún medio seguro de dársela a su usuario amigo no root. Otro enfoque consiste en usar el comandoxhostpara otorgar autoridad a cualquier usuario de un host en particular.

Comando xhost

Debido a la dificultad para pasar de manera segura la cookie MIT-MAGIC-COOKIE-1 a otro usuario, es posible que descubra quexhostes más fácil de usar para un sistema Limux con un único usuario, incluso cuando usualmente se prefiere el enfoquexauthpor sobre el comandoxhost. No obstante, recuerde el legado de red del Sistema de Ventanas X para evitar otorgar accidentalmente más acceso que el deseado y así abrir su sistema para que usuarios de red arbitrarios puedan abrir ventanas en su escritorio.

Para brindar a todos los usuarios locales autoridad para abrir aplicaciones en la vista (:0.0), el usuario ian puede usar el comandoxhost. Abra una ventana de terminal en su escritorio e ingrese el siguiente comando:

xhost +local:

Observe los dos puntos del final (:). Esto permitirá que otros usuarios del mismo sistema se conecten al servidor y abran ventanas. Debido a que usted está usando un sistema de usuario único, esto significa que usted puede aplicarsupara un usuario no root arbitrario, pudiendo ahora ejecutarxclocku otras aplicaciones X.

Además, también puede usarxhostpara autorizar hosts remotos. Esto no es en general una buena idea, a menos que se trate de redes restringidas. Además, usted deberá activar los puertos adecuados en su firewall en caso que lo está usando.

Otra posibilidad para usar aplicaciones X desde otro sistema consiste en conectarse al sistema mediante una conexión de shell seguro (ssh). Si su configuración predeterminada de cliente ssh no permite los envíos de X, usted deberá agregar el parámetro-Xa su comandossh. El servidor ssh también deberá tener activados los envíos de X. Por lo general, este es un método mucho más seguro de usar X de manera remota que el de abrir su sistema a conexiones arbitrarias conxhost.

Para más detalles sobre el uso de los comandosxauthyxhost, use los comandosinfo xauth,man xauth,info xhostoman xhost, según corresponda, para visualizar las páginas del manual online. Si usted está interesado en la seguridad de las conexiones X, comience por leer las páginas del manual dedicadas aXsecure.

Recursos

Aprender

Obtener los productos y tecnologías

Comentar

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=
ArticleID=435546
ArticleTitle=Preparación para el examen 101 de LPI: Sistema de Ventanas X
publish-date=10132009