IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Linux Professional Institute Certificate. LPIC-1

Lpic1 large.gif
Certificat LPIC-1
Examen: 102 (torneu a la resta de temes)
Fitxers: LPI106.2.pdf (LPI106.2.odp)
Objectius: http://www.lpi.org/eng/certification/the_lpic_program/lpic_1/exam_102_detailed_objectives
Dipòsit SVN: https://svn.projectes.lafarga.cat/svn/lpi/Materials/Examen_102/106.2
Usuari: anonymous
Paraula de pas: qualsevol paraula de pas

Objectius del tema

106.2. Configurar un gestor de pantalla
Objective.jpg
060317 Icon - Theory of Knowledge v01 pdc.jpg

Àrees Clau de Coneixement:

Icon list.jpg

La següent és una llista parcial de fitxers, termes i utilitats utilitzades:

Text-editor.svg

Apunts: LPI 106.2. Configurar un gestor de pantalla

Plantilla per prendre apunts

Gestors de pantalla

XDM

És el gestor de pantalla per defecte del servidor X. El podeu instal.lar amb:

$ sudo apt-get install xdm

Us demanarà que indiqueu quin és el gestor de pantalla que voleu utilitzar per defecte.

NOTA: Podeu tornar a activar un altre gestor de pantalla reconfigurant-lo. Pe exemple: $ sudo dpkg-reconfigure gdm

Els fitxers instal·lats són:

Fitxers de configuració:

$ dpkg -L xdm | grep etc
/etc
/etc/X11
/etc/X11/app-defaults
/etc/X11/app-defaults/Chooser
/etc/X11/xdm
/etc/X11/xdm/Xaccess
/etc/X11/xdm/Xreset
/etc/X11/xdm/Xresources
/etc/X11/xdm/Xservers
/etc/X11/xdm/Xsession
/etc/X11/xdm/Xsetup
/etc/X11/xdm/Xstartup
/etc/X11/xdm/Xwilling
/etc/X11/xdm/xdm-config
/etc/X11/xdm/xdm.options
/etc/init.d
/etc/init.d/xdm
/etc/logrotate.d
/etc/logrotate.d/xdm
/etc/pam.d
/etc/pam.d/xdm

Configuració

Els Fitxers de configuració són:

$ dpkg -L xdm | grep etc
/etc
/etc/X11
/etc/X11/app-defaults
/etc/X11/app-defaults/Chooser
/etc/X11/xdm
/etc/X11/xdm/Xaccess
/etc/X11/xdm/Xreset
/etc/X11/xdm/Xresources
/etc/X11/xdm/Xservers
/etc/X11/xdm/Xsession
/etc/X11/xdm/Xsetup
/etc/X11/xdm/Xstartup
/etc/X11/xdm/Xwilling
/etc/X11/xdm/xdm-config
/etc/X11/xdm/xdm.options
/etc/init.d
/etc/init.d/xdm
/etc/logrotate.d
/etc/logrotate.d/xdm
/etc/pam.d
/etc/pam.d/xdm

GDM

GDM són les inicials de Gnome Display Manager el gestor de pantalla per defecte de Gnome. GDM és el responsable de gestionar les pantalles en sistemes operatius que utilitzen Gnome.

Entre les seves funcions podem destacar:

  • Autenticar els usuaris
  • Iniciar la sessió de l'usuari seleccionat
  • Finalitzar la sessió
  • GDM és accessible per a usuaris amb discapacitats.

GDM permet controlar el dispositiu de consola principal X i executar-lo des de una consola virtual. S'integra amb altres programes com el Fast User Switch Applet (FUSA) o el gnome-screensaver per gestionar múltiples pantalles per a múltiples usuaris i també suporta XDMCP.

Amb independèndia del tipus de pantalla, GDM realitza les següents accions:

  • Inicia el servidor X
  • Executa l'script Init (/etc/gdm/Init/Default) com l'usuari root
  • Executa la pantalla principal de login coneguda com Greeter. Aquesta última es executada per l'usuari i grups sense privilegis gdm.

