# Manual de referència del gestor de pantalla del GNOME

0.0
2008-09

El GDM és el gestor de pantalla del GNOME, un programa gràfic d'entrada.

Martin
K.
Petersen

    mkp@mkp.net

George
Lebl

    jirka@5z.com

Jon
McCann

    mccann@jhu.edu

Ray
Strode

    rstrode@redhat.com

Brian
Cameron

    Brian.Cameron@Oracle.COM

1998
1999
Martin K. Petersen
2001
2003
2004
George Lebl
2003
2007
2008
Red Hat, Inc.
2003
2011
Oracle i els seus associats. Tots els drets reservats.
Aquest manual descriu la versió 2.26.0 del gestor de pantalla del GNOME. Es va actualitzar per últim cop el 10/02/2009.
Josep Sanchez Mesegue
papapep@gmx.com
2013
Josep Sanchez Mesegue

## Termes i convencions utilitzats en aquest manual

Aquest manual descriu la versió 2.26.0 del gestor de pantalla del GNOME. Es va actualitzar per últim cop el 10/02/2009.

Seleccionador: un programa que s'utilitza per a seleccionar un amfitrió remot per a gestionar una pantalla remotament a la pantalla local (`gdm-host-chooser`).

FreeDesktop: l'organització que proporciona estàndards per a l'escriptori, com ara l'especificació d'entrada de l'escriptori que utilitza el GDM. http://www.freedesktop.org.

GDM: el Gestor de pantalla del GNOME. S'utilitza per a descriure el paquet de programari completament.

Rebedor: la finestra d'entrada gràfica (proporcionada pel `gnome-shell`).

PAM: mòduls de connectors d'autenticació

XDMCP: Protocol de gestió de pantalles X

Xserver: una implementació del sistema de finestres X. Per exemple el servidor X creat per la fundació X.org http://www.x.org.

Els camins que comencen amb una paraula entre parèntesis angulars són relatius al prefix d'instal·lació. Per exemple, `<share>/pixmaps/` es refereix a `/usr/share/pixmaps` si el GDM es va configurar amb `--prefix=/usr`.

## Vista general

### Introducció

El gestor de pantalla del GNOME (GDM) és un gestor de pantalla que implementa totes les funcions destacades que fan falta per a gestionar pantalles locals i remotes. El GDM es va escriure des de zero i no conté cap codi de l'XDM o de l'X Consortium.

Tingueu en compte que el GDM es pot configurar i que molts paràmetres de configuració poden afectar a la seguretat. En aquest document es ressalten els temes en què s'ha de vigilar.

Tingueu en compte que alguns sistemes operatius configuren el GDM per a comportar-se de forma diferent als valors per defecte que es descriuen en aquest document. Si el GDM no sembla que es comporta com s'explica aquí, comproveu si alguna configuració relacionada és diferent de la descrita aquí.

Per a obtenir més informació sobre el GDM, consulteu el lloc web del projecte a http://wiki.gnome.org/Projects/GDM.

For discussion or queries about GDM, refer to the discussion forum at https://discourse.gnome.org/tag/gdm. The archives of the previous mailing list are also a good resource to check to seek answers to common questions. The list was archived at https://mail.gnome.org/archives/gdm-list/ and has a search facility to look for messages with keywords.

Please submit any bug reports or enhancement requests to https://gitlab.gnome.org/GNOME/gdm/-/issues/.

### Estabilitat de la interfície

El GDM 2.20 i les versions anteriors admetien configuracions d'interfície estables. Tot i això, es va reescriure el codi totalment pel GDM 2.22 i no és del tot compatible amb les versions anteriors. Això és en part perquè ara funciona una mica diferent, de manera que algunes opcions no tenen cap sentit, entre altres coses perquè algunes opcions mai van tenir sentit i també perquè algunes funcions encara no s'han tornat a implementar.

Les interfícies que encara són compatibles de manera estable inclouen els scripts Init, PreSession, PostSession, PostLogin i Xsession. Algunes opcions de configuració del dimoni en el fitxer `<etc>/gdm/custom.conf` encara són compatibles. També encara són compatibles el `~/.dmrc` i les ubicacions del navegador d'imatges.

El GDM 2.20 i les versions anteriors permetien gestionar diverses pantalles amb diferents targetes gràfiques, com s'utilitza en entorns de terminal de servidor, l'entrada dins d'una finestra mitjançant un programa com l'Xnest o el Xephyr, el programa gdmsetup, els temes de rebedor basats en XML i la capacitat d'executar el seleccionador XDMCP des de la pantalla d'entrada. Aquestes funcions no s'han tornat a afegir durant la reescriptura de la versió 2.22.

### Descripció funcional

El GDM és el responsable de la gestió de les pantalles del sistema. Això inclou l'autenticació d'usuaris, l'inici de la sessió de l'usuari i la finalització d'aquesta. Les opcions de configuració del GDM estan descrites a la secció del document «Configuració del GDM». El GDM també és accessible per als usuaris amb discapacitats.

El GDM proporciona la capacitat de gestionar la consola principal de la pantalla i les pantalles executades mitjançant el VT. S'integra amb altres programes, com ara la miniaplicació del commutador d'usuari ràpid (FUSA) i l'estalvi de pantalla (gnome-screensaver) per a gestionar diverses pantalles a la consola mitjançant la interfície del terminal virtual (VT) del servidor X. També pot gestionar pantalles XDMCP.

Independentment del tipus de pantalla, el GDM realitzarà el següent quan gestioni la pantalla: iniciarà un procés del servidor X, seguidament executarà l'script `Init` com a usuari primari i iniciarà el programa rebedor a la pantalla.

