Preparando LPIC-1 106.2 Configurar un administrador de pantalla

En este topico vamos a ver ciertos comandos y archivos de configuracion de la grafica.

Comenzaremos con ver dos comandos para obtener info de nuestra X:

*xdpyinfo
*xwininfo

Xdpyinfo
A veces es útil saber acerca de las capacidades de la pantalla, porque este es manejado por el server X. La herramienta para este trabajo es xdpyinfo. Cuando escribe xdpyinfo, el resultado es lanzado en la salida estandard dandonos información de las unidades organizativas de la pantalla actual, como el número de versión X, la resolución
y profundidad de color de todas las pantallas actuales, y así sucesivamente. Mucha de esta información es muy de carácter técnico, por lo que no se puede entender todo. Eso está bien. Recomiendo ejecutar este programa y examinar la salida para ver qué puede aprender de ella. Si más adelante se desea para obtener información similar en la pantalla de otro ordenador, usted sabrá cómo obtenerlo.
Para obtener información aún más técnica, puede utilizar la opción -ext all con xpdyinfo.
La extensión es el nombre de una extensión X, que es un módulo de software que proporciona capacidades extendidas a X. (El comando xpdyinfo básico, sin opciones, muestra todos las extensiones disponibles.)

Ejemplos:
xdpyinfo
xdpyinfo con ext

Xwininfo

Puede obtener información técnica detallada acerca de una ventana específica con la xwininfo . En uso básico, el xwininfo , le pide que mueva el cursor del ratón sobre una ventana, y haga clic.
El resultado es una lista de datos variados sobre la ventana que ha hecho clic, tales como su tamaño, ubicación, y número de identificación. Alternativamente, puede utilizar -id id o -name name para especificar el id de ventana o por el número de identificación o nombre, o con -root se puede utilizar para especificar la raíz ventana, es decir,
toda la pantalla.

Ejemplos:
Xwininfo seleccionando una xterm
Xwininfo con -root

XDMCP

X es una red habilitada para Interfaz gráfica de usuario. Este hecho tiene muchas consecuencias importantes, y uno de ellos se refiere a la interfaz gráfica de usuario de sistema de acceso para Linux . Este sistema emplea un protocolo de inicio de sesión de red, el X Display Manager Control Protocol (XDMCP). Para controlar el acceso remoto, un servidor XDMCP se ejecuta en un ordenador y escucha las conexiones desde los servidores de equipos remotos . Para hacer frente a los inicios de sesión local, un XDMCP servidor se ejecuta en un equipo y empieza como un servidor del equipo local X. El servidor XDMCP a continuación gestiona el servidor X local de pantalla, es decir, pone un inicio de sesión clasico donde nos pide usuario y contraseña.

Introduciendonos:

Tres servidores de XDMCP son comunes en Linux: el gestor de pantalla X (XDM), el
KDE Display Manager (KDM), y el de GNOME Display Manager (GDM). Un poco más de
opciones de servidores XDMCP también están disponibles, pero estos tres son los más importantes. Como se puede adivinar por su nombre, KDM y GDM están asociados con el KDE y GNOME, respectivamente, pero no limita su elección de entorno de escritorio. La mayoría de las distribuciones de Linux puede funcionar tanto con GDM o KDM como el servidor por defecto XDMCP, pero se puede cambiar la que utiliza el sistema si no te gusta el valor por defecto.

Corriendo un servidor XDMCP:
Muchos metodos existen para poder arrancar un servidor XDMCP. Los dos mas conocidos son lazando este servicio tras el /etc/inittab o tras un demonio en con SysV script.
Independientemente de estos metodos muchas distrubuciones configuran este arranque de XDMCP cuando arranca en determino runlevel (5 o 3, dependiendo de la distribucion).
Como se vio anteriormente en el inittab tenemos algo como esto:
id:5:initdefault:
Pero en algunas distribuciones este se lanza atraves de script (gdm,xdm,kdm).
Tambien podemos configurar un poco esto con ciertos archivos:

Selección de archivo de configuración: algunas distribuciones ocultan la opción de servidor XDMCP en un archivo de configuración, a menudo en el directorio /etc/sysconfig . En Fedora, el archivo /etc/sysconfig/desktop establece la variable DISPLAYMANAGER a XDM, KDM o GDM. En SUSE Linux, /etc/sysconfig/displaymanager establece la variable DISPLAYMANAGER de una manera similar, pero usando los nombres de pantalla en minuscula.

Selección a través de script SysV: En distribuciones Debian y derivados, como Ubuntu, el displaymanager se establece a través de la elección del script SysV de inicio con una secuencia de comandos para usar gdm con gdm, kdm con KDM, y así sucesivamente. De forma predeterminada, sólo un servidor XDMCP está instalado, así que si quieres cambiar el servidor XDMCP, es posible que necesite instalar
el servidor deseado.