L'objectiu principal del greeter és autenticar l'usuari. S'utilitza Pluggable Authentication Modules (PAM) per tal de realitzar aquesta tasca. L'autenticació més habitual és la basada en usuari i paraula de pas però es podrien utilitzar altres (p.ex petjada digital o Smart Cards).

GDM i PAM es poden configurar per no requerir cap tipus d'autenticació i permetre l'entrada automàtica al sistema.

A més de l'autenticació normalment es permet:

  • Escollir el tipus de sessió/entorn gràfic a executar (Gnome, KDE, xterm, altres...)
  • Escollir l'idioma de la sessió
  • Tipus de teclat
  • Selector de XDMCP si està activat.
  • Accions de control de l'ordinador: sortir, aturar, tornar a iniciar, hibernar...
Es pot utilitzar un greeter amb suport per a cares (face browser). La informació de sessió de l'usuari és manté al fitxer: ~/.dmrc
  • Després d'executar el login s'executa l'script PostLogin com a superusuari.
  • S'executa l'script PreSession com a root.
  • La sessió ja està iniciada.

Al aturar una sessió s'executa:

  • l'script PostSession com a root.

Tots els script comentats anteriorment tenen Hooks de forma que les aplicacions puguin canviar el comportament per defecte de l'inici i finalització de sessió. Els hooks es col·loquen a les carpetes:

/etc/gdm/Init
/etc/gdm/PostLogin
/etc/gdm/PreSession
/etc/gdm/PostSession

Per exemple es podrien utilitzar hooks per provaocar que la home de l'usuari es crees automàticament a l'inici de sessió i s'elimines al finalitzar la sessió (usuari congelat).

Configuració

gdmsetup

Aquesta comanda executa l'aplicació gràfica que trobem a:

Sistema > Adminitració > Finestra d'entrada

La podem executar des de la línia de comandes amb:

$ gksu /usr/sbin/gdmsetup

NOTA: A les noves versions d'Ubuntu s'ha supersimplicat l'eina gdmsetup de forma que actualment permet fer molt poques configuracions

Fitxers de configuració

Els fitxers de configuració a una Ubuntu 9.10 són:

$ dpkg -L gdm | grep etc
/etc
/etc/dbus-1
/etc/dbus-1/system.d
/etc/dbus-1/system.d/gdm.conf
/etc/gdm
/etc/gdm/gdm.schemas
/etc/gdm/Xsession
/etc/gdm/Init
/etc/gdm/Init/Default
/etc/gdm/PostLogin
/etc/gdm/PostLogin/Default.sample
/etc/gdm/PreSession
/etc/gdm/PreSession/Default
/etc/gdm/PostSession
/etc/gdm/PostSession/Default
/etc/pam.d
/etc/pam.d/gdm
/etc/pam.d/gdm-autologin
/etc/init
/etc/init/gdm.conf
/etc/init.d
/etc/init.d/gdm

En versions noves de Gnome no existeix el fitxer /etc/gdm/gdm.conf. El que trobareu a la carpeta de configuració és:

$ ls /etc/gdm/
failsafeBlacklist  failsafeDexconf  failsafeXinit  failsafeXServer  gdm.schemas  Init  PostLogin  PostSession  PreSession  Xsession

El fitxer principal de configuració és gdm.schemas.

/etc/gdm/gdm-cdd.conf
$ sudo joe /etc/gdm/gdm-cdd.conf

Cada cop que es fa un canvi cal executar:

gdmflexiserver --command="UPDATE_CONFIG <configuration key>"

Activar XDMCP:

# The chooser program.  Must output the chosen host on stdout, probably you
# should leave this alone.
Chooser=/usr/lib/gdm/gdmchooser

# The greeter for attached (non-xdmcp) logins.  Change gdmlogin to gdmgreeter
# to get the new graphical greeter.
#Greeter=/usr/lib/gdm/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