El programa rebedor s'executa amb l'usuari/grup sense privilegis «gdm». Aquest usuari i grup són descrits a la secció «Seguretat» d'aquest document. Les funcions principals del programa rebedor són proporcionar un mecanisme per a seleccionar un compte per a entrar i per a conduir el diàleg entre l'usuari i el sistema en autenticar-se al compte. El procés d'autenticació és conduït pels mòduls dels connectors d'autenticació (Pluggable Authentication Modules o PAM). Els mòduls del PAM determinen quines preguntes (si n'hi ha) es mostren a l'usuari per a autenticar-lo. En sistemes convencionals, el programa rebedor sol·licitarà un nom d'usuari i una contrasenya per a autenticar. Tot i això, alguns sistemes es poden configurar per a utilitzar sistemes alternatius com ara l'empremta dactilar o lectors de targetes SmartCard. El GDM es pot configurar per a admetre aquestes alternatives en paral·lel amb extensions del rebedor d'entrada i l'opció `--enable-split-authentication``./configure` o només una a la vegada mitjançant el sistema de configuració PAM.

L'extensió de targetes intel·ligents es pot habilitar o inhabilitar mitjançant la clau del gsettings `org.gnome.display-manager.extensions.smartcard.active`.

Així mateix, l'extensió d'empremtes dactilars es pot habilitar o inhabilitar amb la clau del gsettings `org.gnome.display-manager.extensions.fingerprint.active`.

Es pot configurar el GDM i el PAM perquè no necessitin cap introducció, el que faria que el GDM iniciés automàticament una sessió, fet que pot ser útil en alguns entorns, com en un sistema d'un sol usuari o en un kiosk.

A més de l'autenticació, el rebedor permet a l'usuari seleccionar quina sessió vol iniciar i quin idioma vol utilitzar. Les sessions es defineixen amb fitxers que finalitzen amb el sufix .desktop i en podeu obtenir més informació a la secció «Configuració de la sessió d'usuari i l'idioma» d'aquest document. Per defecte, el GDM està configurat per a mostrar un navegador de cares de manera que l'usuari pugui seleccionar el seu compte d'usuari fent clic a una imatge en lloc d'haver d'introduir el seu nom d'usuari. El GDM manté la informació de la sessió i de l'idioma per defecte de l'usuari en el fitxer `~/.dmrc` i utilitzarà aquests valors si l'usuari no selecciona una sessió o idioma a la interfície gràfica d'usuari d'entrada.

Després d'autenticar un usuari, el dimoni executa primer l'script `PostLogin` i després l'script `PreSession` com a usuari primari. Després de l'execució d'aquests scripts, s'iniciarà la sessió de l'usuari. Quan l'usuari surti de la sessió, s'executarà l'script `PostSession`, de nou com a usuari primari. Aquests scripts estan pensats com a punts de personalització, tant per les distribucions com pels usuaris finals, per a personalitzar com es gestionen les sessions. Per exemple, utilitzant aquests punts de personalització podeu fer que una màquina creï el directori d'usuari $HOME sota demanda i el suprimeixi en sortir. La diferència entre els scripts `PostLogin` i `PreSession` és que l'script `PostLogin` s'executa abans de cridar el mètode pam_open_session, de manera que és el moment ideal per a fer qualsevol cosa que s'hauria d'executar abans d'iniciar la sessió d'usuari. L'script `PreSession` es crida després d'iniciar la sessió.

### El quadre rebedor

El programa rebedor del GDM mostra un quadre acoblat a la part inferior de la pantalla que proporciona funcions addicionals. Quan se selecciona un usuari, el quadre permet seleccionar la sessió, l'idioma i la distribució del teclat que es vol utilitzar durant la sessió. El selector de la distribució del teclat també canvia la distribució del teclat quan s'introdueix la contrasenya. El quadre també conté una àrea on els serveis d'entrada poden deixar icones d'estat. Alguns exemples d'icones d'estat poden ser una icona de bateria amb la utilització actual de bateria i una icona per a habilitar les funcions d'accessibilitat. El programa rebedor també proporciona botons que permeten a l'usuari aturar o tornar a iniciar el sistema. És possible configurar el GDM perquè no mostri els botons d'apagada i reinici. També es pot configurar mitjançant el PolicyKit (o mitjançant RBAC en Oracle Solaris) per a sol·licitar que l'usuari tingui l'autorització necessària abans d'acceptar la sol·licitud d'apagada o reinici.

Tingueu present que les característiques de la disposició de teclat només són disponibles en els sistemes que implementen les libxklavier.

### Accessibilitat

El GDM admet l'«Entrada accessible», que permet als usuaris entrar a la sessió d'escriptori fins i tot si no poden utilitzar fàcilment la pantalla, el ratolí o el teclat de la manera habitual. Hi ha disponibles les funcions de la tecnologia assistiva (AT) com ara el teclat en pantalla, el lector de pantalla, l'ampliador de pantalla i l'accessibilitat del teclat del servidor X AccessX. Si és necessari, també es pot canviar el text per a fer-lo més gran o mostrar icones i controls de contrast alt. Per a més informació sobre la configuració de les funcions d'accessibilitat, vegeu la secció «Configuració de l'accessibilitat» d'aquest document.

En alguns sistemes operatius és necessari assegurar-se que l'usuari del GDM és membre del grup «audio» per als programes de tecnologies assistives que utilitzen la sortida d'àudio (com ara el text-a-veu) per a funcionar.

### El navegador de cares del GDM

El navegador de cares és la interfície que permet als usuaris seleccionar el seu nom d'usuari en fer clic a una imatge. Es pot habilitar mitjançant la clau del GSettings org.gnome.login-screen disable-user-list i està habilitada de forma predeterminada. Si està inhabilitada, els usuaris han d'introduir el nom d'usuari complet a mà. Si està habilitat, es mostren tots els usuaris locals que hi ha disponibles per a entrar al sistema (tots els comptes d'usuari definits al fitxer /etc/passwd que tenen un intèrpret d'ordres vàlid i un UID suficientment alt) i els usuaris remots que han entrat recentment. El navegador de cares del GDM 2.20 i versions anteriors intentava mostrar tots els usuaris remots, fet que provocava problemes de rendiment en entorns d'empresa grans.

El navegador de cares està configurat per a mostrar els usuaris que entren amb més freqüència a la part superior de la llista. D'aquesta manera es facilita que els usuaris que entrin sovint puguin trobar ràpidament la seva imatge d'entrada.

El navegador d'imatges admet la «cerca en teclejar» que canvia dinàmicament la selecció de cares mentre l'usuari introdueix el nom d'usuari corresponent a la llista. Això significa que un usuari amb un nom d'usuari llarg només haurà d'introduir els primers caràcters del nom d'usuari abans que l'element correcte de la llista estigui seleccionat.

Les icones utilitzades pel GDM es poden instal·lar globalment per l'administrador del sistema o es poden ubicar al directori d'usuari. Si s'instal·len globalment haurien d'estar al directori `<share>/pixmaps/faces/` i el nom de fitxer hauria de ser el nom de l'usuari. Els fitxers d'imatge de cara haurien de ser una imatge estàndard que el GTK+ pugui llegir, com ara els formats PNG o JPEG. L'usuari del GDM ha de poder llegir les icones de cara ubicades al directori global de cares.

Si no hi ha cap icona global per l'usuari, el GDM cercarà el fitxer d'imatge al directori de l'usuari. El GDM primer cercarà la imatge de cara de l'usuari a `~/.face`. Si no el troba, ho provarà a `~/.face.icon`. Si encara no el troba, utilitzarà el valor definit per «face/picture=» al fitxer `~/.gnome2/gdm`.

Si un usuari no ha definit cap imatge de cara, el GDM utilitzarà la icona «stock_person» definida en el tema actual del GTK+. Si no està definida, llavors s'utilitzarà una imatge de cara genèrica.

Tingueu en compte que la càrrega i l'escalat d'icones d'imatge ubicades a directoris d'usuari remots pot tardar molt. Com que no és pràctic carregar imatges mitjançant NIS o NFS, el GDM no intentarà carregar imatges de cara des de directoris d'usuari remots.

Quan el navegador està habilitat, es mostren els noms d'usuari vàlids de l'ordinador a tothom. Si l'XDMCP està habilitat, llavors els noms d'usuari es mostren a usuaris remots. Això, per descomptat, limita la seguretat d'alguna manera, ja que un usuari malintencionat no ha d'endevinar possibles noms d'usuari vàlids. En alguns entorns molt restrictius el navegador de cares pot no ser apropiat.

### XDMCP

El dimoni del GDM es pot configurar per a escoltar i gestionar les sol·licituds del X Display Manage Protocol (XDMCP) de les pantalles remotes. Per defecte la compatibilitat de l'XDMCP està inhabilitada, però es pot habilitar si es vol. Si el GDM està construït amb compatibilitat de l'embolcall TCP, llavors el dimoni només permetrà l'accés a amfitrions especificats a la secció de servei del GDM al fitxer de configuració de l'embolcall TCP.

El GDM inclou diverses mesures per a fer-lo més resistent als atacs de denegació de servei al servei XDMCP. Molts dels paràmetres del protocol (temps d'espera de confirmació de connexió, etc.) es poden ajustar finament. La configuració estàndard hauria de funcionar bé en la majoria de sistemes.

Per defecte el GDM escolta les sol·licituds XDMCP al port UDP normal que s'utilitza per l'XDMCP, el port 177, i respondrà a les sol·licituds QUERY i BROADCAST_QUERY enviant un paquet WILLING a la font de la sol·licitud.

El GDM també es pot configurar perquè respecti les sol·licituds INDIRECT i mostri un seleccionador d'amfitrió a la pantalla remota. El GDM recordarà l'opció de l'usuari i reenviarà les següents sol·licituds al gestor seleccionat. El GDM també admet una extensió al protocol per a oblidar la redirecció un cop la connexió de l'usuari sigui satisfactòria. Aquesta extensió només és compatible si els dos dimonis són GDM. És transparent i l'ignorarà l'XDM o els altres dimonis que implementen l'XDMCP.

Si l'XDMCP sembla que no funciona, assegureu-vos que tots els ordinadors estan especificats a `/etc/hosts`.

Consulteu la secció «Seguretat» per a obtenir més informació sobre les notes de seguretat quan s'utilitza l'XDMCP.

### Registre

El GDM utilitza el registre del sistema per a registrar els errors i l'estat. També pot registrar informació de depuració, la qual pot ser útil per a descobrir problemes si el GDM no funciona correctament. Es pot habilitar la sortida de depuració si es canvia la clau «debug/Enable» a «true» al fitxer `<etc>/gdm/custom.conf`.

La sortida dels diversos servidors X s'emmagatzema al directori de registre del GDM, que normalment és el `<var>/log/gdm/`. Tots els missatges del servidor X es desen a un fitxer associat amb el valor de la pantalla, `<display>.log`.

La sortida de la sessió és conduïda a través del dimoni GDM al fitxer `~/$XDG_CACHE_HOME/gdm/session.log` que habitualment expandeix a `~/.cache/gdm/session.log`. Se sobreescriu el fitxer a cada entrada, de manera que en sortir i tornar a entrar amb el mateix usuari mitjançant el GDM provocarà que es perdin els missatges de la sessió anterior.

Si pel que sigui el GDM no pot crear aquest fitxer, es crearà un fitxer alternatiu anomenat `~/$XDG_CACHE_HOME/gdm/session.log.XXXXXXXX` on les `XXXXXXXX` seran alguns caràcters aleatoris.

### Com commutar d'usuari ràpidament

El GDM permet a diversos usuaris entrar a la mateixa vegada. Després que un usuari hagi entrat, poden entrar més usuaris mitjançant el commutador d'usuari al quadre del GNOME o des del botó «Commuta l'usuari» al diàleg de bloqueig de la pantalla de l'estalvi de pantalla del GNOME. La sessió activa es pot canviar de nou utilitzant el mateix mecanisme. Tingueu en compte que algunes distribucions no afegeixen el commutador d'usuari a la configuració per defecte del quadre. El podeu afegir a través del menú contextual del quadre.

Tingueu present que aquesta característica només és disponible en els sistemes que implementen Terminals Virtuals. En aquest cas, aquesta característica no funcionarà.

## Seguretat

### L'usuari i grup del GDM

Per raons de seguretat es recomana un identificador d'usuari i de grup específic pel correcte funcionament. A la majoria de sistemes aquest usuari i grup normalment és el «gdm», però pot ser qualsevol usuari o grup. Tots els programes d'interfície gràfica d'usuari del GDM s'executen amb aquest usuari, de manera que els programes que interactuen amb l'usuari s'executen en un entorn aïllat. L'usuari i el grup haurien de tenir els privilegis limitats.

L'únic privilegi especial que necessita l'usuari «gdm» és la capacitat de llegir i escriure fitxers Xauth al directori `<var>/run/gdm`. El propietari del directori `<var>/run/gdm` hauria de ser root i del grup gdm amb els permisos 1777.

No hauríeu, de cap manera, de configurar l'usuari/grup del GDM a un usuari sobre el qual un usuari pogués guanyar-ne fàcilment accés, com ara l'usuari `nobody`. Qualsevol usuari que guanyi accés a una clau Xauth pot tafanejar i controlar programes en execució de la interfície gràfica d'usuari associats a la sessió, o realitzar-hi un atac de denegació de servei. És important assegurar-se que el sistema està configurat adequadament de manera que només l'usuari «gdm» té accés a aquests fitxers i que no és fàcil entrar a aquest compte. Per exemple, el compte s'hauria de configurar perquè no tingui contrasenya o no permetre que usuaris no primaris puguin entrar-hi.

La configuració del rebedor del GDM s'emmagatzema al GConf. Per a permetre que l'usuari GDM pugui escriure la configuració, és necessari que l'usuari «gdm» tingui un directori d'usuari amb permisos d'escriptura. Els usuaris poden configurar la configuració per defecte del GConf com desitgin per a evitar la necessitat de proporcionar a l'usuari «gdm» un directori d'usuari amb permisos d'escriptura. Tot i això, es poden inhabilitar algunes funcions del GDM si no es pot escriure informació d'estat a la configuració del GConf.

### PAM

El GDM utilitza el PAM per a l'autenticació d'entrada. PAM significa mòduls de connectors d'autenticació (Pluggable Authentication Modules) i l'utilitzen la majoria de programes que sol·liciten autenticació a l'ordinador. Això permet a l'administrador configurar els comportaments d'autenticació específics per diferents programes d'entrada (com ara el ssh, la interfície gràfica d'entrada, l'estalvi de pantalla, etc.)

El PAM és complicat i altament configurable i en aquesta documentació no s'intenta d'explicar-lo amb pèls i senyals. La idea és donar una visió global de com afecta la configuració del PAM al GDM, com es configura normalment el PAM amb el GDM i els problemes coneguts. S'espera que qui hagi de realitzar una configuració del PAM llegirà més documentació del PAM per a entendre com configurar-lo i entendre'n els termes utilitzats en aquesta secció.

La configuració del PAM té interfícies diferents, però similars, segons el sistema operatiu, de manera que comproveu les pàgines del manual del pam.d o del pam.conf per a obtenir-ne tots els detalls. Assegureu-vos que llegiu la documentació del PAM i que esteu segurs de les implicacions de seguretat que qualsevol canvi que intenteu realitzar a la configuració pot ocasionar.

Tingueu en compte que, per defecte, el GDM utilitza el nom de servei del PAM «gdm» per a una entrada normal i el nom de servei del PAM «gdm-autologin» per a una entrada automàtica. Pot ser que aquests serveis no estiguin definits al fitxer de configuració pam.d o pam.conf. Si no hi ha cap entrada el GDM utilitzarà el comportament per defecte del PAM. A la majoria de sistemes aquest hauria de funcionar sense cap problema. Tot i això, la funció d'entrada automàtica podria no funcionar si el servei gdm-autologin no està definit.

L'script `PostLogin` s'executa abans de cridar pam_open_session i l'script `PreSession` després. Això permet a l'administrador del sistema afegir qualsevol script al procés d'entrada abans o després que el PAM iniciï la sessió.

If you wish to make GDM work with other types of authentication mechanisms (such as a fingerprint or SmartCard reader), then you should implement this by using a PAM service module for the desired authentication type rather than by trying to modify the GDM code directly. Refer to the PAM documentation on your system.

El PAM té algunes limitacions relacionades en ser capaç de treballar amb diversos tipus d'autenticació a la vegada, admetre l'habilitat d'acceptar targetes SmartCard i introduir el nom d'usuari i la contrasenya al programa d'entrada. S'utilitzen diverses tècniques per a fer que això funcioni i és una bona idea conèixer-les si es vol utilitzar una configuració semblant.

Si a un sistema no funciona l'entrada automàtica, comproveu si la pila del PAM «gdm-autologin» està definida a la configuració del PAM. Per a fer-ho funcionar, és necessari utilitzar un mòdul del PAM que simplement no faci autenticació o que simplement retorni PAM_SUCCESS des de totes les interfícies públiques. Si s'assumeix que el sistema té un mòdul del PAM pam_allow.so que fa això, una configuració del PAM per a habilitar el «gdm-autologin» podria ser aquesta:

           gdm-autologin auth  required    pam_unix_cred.so.1
           gdm-autologin auth  sufficient  pam_allow.so.1
           gdm-autologin account  sufficient  pam_allow.so.1
           gdm-autologin session  sufficient  pam_allow.so.1
           gdm-autologin password  sufficient  pam_allow.so.1

La configuració anterior provocarà que no es generi cap entrada de lastlog. Si voleu una entrada de lastlog, llavors utilitzeu el següent per a la sessió:

           gdm-autologin session required pam_unix_session.so.1

Si l'ordinador l'empren diferents persones, el que fa inviable l'inici automàtic de sessió, podeu permetre que algun usuari accedeixi sense contrasenya. Aquesta característica es pot habilitar a nivell d'usuari amb l'eina users-admin del gnome-system-tools; s'aconsegueix verificant abans de demanar la contrasenya si l'usuari és membre del grup Unix «nopasswdlogin». Perquè funcioni, el fitxer de configuració del PAM pel servei «gdm» ha d'incloure una línia com aquesta:

          gdm auth  sufficient  pam_succeed_if.so  user ingroup nopasswdlogin

### utmp i wtmp

El GDM genera entrades utmp i wtmp a la base de dades de comptes d'usuari quan l'usuari entra i surt de la sessió. La base de dades utmp conté informació de l'accés de l'usuari i del compte que hi accedeixen ordres com ara el `finger`, el `last`, el `login` i el `who`. La base de dades wtmp conté l'historial de la informació de l'accés de l'usuari i del compte per a la base de dades utmp. Per a obtenir més informació consulteu les pàgines del manual del sistema utmp i wtmp.

### Esquema d'autenticació del servidor X

Els fitxers d'autorització del servidor X s'emmagatzemen en un subdirectori nou a `<var>/run/gdm` que es crea a l'inici. Els fitxers serveixen per a emmagatzemar i compartir una «contrasenya» entre els clients X i el servidor X. Aquesta «contrasenya» és única per a cada sessió d'entrada, de manera que els usuaris d'una sessió no poden tafanejar a usuaris d'una altra.

El GDM només admet l'esquema d'autenticació MIT-MAGIC-COOKIE-1 del servidor X. La resta d'esquemes no aporten gairebé cap benefici, de manera que no s'ha realitzat cap esforç per a implementar-los. Vigileu especialment la utilització de l'XDMCP perquè les galetes d'autenticació del servidor X circulen per la xarxa com a text pla. Si és possible tafanejar, llavors un atacant podria simplement tafanejar la vostra contrasenya d'autenticació quan entreu, independentment de l'esquema d'autenticació que s'utilitzés. Si és possible tafanejar però no és desitjable, llavors hauríeu d'utilitzar l'SSH per a fer una tunelització d'una connexió X en comptes d'utilitzar l'XDMCP. Podeu pensar que l'XDMCP és una espècie de telnet gràfic, que té els mateixos problemes de seguretat. En la majoria de casos, s'hauria de fer servir l'SSH -Y en comptes de les funcions XDMCP del GDM.

### Seguretat de l'XDMCP

Encara que la pantalla està protegida per galetes, els XEvents i les pulsacions de tecles quan s'introdueix la contrasenya encara circularan per la xarxa com a text pla. És trivial capturar-les.

L'XDMCP és útil principalment per a executar clients lleugers com ara en terminals de laboratori. Aquests clients lleugers només necessiten la xarxa per a accedir al servidor i per tant sembla que la millor política de seguretat és tenir aquests clients lleugers en una xarxa separada a la qual no es pot accedir des del món exterior i només es pot connectar al servidor. L'únic punt des d'on necessiteu accedir a fora és el servidor. Aquest tipus de configuració no hauria d'utilitzar un concentrador no gestionat o una altra xarxa que es pugui vigilar.

### Control d'accés de l'XDMCP

El control d'accés de l'XDMCP es realitza utilitzant embolcalls TCP. És possible compilar el GDM sense la compatibilitat d'embolcalls TCP, de manera que aquesta funció potser no està disponible en alguns sistemes operatius.

Hauríeu d'utilitzar el nom del dimoni `gdm` als fitxers `<etc>/hosts.allow` i `<etc>/hosts.deny`. Per exemple, per a denegar l'entrada d'ordinadors des de `.evil.domain` heu d'afegir

    gdm: .evil.domain

a `<etc>/hosts.deny`. També heu d'afegir

    gdm: .your.domain

al vostre `<etc>/hosts.allow` si normalment no permeteu tots els serveis des de tots els amfitrions. Per a obtenir més detalls vegeu la pàgina del manual hosts.allow(5).

### Seguretat del tallafoc

Encara que el GDM intenta diferenciar intel·ligentment atacants potencials utilitzant l'avantatge de l'XDMCP, encara es recomana que bloquegeu el port de l'XDMCP (normalment el port UDP 177) del tallafoc a no ser que realment el necessiteu. El GDM es protegeix contra atacs de denegació de servei, però el protocol X encara és inherentment insegur i només s'hauria d'utilitzar en entorns controlats. A més cada connexió remota utilitza molts recursos, de manera que és molt més fàcil realitzar un atac de denegació de servei mitjançant l'XDMCP que atacar un servidor web.

També es recomana bloquejar al tallafoc tots els ports del servidor X (aquests són els ports TCP 6000 + el número de la pantalla). Tingueu en compte que el GDM utilitzarà els números de pantalla 20 i superiors per als servidors sota demanda flexibles.

X no és un protocol molt segur per a utilitzar-se per Internet i XDMCP ho és encara menys.

### PolicyKit

Es pot configurar el GDM perquè utilitzi el PolicyKit per a permetre a l'administrador del sistema controlar quan la pantalla d'entrada hauria de proporcionar els botons d'apagar i de tornar a iniciar a la pantalla del rebedor.

Les accions `org.freedesktop.consolekit.system.stop-multiple-users` i `org.freedesktop.consolekit.system.restart-multiple-users` controlen aquests botons respectivament. Es pot ajustar la política les accions amb l'eina polkit-gnome-authorization o el programa de línia d'ordres polkit-auth.

### RBAC (control d'accés basat en el rol)

El GDM es pot configurar perquè utilitzi el RBAC en comptes del PolicyKit. En aquest cas, s'utilitza la configuració del RBAC per a controlar quan la pantalla d'entrada hauria de proporcionar els botons d'apagar i de tornar a iniciar a la pantalla del rebedor.

Per exemple, a l'Oracle Solaris, s'utilitza l'autorització «solaris.system.shutdown» per a controlar-ho. Només cal que modifiqueu el fitxer `/etc/user_attr` de manera que l'usuari «gdm» tingui aquesta autorització.

## Compatibilitat per a ConsoleKit

El GDM inclou compatibilitat per a publicar la informació d'entrada de l'usuari amb l'entorn de treball de comptabilitat d'usuaris i de sessions d'entrada conegut com a ConsoleKit. El ConsoleKit és capaç de fer el seguiment de tots els usuaris que estan connectats actualment. En aquest aspecte, es pot utilitzar com un substitut dels fitxers utmp o utmpx que hi ha disponibles a la majoria de sistemes operatius tipus UNIX.

Quan el GDM va a crear un procés d'entrada nou per a un usuari cridarà un mètode privilegiat del ConsoleKit per a obrir una sessió nova per a aquest usuari. En aquest moment el GDM també proporciona al ConsoleKit la informació sobre aquesta sessió d'usuari com ara: l'identificador de l'usuari, el nom de la pantalla X11 que estarà associada amb la sessió, el nom de l'amfitrió que origina la sessió (útil en el cas d'una sessió XDMCP), si la sessió és local, etc. Com a entitat que inicia el procés d'usuari, el GDM és en una posició única per a conèixer la sessió de l'usuari i per a confiar-hi aquestes dades. La utilitat d'aquest mètode privilegiat està restringit a la utilització d'una política de seguretat del bus del sistema de missatges del D-Bus.

En el cas on un usuari amb una sessió existent s'hagi autenticat al GDM i sol·liciti de continuar la sessió existent, el GDM crida un mètode privilegiat del ConsoleKit per a desblocar la sessió. Els detalls exactes de què succeeix quan la sessió rep aquest senyal de desblocatge són indefinits i específics de la sessió. Tot i això, la majoria de sessions desblocaran un estalvi de pantalla com a resposta.

Quan l'usuari vol sortir o si el GDM o la sessió surten de manera inesperada, es desregistrarà la sessió de l'usuari al ConsoleKit.

## Configuració

El GDM té tot un seguit d'interfícies de configuració. Aquestes inclouen punts d'integració pels scripts, la configuració de dimonis, la configuració del rebedor, els paràmetres de sessió generals, la integració amb la configuració del gnome-settings-daemon i la configuració de la sessió. Aquests tipus d'integració estan descrits en detall a sota.

### Punts d'integració pels scripts

Els punts d'integració pels scripts del GDM es poden trobar al directori `<etc>/gdm/`:

    Xsession
    Init/
    PostLogin/
    PreSession/
    PostSession/

Els scripts `Init`, `PostLogin`, `PreSession` i `PostSession` funcionen tal com es descriu a sota.

Per a cada tipus de script, el que s'executarà per defecte s'anomena «Default» i s'emmagatzema en un directori associat amb el tipus de script. De manera que l'script per defecte de l'`Init` es troba a `<etc>/gdm/Init/Default`. Es pot proporcionar un script per pantalla, si existeix, s'executarà en lloc de l'script per defecte. Aquests es troben al mateix directori que l'script per defecte i tenen el mateix nom que el valor DISPLAY del servidor X per a aquesta pantalla. Per exemple, si existeix l'script `<Init>/:0`, aquest s'executarà si la pantalla és «:0».

Tots aquests scripts s'executen amb privilegis d'usuari primari i retornen 0 si s'executen correctament i retornen un codi diferent de zero si hi ha alguna fallada que hauria de causar que s'interrompés la sessió d'entrada. Tingueu en compte que el GDM es blocarà fins que l'script finalitzi, de manera que si algun d'aquests scripts es penja, això provocarà que el procés d'entrada també es pengi.

Quan s'ha iniciat correctament el servidor X per a la interfície gràfica d'entrada, però abans que s'hagi mostrat aquesta, el GDM executarà l'script `Init`. Aquest script és útil per a iniciar programes que s'haurien d'executar mentre es mostra la pantalla d'entrada o per a realitzar qualsevol inicialització especial necessària.

Després què s'hagi autenticat correctament a l'usuari, el GDM executarà l'script `PostLogin`. Aquest s'executa abans de configurar qualsevol sessió, fins i tot abans de la crida a pam_open_session. Aquest script és útil per a realitzar qualsevol inicialització que ha de succeir abans d'iniciar la sessió. Per exemple, podeu configurar el directori $HOME de l'usuari si és necessari.

Després d'inicialitzar la sessió de l'usuari, el GDM executarà l'script `PreSession`. Aquest script és útil per a realitzar qualsevol inicialització que necessiti fer-se després d'inicialitzar la sessió. Per exemple, es pot utilitzar per a la gestió de sessions o de comptes.

Quan un usuari finalitza la seva sessió, el GDM executarà l'script `PostSession`. Tingueu en compte que el servidor X s'aturarà al moment en què s'executi aquest script, de manera que no s'hi hauria d'accedir.

Tingueu en compte que l'script `PostSession` s'executarà encara que la pantalla no respongui a causa d'algun error d'E/S o semblant. De manera que no hi ha cap garantia que les aplicacions X funcionaran durant l'execució de l'script.

Tots els scripts anteriors establiran la variable de l'entorn `$RUNNING_UNDER_GDM` a `yes`. Si els scripts també són compartits amb altres gestors de pantalla, us permetrà identificar quan s'està executant aquests scripts des del GDM, de manera que podeu executar codi específic quan s'està utilitzant el GDM.

### Configuració d'arrencada automàtica

El directori `<share>/gdm/autostart/LoginWindow` conté fitxers en el format que especifica la «FreeDesktop.org Desktop Application Autostart Specification». Es poden emprar les característiques estàndard de l'especificació per a indicar quins programes han de reiniciar-se, només en el cas que s'hagi definit el valor corresponent al GConf, etc.

Qualsevol fitxer `.desktop` en aquest directori farà que el programa associat s'iniciï amb la pantalla gràfica de benvinguda. De forma predeterminada, el GDM té els fitxers que iniciaran la pantalla gràfica de benvinguda (gdm-simple-greeter), l'aplicació gnome-power-management, el gnome-settings-daemon i el gestor de finestres metacity. Aquests programes són necessaris perquè funcioni el programa de benvinguda. A més, hi ha fitxers desktop per a iniciar diversos programes AT si s'ha definit els valors corresponents a la secció de Configuració d'Accessibilitat.

### Script Xsession

També hi ha un script `Xsession` ubicat a `<etc>/gdm/Xsession` que es crida entre els scripts `PreSession` i `PostSession`. Aquest script no admet configuració per pantalla com els altres scripts. Aquest script s'utilitza per a iniciar la sessió d'usuari. Aquest script s'executa com usuari i s'executarà sigui quina sigui la sessió especificada al fitxer de sessió de l'escriptori que l'usuari ha de seleccionar per a iniciar.

### Configuració del dimoni

El dimoni del GDM es configura utilitzant el fitxer `<etc>/gdm/custom.conf`. Els valors predeterminats s'emmagatzemen al GConf en el fitxer `gdm.schemas`. Es recomana que els usuaris finals modifiquin el fitxer `<etc>/gdm/custom.conf` perquè es pot sobreescriure el fitxer d'esquemes quan l'usuari actualitzi el sistema amb una versió nova del GDM.

Tingueu en compte que les versions anteriors del GDM admetien opcions de configuració addicionals que ja no són compatibles amb les últimes versions del GDM.

El fitxer `<etc>/gdm/custom.conf` està en el format `keyfile`. Les paraules clau entre claudàtors defineixen les seccions de grup, les cadenes abans del signe igual (=) són claus i les dades després del signe igual representen el seu valor. S'ignoren les línies buides o que comencen amb la marca de coixinet (#).

El fitxer `<etc>/gdm/custom.conf` admet les seccions de grup «[daemon]», «[security]» i «[xdmcp]». Existeixen parelles de clau/valor particulars amb cada grup que es poden especificar per a modificar com es comporta el GDM. Per exemple, per a habilitar l'entrada temporitzada i especificar que l'usuari d'entrada temporitzada sigui «usuari», hauríeu de modificar el fitxer de manera que contingués les línies següents:

    [daemon]
    TimedLoginEnable=true
    TimedLogin=usuari

A continuació hi ha una llista completa de claus de configuració admeses:

#### [selector]

Multicast

      Multicast=false

  Si és cert i s'ha habilitat l'IPv6, el selector enviarà una consulta de difusió a la xarxa local i recollirà les respostes de les màquines que s'hagin afegit al grup de difusió.

MulticastAddr

      MulticastAddr=ff02::1

  Aquesta és l'adreça multidifusió Link-local.

#### [daemon]

TimedLoginEnable

      TimedLoginEnable=false

  Si l'usuari especificat a `TimedLogin` hauria d'entrar després d'un nombre de segons (especificats a `TimedLoginDelay`) d'inactivitat a la pantalla d'entrada. Això és útil per a terminals d'accés públic o fins i tot per ús domèstic. Si l'usuari utilitza el teclat o els menús de navegació, es reiniciarà el temps d'espera a `TimedLoginDelay` o 30 segons, el que sigui més alt. Si l'usuari no introdueix cap nom d'usuari sinó que prem la tecla de retorn mentre el programa d'entrada sol·licita el nom d'usuari, el GDM assumirà que l'usuari vol entrar immediatament com a l'usuari definit a `TimedLogin`. Tingueu en compte que no se sol·licitarà cap contrasenya per aquest usuari de manera que hauríeu d'anar amb compte, tot i que si utilitzeu el PAM es podria configurar perquè sigui necessari introduir la contrasenya abans de permetre l'entrada. Per a obtenir més informació consulteu la secció «Seguretat->PAM» del manual o per a obtenir ajuda si aquesta funció no sembla funcionar.

TimedLogin

      TimedLogin=

  Aquest és l'usuari que hauria d'entrar després d'un nombre de segons d'inactivitat especificat.

  Si el valor acaba en un una barra vertical | (el símbol de conducte), aleshores el GDM executarà el programa especificat i emprarà qualsevol valor que aquest retorni a la sortida estàndard del programa com l'usuari. El programa s'executa amb la variable d'entorn DISPLAY definida, de forma que és possible especificar l'usuari en funció del display. Per exemple, si el valor és «/usr/bin/getloginuser», aleshores s'executarà el programa «/usr/bin/getloginuser» per a obtenir el valor de l'usuari.

TimedLoginDelay

      TimedLoginDelay=30

  Retard en segons abans que l'usuari `TimedLogin` entri.

AutomaticLoginEnable

      AutomaticLoginEnable=false

  Si és cert, l'usuari especificat a `AutomaticLogin` hauria d'entrar immediatament. Aquesta funció és semblant a l'entrada temporitzada amb un retard de 0 segons.

AutomaticLogin

      AutomaticLogin=

  Aquest és l'usuari que hauria d'entrar immediatament si `AutomaticLoginEnable` és cert.

  Si el valor acaba en un una barra vertical | (el símbol de conducte), aleshores el GDM executarà el programa especificat i emprarà qualsevol valor que aquest retorni a la sortida estàndard del programa com l'usuari. El programa s'executa amb la variable d'entorn DISPLAY definida, de forma que és possible especificar l'usuari en funció del display. Per exemple, si el valor és «/usr/bin/getloginuser», aleshores s'executarà el programa «/usr/bin/getloginuser» per a obtenir el valor de l'usuari.

User

      User=gdm

  El nom d'usuari sota el qual el rebedor i altres programes d'interfície gràfica d'usuari s'executen. Per a obtenir més informació consulteu la clau de configuració `Group` i la secció «Seguretat->Usuari i grup del GDM» d'aquest document.

Group

      Group=gdm

  El nom de grup sota el qual el rebedor i altres programes d'interfície gràfica d'usuari s'executen. Per a obtenir més informació consulteu la clau de configuració `User` i la secció «Seguretat->Usuari i grup del GDM» d'aquest document.

#### Opcions de depuració

##### [debug]

Enable

      Enable=false

  Per a habilitar la depuració, poseu la clau debug/Enable a «true» al fitxer `<etc>/gdm/custom.conf` i reinicieu el GDM. Aleshores la sortida de depuració s'enviarà al fitxer de registre del sistema (`<var>/log/messages` o `<var>/adm/messages` depenent de quin sigui el vostre sistema operatiu).

#### Opcions del rebedor

##### [greeter]

IncludeAll

      IncludeAll=true

  Si és cert, el navegador de cares mostrarà tots els usuaris locals. Si és fals, el navegador de cares només mostrarà els últims usuaris que hagin accedit.

  Quan aquesta clau sigui certa, el GDM cridarà fgetpwent() per a obtenir un llistat d'usuaris locals del sistema. No es mostrarà cap usuari amb una id inferior a 500 (o 100 en l'Oracle Solaris). El navegador de cares també mostrarà qualsevol usuari que hagi accedit anteriorment al sistema (per exemple, usuaris NIS/LDAP). Obté aquest llistat cridant la interfície `ck-history` del ConsoleKit. Tampoc mostrarà cap usuari que no tingui un intèrpret d'ordres vàlid (els vàlids són els que retorni getusershell() - /sbin/nologin o /bin/false es consideren intèrprets d'ordres no vàlids inclús si getusershell() els retorna).

  Si és fals, aleshores el GDM només mostrarà els usuaris que hagin accedit anteriorment al sistema (usuaris locals o NIS/LDAP) cridant la interfície `ck-history` del ConsoleKit.

