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 |
106.2. Configurar un gestor de pantalla | |
---|---|
![]() |
|
![]() |
Àrees Clau de Coneixement: |
![]() |
La següent és una llista parcial de fitxers, termes i utilitats utilitzades: |
![]() |
Apunts: LPI 106.2. Configurar un gestor de pantalla |
É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
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 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:
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:
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:
Al aturar una sessió s'executa:
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).
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
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.
$ 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
L'eina que mostra un splash abans d'executar GDM és xsplash. El podeu provar amb:
$ sudo /usr/bin/xsplash --gdm-session --daemon
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.
É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.
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
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ó.
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:
$ sudo apt-get install gdm-themes
Els temes s'instal·len a la carpeta /usr/share/gdm/themes.
$ export DISPLAY=:0.0
$ sudo -u gdm gnome-control-center
També podeu executar:
$ gksudo -u gdm dbus-launch gnome-appearance-properties
$ sudo add-apt-repository ppa:gdm2setup/gdm2setup $ sudo apt-get update $ sudo gdm2setup $ gksu gdm2setup
Segons els codi font del fitxer "gui/guilogin.c" a la funció "evil", su poseu els següents noms d'usuari:
NOTA: Només funcionen amb estandard greeter
Consulteu també Easter Eggs
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
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
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|stop|restart
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.
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ó.
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.
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>
$ cat /etc/X11/default-display-manager /usr/sbin/gdm
$ 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
Consulteu:
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.