Exemples de configuració

xsplash

L'eina que mostra un splash abans d'executar GDM és xsplash. El podeu provar amb:

$ sudo /usr/bin/xsplash --gdm-session --daemon

Configuració de les opcions d'aturada del sistema

Si editeu el fitxer de configuració de GDM:

$ sudo gedit /etc/gdm/gdm.conf

I busqueu una secció similar a la següent:

# System command support.
#
# Reboot, Halt and suspend commands, you can add different commands separated
# by a semicolon.  GDM will use the first one it can find.
RebootCommand=/sbin/shutdown -r now "Rebooted via gdm."
HaltCommand=/sbin/shutdown -h now "Shut Down via gdm."
SuspendCommand=/usr/sbin/pm-suspend
HibernateCommand=/usr/sbin/pm-hibernate

Veureu quines són les comandes que s'executen al aturar el sistema des de Gnome.

GDM Face Browser

És la interfície que permet fer el login d'usuari fent clic a una imatge (avatar). Aquesta feature es pot activar/desactivar amb el paràmetre /apps/gdm/simple-greeter/disable_user_list de GConf. Per defecte està activat ie s mostren tots els usuaris del fitxer /etc/passwb (amb el UID prou alt per no ser considerats usuaris de sistema)

NOTA: Cal tenir en compte que en entorns amb molts usuaris GDM pot tenir problemes de rendiment

Normalment els usuaris que entre més sovint al sistema es mostren al principi.

Es possible escriure els primers caràcters del nom d'usuari i es seleccionarà automàticament la cara de l'usuari.

Les icones d'usuari les pot gestionar el superusuari del sistema o les pot configurar l'usuari.

  • Instal·lades globalment (per system basis): /usr/share/pixmaps/faces/ on el noms del fitxer és el nom de l'usuari. Han de ser llegibles per l'usuari gdm i estar en un format estandard com PNGo JPEG.
  • Instal·lades per l'usuari (per user basis): Es buscarà la imatge a ~/.face i si no es troba a ~/.face.icon o segons el valor del paràmetre "face/picture=" al fitxer ~/.gnome2/gdm file.

Si no hi ha icona es mostrarà la icona per defecte "stock_person"

NOTA: GDM no intentarà llegir les cares dels usuaris si les HOMEs dels usuaris són remotes, per exemple per NIS o NFS

Fitxers de log

GDM utilitza syslog per a crear els seus fitxers de log. Es pot utilitzar els fitxers de log per depurar errors, consultar l'estatus de l'aplicació, etc.

NOTA: Si s'executa el dimoni GDM amb l'opció --debug" aleshores es mostren més missatges als fitxers de log

Normalment els fitxer de log es guarden a:

/var/log/gdm/
$ sudo ls /var/log/gdm/
:0-greeter.log	  :0.log    :0-slave.log    :1-greeter.log    :1.log.1	      :1-slave.log.2	:2.log.1	  :3.log	  :4-greeter.log.1  :5-greeter.log
:0-greeter.log.1  :0.log.1  :0-slave.log.1  :1-greeter.log.1  :1.log.2	      :1-slave.log.3	:2-slave.log	  :3.log.1	  :4.log	    :5.log
:0-greeter.log.2  :0.log.2  :0-slave.log.2  :1-greeter.log.2  :1.log.3	      :2-greeter.log	:2-slave.log.1	  :3-slave.log	  :4.log.1	    :5-slave.log
:0-greeter.log.3  :0.log.3  :0-slave.log.3  :1-greeter.log.3  :1-slave.log    :2-greeter.log.1	:3-greeter.log	  :3-slave.log.1  :4-slave.log	    xsplash-gdm.log
:0-greeter.log.4  :0.log.4  :0-slave.log.4  :1.log	      :1-slave.log.1  :2.log		:3-greeter.log.1  :4-greeter.log  :4-slave.log.1    xsplash-user.log


Els resultats de la sessió es guarden al fitxer:

~/.xsession-errors

Aquest fitxer es sobreescrit a l'inici de cada sessió.

Autologin

Al fitxer /etc/gdm/gdm.schemas cal modificar els paràmetres:

   <schema>
     <key>daemon/AutomaticLoginEnable</key>
     <signature>b</signature>
     <default>false</default>
   </schema>
   <schema>
     <key>daemon/AutomaticLogin</key>
     <signature>s</signature>
     <default></default>
   </schema>
   <schema>
     <key>daemon/TimedLoginEnable</key>
     <signature>b</signature>
     <default>false</default>
   </schema>
   <schema>
     <key>daemon/TimedLogin</key>
     <signature>s</signature>
     <default></default>
   </schema>
   <schema>
     <key>daemon/TimedLoginDelay</key>
     <signature>i</signature>
     <default>30</default>
   </schema>

Recursos:


Temes

$ sudo apt-get install gdm-themes

Els temes s'instal·len a la carpeta /usr/share/gdm/themes.

Canviar part de l'aparença de GDM
  • Atureu la sessió i torneu a gdm
  • Canvieu a una consola virtual amb Ctrl-Alt-F1
  • Entreu el vostre usuaris i paraula de pas
  • Executeu:
$ export DISPLAY=:0.0
  • Executeu l'aplicació de control de Gnome:
$ sudo -u gdm gnome-control-center
  • Torneu a GMD amb Ctrl-ALT-F7
  • Aneu a aparences i podeu canvia les icones, els fons de pantalla, les fonts, etc...


També podeu executar:

$ gksudo -u gdm dbus-launch gnome-appearance-properties
gdm2setup
$ sudo add-apt-repository ppa:gdm2setup/gdm2setup
$ sudo apt-get update
$ sudo gdm2setup 
$ gksu gdm2setup

Easter Eggs