Include

      Include=

  Defineix un llistat d'usuaris a incloure al navegador de cares. Aquest valor necessita un llistat d'usuaris separats per coma. De forma predeterminada, el valor és buit.

Exclude

      Exclude=bin,root,daemon,adm,lp,sync,shutdown,halt,mail,news,uucp,operator,nobody,nobody4,noaccess,postgres,pvm,rpm,nfsnobody,pcap

  Defineix un llistat d'usuaris a excloure al navegador de cares. Aquest valor necessita un llistat d'usuaris separats per coma. Tingueu present que el valor definit a `custom.conf` sobreescriu el valor predeterminat, així que si voleu afegir més usuaris al llistat, heux d'afegir-los al final del valor predeterminat.

#### Opcions de seguretat

##### [security]

DisallowTCP

      DisallowTCP=true

  Si és cert, sempre s'afegirà `-nolisten tcp` a la línia d'ordres quan s'iniciïn servidors X locals, d'aquesta manera no es permetran connexions TCP. Aquesta configuració és més segura si no utilitzeu connexions remotes.

#### Compatibilitat XDCMP

##### [xdmcp]

DisplaysPerHost

      DisplaysPerHost=1

  Per a evitar que els atacants omplin la cua de pendents, el GDM només permetrà una connexió per a cada ordinador remot. Si voleu proporcionar serveis de pantalla a ordinadors amb més d'una pantalla, hauríeu d'incrementar aquest valor.

  Tingueu en compte que el nombre de pantalles locals permeses no està limitat. Només les connexions remotes mitjançant XDMCP estan limitades per aquesta opció de configuració.