Configurando un Display Manager:
El gestor de ventanas es la herramienta para administrar las sesiones de X en las pantallas tanto físicas como a nivel local como a través de la red. Parte de su trabajo es manejar la autenticación de usuarios a través de una pantalla gráfica de login, que sustituye a la entrada familiar en modo texto.Hay tres gestores de visualización principal implementados con Linux: xdm, kdm y gdm.

Configurando XDM:

El gestor de pantalla X (XDM) es un programa que permite a una sesión gráfica
empezar en un servidor de X.
xdm se distribuye como parte de X. Org y está configurado por una serie de archivos que se encuentran en / etc/X11/xdm. Estos archivos incluyen:

Xaccess
Este archivo controla las solicitudes entrantes de sistemas remotos.
Xresources
Mantiene la configuración en formación de algunos recursos xdm, incluyendo la pantalla de login gráfica. Este archivo puede ser editado para modificar la apariencia de la pantalla de inicio xdm.
Xservers
Esto asocia los nombres X para mostrar (: 0, 1, …) ya sea con el servidor X local o una pantalla externa, como un terminal de X.
Xsession
Este archivo contiene unos script xdm que se inicia después de un inicio de sesión con éxito. Por lo general, busca. Xsession en el directorio home del usuario y ejecuta los comandos que se encuentran allí. Si dicho archivo no existe, Xsession arranca los valores por defectos de nuestro windows manager y sus aplicaciones.
Xsetup_0
Este archivo es un script iniciado antes de la pantalla gráfica de login. A menudo incluye
comandos para configurar los colores, gráficos de pantalla, o ejecutar otros programas. Este script es ejecutado como root.
xdm-config
Este asocia el archivo de configuración de recursos de xdm con los otros archivos en esta lista. Por lo general, no es necesario hacer cambios en este archivo a menos que un experto en administraciónr planea personalizar la configuración de xdm.

Si quisieramos instalar xdm tendriamos que buscar este paquete:
xorg-x11-xdm.i386 : X.Org X11 xdm – X Display Manager

Los archivos de xdm:

[root@localhost ~]# ls -la /etc/X11/xdm/
total 128
drwxr-xr-x 3 root root  4096 Nov 26 20:55 .
drwxr-xr-x 9 root root  4096 Nov 26 19:05 ..
drwx------ 3 root root  4096 Nov 26 19:08 authdir
-rwxr-xr-x 1 root root   510 Jan 26  2010 GiveConsole
-rwxr-xr-x 1 root root   244 Jan 26  2010 TakeConsole
-rw-r--r-- 1 root root  3608 Nov 26 19:41 Xaccess
-rw-r--r-- 1 root root  1422 Nov 26 19:36 xdm-config
-rwxr-xr-x 1 root root   191 Jan 26  2010 Xreset
-rw-r--r-- 1 root root  2642 Nov 26 20:55 Xresources
-rw-r--r-- 1 root root 12288 Nov 26 20:43 .Xresources.swp
-rw-r--r-- 1 root root   496 Nov 26 19:40 Xservers
-rwxr-xr-x 1 root root  1073 Jan 26  2010 Xsession
-rwxr-xr-x 1 root root  1017 Nov 26 20:39 Xsetup_0
-rwxr-xr-x 1 root root   189 Jan 26  2010 Xstartup
-rwxr-xr-x 1 root root   303 Jan 26  2010 Xwilling
[root@localhost ~]#

XDM es el mas simple de todos los XDMCP. Este acepta usuarios y password pero no habilita a los usuarios a hacer otro tipo de accion, como elegir tipo de ambiente de escritorio queremos correr.(esto se hace atraves de archivos de configuracion de usuarios).
Uno de los archivos de configuracion el /etc/X11/xdm/xdm-config que ya viene por defecto para que funcione de manera local, se puede habilitar para que puede recibir conexiones remotas y para eso tendremos que mirar esta linea:

DisplayManager.requestPort: 0

Esta linea permite que nadie se puede conectar al puerto convencional que escucha xdm.
Para activar este como un XDM que permita conexiones remotas tendriamos que ponerlo en 177, el puerto tradicional de xdmcp y luego restartear xdm.

El archivo /etc/X11/xdm/Xaccess es otro importante punto a tocar.
Si XDM esta configurado para permitir accesos remotos, este otro archivo es el que me va a indicar quien es capaz de acceder a nuestro servidor XDMCP.
El * indica que todos puende acceder.
* CHOOSER BROADCAST
y luego podriamos poner
*.educacionit.com
director.itrestauracion.com.ar
*.redhat.com