Segons els codi font del fitxer "gui/guilogin.c" a la funció "evil", su poseu els següents noms d'usuari:

  • Dancing login: Start Dancing i Stop Dancing (només funciona amb l'estàndard Greeter)
  • Gimme Random Cursor: es pot utilitzar de forma repetida
  • Require Quarter o Require Quater:

NOTA: Només funcionen amb estandard greeter

Consulteu també Easter Eggs

KDM

KDM és el gestor de pantalla de l'entorn d'escriptori KDE. El podeu instal·lar amb:

$ sudo apt-get install kdm

Es pot tornar a reconfigurar en qualsevol moment mab:

$ sudo dpkg-reconfigure kdm

Els executables són:

$ dpkg -L kdm | grep bin
/usr/bin
/usr/bin/genkdmconf
/usr/bin/kdm
/usr/bin/kdmctl

Fitxers de configuració de KDM

Els fitxers instal·lats són:

Fitxers de configuració:

$ dpkg -L kdm | grep etc
/etc
/etc/default
/etc/default/kdm.d
/etc/init
/etc/init/kdm.conf
/etc/init.d
/etc/pam.d
/etc/pam.d/kdm
/etc/pam.d/kdm-np
/etc/logrotate.d
/etc/logrotate.d/kdm
/etc/kde4
/etc/kde4/kdm
/etc/kde4/kdm/kdm.options
/etc/kde4/kdm/README
/etc/kde4/kdm/Xaccess
/etc/kde4/kdm/Xreset
/etc/kde4/kdm/Xsession
/etc/kde4/kdm/Xsetup
/etc/kde4/kdm/Xstartup
/etc/kde4/kdm/Xwilling
/etc/kde4/kdm/backgroundrc
/etc/kde4/kdm/kdmrc
/etc/init.d/kdm

Control del gestor de pantalla

La majoria de distribucions tracten al gestors de pantalla com si es tractessin de serveis (dimonis) del sistema i utilitzen els scripts SystemV per controlar el gestor de pantalla, per tant els scripts que ens permeten gestionar els DM són:

/etc/init.d/gdm per a Gnome DM
/etc/init.d/kdm per a KDE DM
/etc/init.d/xdm per a X DM

Si executeu:

$ sudo /etc/init.d/gdm 
Usage: /etc/init.d/gdm COMMAND

On COMMAND pot ser:

  • start

start|stop|restart

  • status:
  • reload|force-reload: Torna a configurar el gestor de pantalla sense haver de tornar-lo a iniciar.

Per exemple:

$ sudo /etc/init.d/gdm status
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service gdm status 

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the status(8) utility, e.g. status gdm
gdm start/running, process 1091

Ens indica que gdm està en execució i en indica quin és el seu PID (pot ser útil per matar el procés amb kill si pel que sigui es penja)

NOTA: Observeu que a Ubuntu s'està utilitzant upstart i se us recomana utilitzar les ordes d'upstart reload, restart, start, etc... De fet és el que fa l'script.

Ctrl+Alt+Backspace

La combinació de tecles Ctrl+Alt+Backspace en molts sistemes permet tornar a iniciar el gestor de pantalla.

IMPORTANT: En versions modernes d'Ubuntu s'ha desactivat aquesta opció.

Executar el gestor de pantalla durant l'arrancada del sistema

La majoria de distribucions configuren el gestor d'arrencada per tal que s'executi automàticament durant l'arrancada del sistema, però no totes ho fan de la mateixa forma. Algunes distribucions com Red Hat o Fedora tenen un nivell d'execució (RunLevel) dedicat per a l'entorn gràfic. Aquest nivell sol ser el nivell 5. Si baixem al nivell d'execució anterior (el 3 ja que el 4 no s'utilitza i està reservat per a usos futurs) aturarem l'entorn X:

$ sudo telinit 3

Altres distribucions com les basades en Debian no tenen 5 nivells d'execució i només van fins al nivell d'execució 2. En aquest cas cal utilitzar directament l'script SystemV del gestor d'arrancada:

$ sudo /etc/init.d/gdm stop

A debian es pot indicar que l'script s'ha d'executar a l'inici amb:

$ sudo update-rc.d gdm defaults
update-rc.d: warning: /etc/init.d/gdm missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
 Adding system startup for /etc/init.d/gdm ...
   /etc/rc0.d/K20gdm -> ../init.d/gdm
   /etc/rc1.d/K20gdm -> ../init.d/gdm
   /etc/rc6.d/K20gdm -> ../init.d/gdm
   /etc/rc2.d/S20gdm -> ../init.d/gdm
   /etc/rc3.d/S20gdm -> ../init.d/gdm
   /etc/rc4.d/S20gdm -> ../init.d/gdm
   /etc/rc5.d/S20gdm -> ../init.d/gdm

Vegeu que s'executa al nivell 2. i s'atura a altres nivells.

Canviar la salutació dels gestor de pantalla

Els passos a seguir depenen del gestor d'arrancada.

GDM

$ sudo geany /usr/share/gconf/schemas/gdm-simple-greeter.schemas

Us interessa activar (negreta):

 <schema>
     <key>/schemas/apps/gdm/simple-greeter/banner_message_enable</key>
     <applyto>/apps/gdm/simple-greeter/banner_message_enable</applyto>
     <owner>gdm-simple-greeter</owner>
     <type>bool</type>
     <default>true</default>
     <gettext_domain>gdm</gettext_domain>
     <locale name="C">
       <short>Enable showing the banner message</short>
       <long>Set to true to show the banner message text.</long>
     </locale>
   </schema>
   <schema>
     <key>/schemas/apps/gdm/simple-greeter/banner_message_text</key>
     <applyto>/apps/gdm/simple-greeter/banner_message_text</applyto>
     <owner>gdm-simple-greeter</owner>
     <type>string</type>
     <default></default>
     <gettext_domain>gdm</gettext_domain>
     <locale name="C">
       <short>Missatge de prova</short>
       <long>Misastge llarg de prova.</long>
     </locale>
   </schema>

Canviar la profunditat de color per defecte del gestor de pantalla

Establir el gestor d'arrancada per defecte

$ cat /etc/X11/default-display-manager
/usr/sbin/gdm

Processos a executar durant l'inici de sessió X

$ sudo joe /etc/X11/Xsession.d/
20x11-common_process-args                    55gnome-session_gnomerc                      80im-switch
30x11-common_xresources                      60x11-common_localhost                       90consolekit
40x11-common_xsessionrc                      60xdg-user-dirs-update                       90gpg-agent
50x11-common_determine-startup               70pulseaudio                                 90x11-common_ssh-agent
52libcanberra-gtk-module_add-to-gtk-modules  75dbus_dbus-launch                           99x11-common_start


Manual

Consulteu:

XDMCP

XDMCP són les sigles de X Display Manager Control Protocol o Protocol de Control del gestor de pantalla, es tracta d'un protocol utilitzat en xarxes per a comunicar un conjunt d'ordinadors clients amb un servidor X remot. Permet iniciar una sessió gràfica en una màquina remota (els clients s'executen a la màquina remota i en local només s'utilitza el servidor X).

S'utilitza el protocol UDP i el port 177.

NOTA: Cal tenir en compte que no hi ha cap mena de xifratge i per tant no el podem considerar un protocol segur.

Els paràmetres que us interessen del fitxer /etc/gdm/gdm.schemas són:

   <schema>
     <key>xdmcp/Enable</key>
     <signature>b</signature>
     <default>false</default>
   </schema>
   <schema>
     <key>xdmcp/MaxPending</key>
     <signature>i</signature>
     <default>4</default>
   </schema>
   <schema>
     <key>xdmcp/MaxSessions</key>
     <signature>i</signature>
     <default>16</default>
   </schema>
   <schema>
     <key>xdmcp/MaxWait</key>
     <signature>i</signature>
     <default>30</default>
   </schema>
   <schema>
     <key>xdmcp/DisplaysPerHost</key>
     <signature>i</signature>
     <default>1</default>
   </schema>
   <schema>
     <key>xdmcp/Port</key>
     <signature>i</signature>
     <default>177</default>
   </schema>
   <schema>
     <key>xdmcp/HonorIndirect</key>
     <signature>b</signature>
     <default>true</default>
   </schema>
   <schema>
     <key>xdmcp/MaxWaitIndirect</key>
     <signature>i</signature>
     <default>30</default>
   </schema>
   <schema>
     <key>xdmcp/PingIntervalSeconds</key>
     <signature>i</signature>
     <default>15</default>
   </schema>
   <schema>
     <key>xdmcp/Willing</key>
     <signature>s</signature>
     <default>/etc/gdm/Xwilling</default>
   </schema>

TODO:

The GDM daemon can be configured to listen for and manage X Display Manage Protocol (XDMCP) requests from remote displays. By default XDMCP support is turned off, but can be enabled if desired. If GDM is built with TCP Wrapper support, then the daemon will only grant access to hosts specified in the GDM service section in the TCP Wrappers configuration file.

GDM includes several measures making it more resistant to denial of service attacks on the XDMCP service. A lot of the protocol parameters, handshaking timeouts, etc. can be fine tuned. The default configuration should work reasonably on most systems.

GDM by default listens for XDMCP requests on the normal UDP port used for XDMCP, port 177, and will respond to QUERY and BROADCAST_QUERY requests by sending a WILLING packet to the originator.

GDM can also be configured to honour INDIRECT queries and present a host chooser to the remote display. GDM will remember the user's choice and forward subsequent requests to the chosen manager. GDM also supports an extension to the protocol which will make it forget the redirection once the user's connection succeeds. This extension is only supported if both daemons are GDM. It is transparent and will be ignored by XDM or other daemons that implement XDMCP.

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

Refer to the "Security" section for information about security concerns when using XDMCP.

Vegeu també

Enllaços externs