Enable

      Enable=false

  En establir-ho a cert s'habilita la compatibilitat XDMCP, permetent que el GDM pugui gestionar les pantalles remotes o els terminals X.

  El `gdm` escolta les sol·licituds al port UDP 177. Per a obtenir més informació vegeu l'opció Port.

  Si el GDM es compila per a permetre-ho, es pot controlar l'accés des de pantalles remotes utilitzant la biblioteca de l'embolcall TCP. El nom de servei és `gdm`

  Hauríeu d'afegir

      gdm:.my.domain

  al vostre `<etc>/hosts.allow`, depenent de la configuració de l'embolcall TCP. Per a obtenir més detalls vegeu la pàgina del manual hosts.allow.

  Tingueu en compte que XDMCP no és un protocol precisament segur i que és una bona idea bloquejar el port UDP 177 al tallafoc a no ser que realment el necessiteu.

HonorIndirect

      HonorIndirect=true

  Habilita la selecció XDMCP INDIRECT (és a dir, l'execució remota del `gdmchooser`) per als terminals X que no subministren el seu explorador de pantalla propi.

MaxPending

      MaxPending=4

  Per a evitar els atacs de denegació de servei, el GDM té una cua de connexions pendents de mida fixa. Només el nombre de les pantalles MaxPending poden iniciar a la vegada.

  Tingueu en compte que aquest paràmetre no limita el número de pantalles remotes que es poden gestionar. Només limita el número de pantalles que inicien una connexió simultàniament.

MaxSessions

      MaxSessions=16

  Determina el número màxim de connexions de pantalles remotes que es poden gestionar simultàniament. És a dir, el número total de pantalles remotes que pot utilitzar el vostre amfitrió.

MaxWait

      MaxWait=30

  Quan el GDM està preparat per a gestionar una pantalla se li envia un paquet ACCEPT que conté un identificador de sessió únic que s'utilitzarà en futures connexions XDMCP.

  Llavors el GDM ubicarà l'identificador de sessió a la cua de pendents esperant que la pantalla respongui amb una sol·licitud MANAGE.

  Si no es rep una resposta abans de MaxWait segons, el GDM declararà la pantalla com a morta i la suprimirà de la cua de pendents, alliberant la ranura per a altres pantalles.

MaxWaitIndirect

      MaxWaitIndirect=30

  El paràmetre MaxWaitIndirect determina el número màxim de segons entre el temps on un usuari tria un amfitrió i la sol·licitud indirecta que l'ha de seguir on l'usuari està connectat a l'amfitrió. Quan s'excedeix el temps d'espera, s'oblida la informació sobre l'amfitrió triat i s'allibera la ranura indirecte per a altres pantalles. Es pot oblidar la informació abans si hi ha més amfitrions intentant enviar sol·licituds indirectes que `MaxPendingIndirect`.

PingIntervalSeconds

      PingIntervalSeconds=60

  Si Xserver no respon durant el temps determinat, la connexió s'atura i s'acaba la sessió. Quan això passa el dimoni esclau mor amb un senyal ALARM. Tingueu present que el GDM 2.20 i anteriors multiplicaven aquest valor per 2, així que és possible que calgui incrementar el temps d'expiració si s'actualitza del GDM 2.20 i versions anteriors a una més nova.

  Tingueu en compte que el GDM en el passat utilitzava la clau de configuració `PingInterval` que estava en minuts. Per a la majoria de propòsits voldreu que aquest paràmetre sigui inferior d'un minut, ja que en la majoria de casos on XDMCP s'hauria d'utilitzar (com terminals de laboratori), un retard de 15 o més segons significaria realment que el terminal s'ha apagat o s'ha tornat a iniciar i voldríeu finalitzar la sessió.

Port

      Port=177

  El número de port UDP en el qual el `gdm` hauria d'escoltar les sol·licituds XDMCP. No ho canvieu si no sabeu les conseqüències que en poden derivar.

Willing

      Willing=<etc>/gdm/Xwilling

  Quan l'ordinador retorna un paquet WILLING després d'un QUERY aquest envia una cadena que proporciona l'estat actual del servidor. El missatge per defecte és l'identificador del sistema, però es pot crear un script que mostri un missatge personalitzat. Si no existeix l'script o la clau està buida, s'enviarà el missatge per defecte. Si aquest script acaba bé i produeix alguna sortida, s'enviarà la primera línia de la seva sortida (i només la primera línia). S'executa com a molt cada 3 segons per a evitar una possible denegació de servei per inundació de l'ordinador amb paquets QUERY.

### Configuració del rebedor senzill

El rebedor per defecte del GDM s'anomena rebedor senzill i es configura mitjançant el GConf. Els valors per defecte s'emmagatzemen al fitxer `gdm-simple-greeter.schemas` del GConf. Aquests valors per defecte es poden sobreescriure si l'usuari «gdm» té un directori $HOME amb permisos d'escriptura per a emmagatzemar els paràmetres del GConf. Aquests valors es poden editar utilitzant els programes `gconftool-2` o `gconf-editor`. S'admeten les opcions de configuració següents:

#### Claus de configuració del rebedor

/apps/gdm/simple-greeter/banner_message_enable

      false (booleà)

  Controla si es mostra el missatge de text del bàner.

/apps/gdm/simple-greeter/banner_message_text

      NULL (cadena)

  Especifica el missatge de text del bàner que es mostra a la finestra del rebedor.

/apps/gdm/simple-greeter/disable_restart_buttons

      false (booleà)

  Controla si s'han de mostrar els botons de reiniciar a la finestra d'entrada.

/apps/gdm/simple-greeter/disable_user_list

      false (booleà)

  Si és cert, aleshores no es mostrarà el navegador de cares amb els usuaris coneguts a la finestra d'accés.

/apps/gdm/simple-greeter/logo_icon_name

      ordinador (cadena)

  Estableix el nom del tema d'icones que s'utilitza per al logotip del rebedor.

/apps/gdm/simple-greeter/recent-languages

      [] (llista de cadenes)

  Definit com un llistat d'idiomes a mostrar de forma predeterminada a la finestra d'accés. El valor predeterminat és «[]». Amb el valor predeterminat, només es mostra l'idioma predeterminat en el sistema i l'opció «Altres...» que surt en un diàleg emergent mostrant el llistat complet d'idiomes que pot triar l'usuari.

  Se suposa que els usuaris no han de modificar aquest paràmetre a mà. En canvi, el GDM registra de tots els idiomes seleccionats amb aquesta clau de configuració i els mostra al selector d'idiomes amb les opcions «Altres». D'aquesta forma, es pot triar més fàcilment els idiomes d'ús freqüent.

/apps/gdm/simple-greeter/recent-layouts

      [] (llista de cadenes)

  Està definit com un llistat de disposicions de teclat que es mostra de forma predeterminada al panell d'accés. El valor predeterminat és «[]». Amb el valor predeterminat només es mostra la disposició de teclat predeterminada en el sistema i l'opció «Altres» que obre un diàleg emergent on mostra el llistat complet de disposicions disponibles que pot triar l'usuari.

  Se suposa que els usuaris no han de modificar aquest paràmetre a mà. En canvi, el GDM registra quines disposicions de teclat s'han seleccionat en aquesta clau de configuració i els mostra al selector que es mostra amb l'opció «Altres...». D'aquesta forma, es pot triar més fàcilment les disposicions de teclat d'ús freqüent.

/apps/gdm/simple-greeter/wm_use_compiz

      false (booleà)

  Controla si s'utilitza el compiz com a gestor de finestres en lloc del metacity.

### Configuració de l'accessibilitat

Aquesta secció descriu les opcions disponibles en la configuració d'accessibilitat del GDM.

#### Diàleg d'accessibilitat del GDM i claus del GConf

El panell de benvinguda del GDM a la pantalla d'accés, mostra la icona d'accessibilitat. En fer-hi clic, s'obre el diàleg d'accessibilitat del GDM, on es mostra un llistat de quadres de verificació, així l'usuari pot habilitar o deshabilitar els assistents associats.

Els quadres de verificació corresponents als assistents de teclat virtual en pantalla, ampliador de pantalla i lector de pantalla actuen amb les tres claus del GConf que es descriuen a la següent secció d'aquest document. En habilitar-les o deshabilitar-les, les claus del GConf associades obtenen el valor «true» o «false», respectivament. Quan les claus del GConf tenen el valor cert, s'inicien els assistents vinculats a aquestes claus. Quan les claus del GConf tenen el valor «false», qualsevol assistent que tingui vinculada la clau es tanca. Aquestes claus del GConf no tornen a un valor predeterminat cada cop que l'usuari accedeix. Així, els assistents que estiguessin funcionant a l'última sessió del GDM s'iniciaran automàticament a la següent.

Els altres quadres de verificació del diàleg d'accessibilitat del GDM no tenen clau respectiva al GConf perquè no s'inicia cap programa per a proporcionar les característiques d'accessibilitat que ofereixen. Aquestes altres opcions corresponen a característiques d'accessibilitat que proporciona Xserver, que sempre s'executa durant la sessió del GDM.

#### Claus del GConf sobre l'accessibilitat

El GDM ofereix les claus del GConf següents per a controlar les seves funcions d'accessibilitat:

##### Claus de configuració del GDM

/desktop/gnome/interface/accessibility

      false (booleà)

  Controla si la infraestructura d'accessibilitat s'ha iniciat amb la interfície del GDM. Això li cal a moltes tecnologies d'accessibilitat per a poder funcionar.

/desktop/gnome/applications/at/screen_magnifier_enabled

      false (booleà)

  Si s'ha definit, l'assistent vinculat a aquesta clau del GConf s'iniciarà amb la interfície gràfica del GDM. De forma predeterminada és una lupa de pantalla.

/desktop/gnome/applications/at/screen_keyboard_enabled

      false (booleà)

  Si s'ha definit, l'assistent vinculat a aquesta clau del GConf s'iniciarà amb la interfície gràfica del GDM. De forma predeterminada és un teclat virtual en pantalla.

/desktop/gnome/applications/at/screen_reader_enabled

      false (booleà)

  Si s'ha definit, l'assistent vinculat a aquesta clau del GConf s'iniciarà amb la interfície gràfica del GDM. De forma predeterminada és un lector de pantalla.

#### Com enllaçar les claus del GConf a les eines d'accessibilitat

Per a les claus del GConf screen_magnifier_enabled, screen_keyboard_enabled i the screen_reader_enabled l'assistent que s'inicia depèn dels fitxers desktop ubicats al directori d'autoinici del GDM, com es descriu a la secció "Autostart Configuration" d'aquest manual. Qualsevol fitxer desktop del directori d'autoinici del GDM es pot enllaçar amb aquesta clau del GConf especificant-la a la condició AutorstartCondition del fitxer desktop. Així, la línia concreta de l'AutostartCondition al fitxer desktop podria ser una de les següents:

    AutostartCondition=GNOME /desktop/gnome/applications/at/screen_keyboard_enabled
    AutostartCondition=GNOME /desktop/gnome/applications/at/screen_magnifier_enabled
    AutostartCondition=GNOME /desktop/gnome/applications/at/screen_reader_enabled

Quan una clau d'accessibilitat té el valor cert, aleshores qualsevol programa amb què estigui enllaçat en un fitxer desktop de l'autoinici del GDM s'iniciarà (excepte que la clau Hidden estigui definida com a certa en aquest mateix fitxer desktop). Una única clau GConf pot, fins i tot, iniciar diferents assistents si hi ha diferents fitxers .desktop amb la AutostartCondition al directori d'autoinici del GDM.

#### Exemple de com modificar l'eina de configuració d'accessibilitat

Per exemple, si el GNOME s'ha distribuït amb el GOK com el teclat en pantalla predeterminat, aquest es podria substituir per un altre programa si es volgués. Per a reemplaçar el GOK amb el teclat en pantalla «onboard» i, addicionalment, activar l'assistent «mousetweaks que implementa el clic en pausa, caldria la següent configuració.

Crea un fitxer d'escriptori per a l'onboard i un altre pel mousetweaks; per exemple, onboard.desktop i mousetweaks.desktop. Aquests fitxers s'han de posar al directori d'autoinici del GDM i han de tenir el format que s'explica a la secció "Autostart Configuration" d'aquest document.

A continuació un exemple del fitxer `onboard.desktop`:

    [Desktop Entry]
    Encoding=UTF-8
    Name=Onboard Onscreen Keyboard
    Comment=Use an on-screen keyboard
    TryExec=onboard
    Exec=onboard --size 500x180 -x 20 -y 10
    Terminal=false
    Type=Application
    StartupNotify=true
    Categories=GNOME;GTK;Accessibility;
    AutostartCondition=GNOME /desktop/gnome/applications/at/screen_keyboard_enabled

A continuació un exemple del fitxer `mousetweaks.desktop`:

    [Desktop Entry]
    Encoding=UTF-8
    Name=Software Mouse-Clicks
    Comment=Perform clicks by dwelling with the pointer
    TryExec=mousetweaks
    Exec=mousetweaks --enable-dwell -m window -c -x 20 -y 240
    Terminal=false
    Type=Application
    StartupNotify=true
    Categories=GNOME;GTK;Accessibility;
    AutostartCondition=GNOME /desktop/gnome/applications/at/screen_keyboard_enabled

Tingueu present la línia amb AutostartCondition que enllaça ambdós fitxers d'escriptori a la clau GConf pel teclat en pantalla.

Per a evitar que el GOK s'iniciï, s'ha de suprimir o desactivar el fitxer d'escriptori del teclat en pantalla GOK. D'altra forma, l'onboard i el GOK s'iniciaran simultàniament. Això es pot aconseguir suprimint el fitxer gok.desktop del directori d'autoinici del GDM, o afegint la clau "Hidden=true" al fitxer gok.desktop.

Després d'aquests canvis, el GOK no s'iniciarà quan l'usuari activi el teclat en pantalla a la sessió del GDM; a canvi, s'iniciaran l'onboard i el mousetweaks.

### Paràmetres generals de sessió

El rebedor del GDM utilitza alguns components de l'entorn de treball que utilitzarà la sessió d'escriptori. I per això l'hi afecten tot un seguit de paràmetres del GConf compartides. Per cada un d'aquests paràmetres el rebedor utilitzarà el valor per defecte a no ser que s'hagi sobreescrit per la política obligatòria instal·lada del GDM o per la política obligatòria del sistema. El GDM, per seguretat, instal·la la seva política obligatòria per a bloquejar alguns paràmetres.

### Dimoni de paràmetres del GNOME

El GDM habilita els connectors següents del gnome-settings-daemon: l'a11y-keyboard, el background, el sound i xsettings.

Aquests són responsables d'aspectes com la imatge de fons, el tipus de lletra i els paràmetres del tema, els esdeveniments de so, etc.

Els connectors es poden inhabilitar utilitzant el GConf. Per exemple, si voleu inhabilitar el connector de so llavors inhabiliteu la clau següent: `/apps/gdm/simple-greeter/settings-manager-plugins/sound/active`.

### Configuració de sessió del GDM

Les sessions del GDM s'especifiquen utilitzant l'Especificació d'entrada de l'escriptori de la FreeDesktop.org, que es pot consultar a l'URL següent: http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec.

De forma predeterminada, el GDM instal·la fitxers d'escriptori al directori `<share>/xsessions` directory. El GDM cerca dins els següents directoris, en aquest ordre, per a trobar fitxers d'escriptori: `<etc>/X11/sessions/`, `<dmconfdir>/Sessions`, `<share>/xsessions` i `<share>/gdm/BuiltInSessions`. De forma predeterminada, es designa `<etc>/dm/` com a `<dmconfdir>` a no ser que el GDM estigui configurat per a emprar un directori diferent mitjançant l'opció "--with-dmconfdir".

Es pot inhabilitar una sessió editant el fitxer d'escriptori i afegint una línia com segueix: `Hidden=true`.

Els fitxers d'escriptori del GDM implementen una extensió específica del GDM, una clau anomenada «X-GDM-BypassXsession». Si no s'especifica la clau al fitxer d'escriptori, el valor queda predeterminat a «false». Si la clau té el valor «true» al fitxer d'escriptori, aleshores el GDM iniciarà el programa especificat a la clau "Exec" del mateix fitxer en iniciar una sessió d'usuari. No iniciarà el programa mitjançant l'script `<etc>/gdm/Xsession` que és el comportament habitual. En obviar l'script, s'evita iniciar la sessió d'usuari amb els paràmetres d'usuari i de sistema normals. Les sessions iniciades d'aquesta forma són útils per a fer depuració de problemes als scripts de sistema o d'usuari que estiguin impedint l'inici de sessió de l'usuari.

### Configuració de sessió i d'idioma de l'usuari del GDM

Les opcions per defecte de sessió i d'idioma de l'usuari s'emmagatzemen al fitxer `~/.dmrc`. Quan un usuari entra per primer cop, es crea el fitxer amb les opcions inicials de l'usuari. L'usuari pot canviar aquests valors per defecte canviant-los a un valor diferent quan entra. El GDM recordarà aquests canvis per les entrades posteriors.

El fitxer `~/.dmrc` està en format estàndard `INI`. Aquest té una secció anomenada `[Desktop]` la qual té dues claus: `Session` i `Language`.

La clau `Session` especifica el nom base del fitxer de sessió `.desktop` que l'usuari vol utilitzar normalment sense l'extensió `.desktop`. La clau `Language` especifica l'idioma que l'usuari vol utilitzar per defecte. Si falta alguna d'aquestes claus, s'utilitzarà el valor predeterminat del sistema. El fitxer normalment té l'aparença següent:

    [Desktop]
    Session=gnome
    Language=ca_ES.UTF-8

## Ordres del GDM

### Ordres de l'usuari primari del GDM

El paquet GDM proporciona les ordres següents a `sbindir` amb la intenció de què siguin executades per l'usuari primari:

#### Opcions de la línia d'ordres `gdm`

El `gdm` és el dimoni principal que inicia un entorn gràfic d'accés i els assistents necessaris.

##### Opcions de la línia d'ordres `gdm`

-?, --help

  Proporciona un resum general de les opcions de la línia d'ordres.

--fatal-warnings

  Fa que tots els avisos provoquin que el GDM surti.

--timed-exit

  Surt després de 30 segons. És útil per a depurar.

--version

  Mostra la versió del dimoni del GDM.

#### Opcions de la línia d'ordres del `gdm-restart`

El `gdm-restart` atura i torna a iniciar el GDM enviant un senyal HUP al dimoni del GDM. Aquesta ordre finalitzarà immediatament totes les sessions i farà sortir als usuaris que estan connectats actualment amb el GDM.

#### Opcions de la línia d'ordres del `gdm-safe-restart`

El `gdm-safe-restart` atura i torna a iniciar el GDM enviant un senyal USR1 al dimoni del GDM. Es tornarà a iniciar el GDM quan hagin sortit tots els usuaris.

#### Opcions de la línia d'ordres del `gdm-stop`

El `gdm-stop` atura el GDM enviant un senyal TERM al dimoni del GDM.

## Resolució de problemes

Aquesta secció descriu consells útils per a fer funcionar el GDM. En general, si teniu algun problema utilitzant el GDM, podeu transmetre un error o enviar un correu electrònic a la llista de correu gdm-list. Trobareu més informació sobre com fer-ho a la secció «Introducció» del document.

Si el GDM no funciona correctament, sempre és una bona idea incloure informació de depuració. Per a habilitar la depuració, establiu la clau «debug/Enable» a «true» en el fitxer `<etc>/gdm/custom.conf` i reinicieu el GDM. Llavors utilitzeu el GDM cap al punt on falla i la sortida de depuració s'enviarà al registre del sistema (`<var>/log/messages` o `<var>/adm/messages` en funció del vostre sistema operatiu). Si compartiu aquesta sortida amb la comunitat del GDM mitjançant un informe d'error o un correu electrònic, incloeu només la informació de depuració relacionada amb el GDM i no el fitxer sencer, ja que pot ser molt gran. Si no veieu la sortida del registre del sistema del GDM, potser heu de configurar el registre del sistema (consulteu la pàgina del manual syslog).

### El GDM no s'inicia

Hi ha molts problemes que poden provocar que el GDM falli en iniciar-se, en aquesta secció però només es descriu alguns problemes comuns i com descobrir la causa dels problemes amb la inicialització del GDM. Alguns problemes faran que el GDM mostri un missatge o diàleg d'error quan intenta iniciar, però pot ser difícil saber la causa del problema si el GDM falla de forma silenciosa.

Primer assegureu-vos que el servidor X està configurat correctament. El fitxer de configuració del GDM conté una ordre a la secció [server-Standard] que s'utilitza per a iniciar el servidor X. Verifiqueu que aquesta ordre funciona. En executar aquesta ordre des del terminal s'hauria d'iniciar el servidor X. Si aquesta falla, llavors el problema segurament és amb la configuració del servidor X. Consulteu el registre d'errors del servidor X per a mirar quin pot ser el problema. El problema també pot ser que el servidor X necessita opcions diferents de la línia d'ordres. Si és així, modifiqueu l'ordre del servidor X al fitxer de configuració del GDM perquè sigui correcte pel vostre sistema.

També assegureu-vos que el directori `/tmp` té un propietari i permisos raonables, i que el sistema de fitxers de l'ordinador no està ple. Aquests problemes poden provocar que el GDM falli en iniciar-se.

## Llicència

Aquest programa és programari lliure; podeu redistribuir-lo i/o modificar-lo sota els termes de la Llicència pública general de GNU tal com publica la Free Software Foundation; tant en la versió 2 de la llicència, o (a la vostra opció) una versió posterior.

Aquest programa es distribueix amb l'esperança que sigui útil, però SENSE CAP GARANTIA; fins i tot sense la garantia implícita de COMERCIALITZACIÓ o ADEQUACIÓ A UN ÚS CONCRET. Per a més detalls vegeu la Llicència pública general de GNU.

S'inclou una còpia de la Llicència pública general de GNU en l'apèndix de la Guia d'usuaris del GNOME. També podeu obtenir una còpia de la Llicència pública general de GNU de la Free Software Foundation visitant el seu lloc web o escrivint a

          Free Software Foundation, Inc.
          51 Franklin Street, Fifth Floor
          Boston, MA 02110-1301
          USA