Tambien podriamos cambiar muchas mas cosas en /etc/X11/xdm/Xresources , en donde van a cambiar aquellos recursos que estan basados en programas X-based. Por ejemplos podriamos cambiar el texto de logueo tocando algunos de estos ejemplos:
Prestar atencion que los comentarios empiezan con !
! Xresources file
xlogin*borderWidth: 10
xlogin*greeting: Welcome to Linux on CLIENTHOST
xlogin*namePrompt: Login:\040
xlogin*fail: Login incorrect – try again!
xlogin*failColor: red
xlogin*Foreground: Yellow
xlogin*Background: MidnightBlue

Tambien podriamos configurar nuestro /etc/X11/xdm/Xservers para poder incluir lineas de comando que encontramos en /etc/X11/xorg.conf. Por ejemplo si quisieramos cambiar la profundidad de color, lo harias como -bpp (bit por pixel) para nuestra configuracion local.
# Xservers file
:0 local /usr/X11R6/bin/X -bpp 24

Para incluir programas adicionales o seteos en la pantalla de login podriamos ponerlo en /etc/X11/xmd/Xsetup_0. En el siguiente ejempño cambiariamos el color de fondo del X Display a un color color solido y agregariamos un reloj.

# Xsetup
/usr/bin/xsetroot -solid “#356390″
/usr/bin/xclock -digital -update 1 -geometry -5-5 &

Para lograr que nuesto XDM inicie automaticamente en un sistema redhat.
Tendriamos que tocar el archivo:
/etc/inittab y cambiar lo siguiente:
id:3:initdefault:
a
id:5:initdefault:

Y podriamos chequear esta otra linea.
x:5:respawn:/etc/X11/prefdm -nodaemon
como ven no hace referencia a prefdm pero si analizamos ese script.

[root@localhost ~]# cat /etc/X11/prefdm
#!/bin/sh

PATH=/sbin:/usr/sbin:/bin:/usr/bin

# shut down any graphical boot that might exist
if [ -x /usr/bin/rhgb-client ]; then
    /usr/bin/rhgb-client --quit
fi

# We need to source this so that the login screens get translated
[ -f /etc/sysconfig/i18n ] && . /etc/sysconfig/i18n

# Run preferred X display manager
preferred=
if [ -f /etc/sysconfig/desktop ]; then
	. /etc/sysconfig/desktop
	if [ "$DISPLAYMANAGER" = GNOME ]; then
		preferred=/usr/sbin/gdm
	elif [ "$DISPLAYMANAGER" = KDE ]; then
		preferred=/usr/bin/kdm
	elif [ "$DISPLAYMANAGER" = XDM ]; then
	        preferred=/usr/bin/xdm
        elif [ -n "$DISPLAYMANAGER" ]; then
		preferred=$DISPLAYMANAGER
	fi
fi

shopt -s execfail

[ -n "$preferred" ] && exec $preferred "$@" >/dev/null 2>&1 /dev/null 2>&1 /dev/null 2>&1 /dev/null 2>&1 

Como ven en el script primero busca en el archivo que se define en /etc/sysconfig/desktop y si ahi no le encuentra prueba arrancar los clasicos gdm,kdm y por ultimo xdm.

Iniciando Sesion:

Para eso tendremos que crear este archivo en nuestro home directory.

[root@localhost ~]# cat .xsession
exec xterm &
exec xclock &
exec xeyes &
startkde
[root@localhost ~]#

Con este archivo lo que hacemos es una vez que inicie xdm y nos de login vamos a ingresar nuestro usuario y clave para que luego lea este archivo y arranque nuestra sesion

Con esto ya vimos un resumen de XDM pero ahora la mala noticia es que ya no se usa mas por default xdm por diversos temas de seguridad y porque kdm y gdm son mas chulos jeje.

Configurando GDM:
Para instalarlo en una version red hat:
yum groupinstall "GNOME Desktop Environment"

Archivos de configuracion:
[root@localhost gdm]# ls -l
total 80
-rw-r--r-- 1 root root 2633 Dec 26 23:47 custom.conf
drwxr-xr-x 2 root root 4096 Nov 25 23:58 Init
-rw-r--r-- 1 root root 4048 Sep 5 2009 locale.alias
drwxr-xr-x 2 root root 4096 Nov 25 23:58 modules
drwxr-xr-x 2 root root 4096 Nov 25 23:58 PostLogin
drwxr-xr-x 2 root root 4096 Nov 25 23:58 PostSession
drwxr-xr-x 2 root root 4096 Nov 25 23:58 PreSession
-rw-r--r-- 1 root root 71 Sep 5 2009 securitytokens.conf
-rwxr-xr-x 1 root root 5536 Sep 5 2009 XKeepsCrashing
lrwxrwxrwx 1 root root 21 Nov 25 23:58 Xsession -> ../X11/xinit/Xsession
[root@localhost gdm]#

El mas conocido y que podemos tocar mas cosas es el gdm.conf

Un ejemplo de su contenido con configuracion extra:

#
#
#
#
#
#
#
#
For full reference documentation see the GNOME help browser under
GNOME|System category. You can also find the docs in HTML form on

http://www.gnome.org/projects/gdm/

NOTE: Some values are commented out, but show their default values.
that begin with "#" are considered comments.
Lines
Have fun!
[daemon]
# Automatic login, if true the first local screen will automatically logged
# in as user as set with AutomaticLogin key.
AutomaticLoginEnable=false
AutomaticLogin=
# Timed login, useful for kiosks.
# amount of time.
TimedLoginEnable=false
TimedLogin=
TimedLoginDelay=30
Log in a certain user after a certain
# The GDM configuration program that is run from the login screen, you
# should probably leave this alone.
#Configurator=/usr/sbin/gdmsetup --disable-sound --disable-crash-dialog
# The chooser program. Must output the chosen host on stdout, probably you
# should leave this alone.
#Chooser=/usr/lib/gdm/gdmchooser
Change gdmlogin to gdmgreeter
# The greeter for xdmcp logins, usually you want a less graphically
# intensive greeter here so it's better to leave this with gdmlogin
#RemoteGreeter=/usr/lib/gdm/gdmlogin

En las versiones Ubuntu tenemos toda esta info en /etc/gdm/gdm.schemas

Para poder activar conexiones xdmp tan solo agregar en el modulo
[xdmcp]
Enable=1

Luego en el cliente cambiar /etc/hosts
comentar
#127.0.0.1
y agregar
ipremota localhost

Si se pueden conectar sin retocar esas lineas mejor, sino comentenlas y prueben.

Instalando KDM

yum install kdm

[root@localhost gdm]# ls -l /etc/kde
total 16
drwxr-xr-x 2 root root 4096 Nov 26 19:57 env
drwxr-xr-x 3 root root 4096 Nov 26 19:56 xdg
[root@localhost gdm]#

Cambiando entre desktops
En sistemas red hat:
[root@localhost menus]# yum install switchdesk-gui.noarch switchdesk.noarch

[root@localhost ~]# cat /etc/sysconfig/desktop
DESKTOP= "GNOME"
DISPLAYMANAGER= "gdm"
[root@localhost ~]#

Bueno ahora supongamos que queremos ejecutar remotamente sesiones o aplicaciones de nuestro servidor en otra maquina.

Para hacer poder aprovechar los recursos de nuestra maquina servidor y usar las demas como cliente de ella vamos a hacer lo siguiente:

En una maquina cliente ejecutamos:
1)
xinit, si ya estamos en una grafica tan solo abrimos una terminal

2)Luego hacemos xhost +ipremota

3)Luego nos logueamos al equipo remoto con ssh.

4) Luego exportamos la variable DISPLAY, export DISPLAY=iplocal:0.0

5)Ahora podemos ejecutar una aplicacion.
Como ven estamos en la maquina remota ejecutando la aplicacion pero desde nuestra estacion fisica de trabajo.

6)Ahora podriamos probar levantar toda una grafica.

7) Por ultimo podemos hacer con ssh un forwardeo...

8) La yapa algo mas descabellado e inutil, levantar la grafica remota dentro de mi grafica..

Bueno esto es todo...

Fuentes:
[1]http://tldp.org/HOWTO/XDMCP-HOWTO/procedure.html
[2]http://codeghar.wordpress.com/2009/06/11/remote-login-with-gdm-and-vnc-on-fedora-11/
[3]http://www.linuxparatodos.net/portal/staticpages/index.php?page=11-como-x-remoto
[4]http://www.estrellateyarde.org/so/x-remoto-display-manager
[5]http://es.w3support.net/index.php?db=so&id=754707
[6]http://tldp.org/HOWTO/XDM-Xterm/config.html
[7]http://sicutdeux.wordpress.com/2009/08/12/acceso-remoto-bajo-gnulinux-xdmcp/
[8]http://www.mail-archive.com/debian-user-spanish@lists.debian.org/msg33394.html
[9]http://www.itrestauracion.com.ar/?p=1149
[10]http://tldp.org/HOWTO/XWindow-User-HOWTO/index.html
[11]http://www.faqs.org/docs/Linux-HOWTO/XDMCP-HOWTO.html
[12]http://linux.derkeiler.com/Mailing-Lists/RedHat/2005-11/0384.html
[13]http://www.faqs.org/docs/lnag/lnag_xwindows.html#GUI_login

Share
This entry was posted in Administracion, Lpi and tagged , . Bookmark the permalink.

Comments are closed.