# GNOME Kijelzőkezelő referencia-kézikönyv

## A kézikönyvben használt kifejezések és egyezmények

Ez a kézikönyv a GNOME Kijelzőkezelő 2.26.0-s verzióját ismerteti. Utoljára 2009. október 2-án volt frissítve.

Választó: egy program, amelyet egy távoli gép kiválasztására használnak egy kijelzőnek a csatlakoztatott kijelzőn történő távoli kezeléséhez (`gdm-host-chooser`).

FreeDesktop: az asztali szabványokat biztosító szervezet, mint például a GDM által használt asztalibejegyzés-specifikáció, bővebben: http://www.freedesktop.org.

GDM: GNOME Kijelzőkezelő (GNOME Display Manager). A szoftvercsomag egészének leírására szolgál.

Üdvözlő: a grafikus bejelentkezési ablak (a `gnome-shell` által biztosítva).

PAM: moduláris hitelesítési modulok

XDMCP - X-megjelenítéskezelő protokoll

Xserve: az X ablakozó rendszer egy megvalósítása. Például az Xorg Xserver kiszolgálót az X.org Alapítvány (http://www.x.org) biztosítja.

A kúpos zárójelek között lévő szóval kezdődő útvonalak a telepítési előtagtól relatívak. Például a `<share>/pixmaps/` az `/usr/share/pixmaps` könyvtárra hivatkozik, ha a GDM a `--prefix=/usr` kapcsolóval lett beállítva.

## Áttekintés

### Bevezetés

A GNOME Display Manager (GDM) egy olyan kijelzőkezelő, amely megvalósítja a csatlakoztatott és távoli kijelzők kezeléséhez szükséges összes jelentős funkciót. A GDM a semmiből íródott, és nem tartalmaz semmilyen XDM vagy X-konzorcium kódot.

Vegye figyelembe, hogy a GDM konfigurálható, és számos beállítási lehetőség hatással van a biztonságra. Ebben a dokumentumban kiemelésre kerülnek azok a problémák, amelyekkel tisztában kell lenni.

Ne feledje, hogy egyes operációs rendszerek úgy állítják be a GDM-et, hogy az a jelen dokumentumban leírt alapértelmezett értékektől eltérően viselkedjen. Ha úgy tűnik, hogy a GDM nem a dokumentáltak szerint viselkedik, akkor ellenőrizze, hogy a kapcsolódó beállítások eltérnek-e az itt leírtaktól.

A GDM-mel kapcsolatos további információkért nézze meg a projekt webhelyét a http://wiki.gnome.org/Projects/GDM címen.

A GDM-mel kapcsolatos megbeszélések vagy kérdések esetén nézze meg a

    gdm-list@gnome.org

levelezőlistát. Ez a lista archiválva van, és jó erőforrás a gyakori kérdések megválaszolásához. A lista a http://mail.gnome.org/archives/gdm-list/ címen van archiválva, és rendelkezik keresési funkcióval a kulcsszavakkal történő üzenetkereséshez.

A hibajelentéseket és fejlesztési kéréseket a http://bugzilla.gnome.org címen lévő „gdm” kategóriába küldje.

### Az interfész stabilitása

A GDM 2.20 és a korábbi verziók stabil beállítási interfészeket támogattak. A kódbázist azonban teljesen átírták a GDM 2.22-höz, és nem teljesen kompatibilis visszafelé a régebbi kiadásokkal. Ez részben azért van, mert a dolgok másképp működnek, így néhány kapcsolónak egyszerűen nincs értelme, részben azért, mert néhány kapcsolónak soha nem volt értelme, részben pedig azért, mert néhány funkciót még nem valósítottak meg újra.

A továbbra is stabilan támogatott interfészek közé tartoznak az Init, PreSession, PostSession, PostLogin és Xsession parancsfájlok. Az `<etc>/gdm/custom.conf` beállítófájlban lévő néhány dámonbeállítási kapcsoló továbbra is támogatott. A `~/.dmrc` és az arcböngésző képhelyei továbbra is támogatottak.

A GDM 2.20 és a korábbi verziók támogatták a több különálló grafikus kártyával rendelkező kijelzők kezelésének lehetőségét, mint például a terminálkiszolgáló környezetben használtakat, egy ablakban történő bejelentkezést egy olyan programon keresztül, mint az Xnest vagy a Xephyr, a gdmsetup programot, az XML-alapú üdvözlő témákat és az XDMCP választónak a bejelentkezési képernyőről történő futtatásának lehetőségét. Ezek a funkciók nem kerültek vissza a 2.22-es átírás során.

### Funkcionális leírás

A GDM felelős a rendszer kijelzőinek kezeléséért. Ez magában foglalja a felhasználók hitelesítését, a felhasználói munkamenet elindítását és a felhasználói munkamenet megszüntetését. A GDM konfigurálható, és a beállítási módokat a dokumentum „A GDM beállítása” szakasza ismerteti. A GDM a fogyatékkal élő felhasználók számára is elérhető.

A GDM lehetővé teszi a fő konzol kijelzőjének és a virtuális terminálon keresztül indított kijelzőknek a kezelését. Integrálva van más programokkal, mint például a Fast User Switch Applet (FUSA) és a gnome-screensaver, hogy az Xserver virtuális terminál (VT) interfészen keresztül több kijelzőt tudjon kezelni a konzolon. Képes az XDMCP kijelzőket is kezelni.

A kijelző típusától függetlenül a GDM a kijelző kezelése során a következőket teszi. Elindít egy Xserver folyamatot, majd rendszergazda felhasználóként lefuttatja az `Init` parancsfájlt, és elindítja az üdvözlő programot a kijelzőn.

Az üdvözlő program a jogosultság nélküli „gdm” felhasználóként/csoportként fut. Ezt a felhasználót és csoportot a dokumentum „Biztonság” szakasza ismerteti. Az üdvözlő program fő funkciói a bejelentkezési fiók kiválasztási mechanizmusának biztosítása, valamint a felhasználó és a rendszer közötti párbeszéd irányítása a fiók hitelesítése során. A hitelesítési folyamatot a PAM (Pluggable Authentication Modules – moduláris hitelesítési modulok) vezérli. A PAM-modulok határozzák meg, hogy a felhasználó milyen kéréseket kap (ha kap egyáltalán) a hitelesítéshez. Egy átlagos rendszeren az üdvözlő program felhasználónevet és jelszót kér a hitelesítéshez. Egyes rendszerek azonban úgy is konfigurálhatók, hogy kiegészítő mechanizmusokat, például ujjlenyomat- vagy intelligenskártya-olvasót használjanak. A GDM úgy is konfigurálható, hogy ezeket az alternatívákat párhuzamosan támogassa az üdvözlő bejelentkezési kiterjesztésekkel és az `--enable-split-authentication` `./configure` kapcsolóval, vagy egyenként a rendszer PAM-konfigurációjával.

Az intelligens kártya kiterjesztés az `org.gnome.display-manager.extensions.smartcard.active` gsettings-kulccsal engedélyezhető vagy tiltható le.

Hasonlóképpen, az ujjlenyomat kiterjesztés az `org.gnome.display-manager.extensions.fingerprint.active` gsettings-kulccsal engedélyezhető vagy tiltható le.

A GDM és a PAM úgy is konfigurálható, hogy ne igényeljen semmilyen bemenetet, amely azt eredményezi, hogy a GDM automatikusan bejelentkezik és egyszerűen elindít egy munkamenetet, ami hasznos lehet bizonyos környezetekben, például egyfelhasználós rendszereknél vagy kioszkoknál.

A hitelesítés mellett az üdvözlő program lehetővé teszi a felhasználó számára, hogy kiválassza, melyik munkamenetet indítsa el és milyen nyelvet használjon. A munkameneteket .desktop utótaggal végződő fájlok határozzák meg. Ezekről a fájlokról további információ a dokumentum „GDM felhasználói munkamenet és nyelvbeállítás” szakaszában található. Alapértelmezetten a GDM úgy van beállítva, hogy egy arcböngészőt jelenítsen meg, így a felhasználó egy képre kattintva kiválaszthatja felhasználói fiókját, ahelyett hogy be kellene gépelnie a felhasználónevét. A GDM nyomon követi a felhasználó alapértelmezett munkamenetét és nyelvét a felhasználó `~/.dmrc` fájljában, és ezeket az alapértelmezéseket használja, ha a felhasználó nem választott munkamenetet vagy nyelvet a bejelentkezési felületen.

A felhasználó hitelesítése után a démon rendszergazda felhasználóként lefuttatja a `PostLogin` parancsfájlt, majd rendszergazda felhasználóként lefuttatja a `PreSession` parancsfájlt. Ezen parancsfájlok futtatása után a felhasználói munkamenet elindul. Ha a felhasználó kilép a munkamenetéből, akkor a `PostSession` parancsfájl lefut rendszergazdaként. Ezek a parancsfájlok horgokként szolgálnak a disztribúciók és a végfelhasználók számára, hogy személyre szabhassák a munkamenetek kezelését. Ezekkel a horgokkal például létrehozhat egy olyan gépet, amely menet közben hozza létre a felhasználó $HOME könyvtárát, és kijelentkezéskor törli azt. A `PostLogin` és a `PreSession` parancsfájlok között az a különbség, hogy a `PostLogin` a pam_open_session hívás előtt fut, így ez a megfelelő hely minden olyan feladatra, amelyet a felhasználói munkamenet előkészítése előtt kell lefuttatni. A `PreSession` parancsfájl a munkamenet előkészítése után kerül meghívásra.

### Üdvözlő panel

A GDM üdvözlő program a képernyő aljára dokkolt panelt jelenít meg, amely további funkciókat biztosít. A felhasználó kiválasztásakor a panel lehetővé teszi a felhasználó számára, hogy a bejelentkezés után kiválassza a használni kívánt munkamenetet, nyelvet és billentyűzetkiosztást. A billentyűzetkiosztás-választó a jelszó beírásakor használt billentyűzetkiosztást is megváltoztatja. A panel tartalmaz egy területet is a bejelentkezési szolgáltatások számára, hogy állapotikonokat hagyjanak ott. Néhány példa az állapotikonokra az akkumulátor ikonja az akkumulátor aktuális használatához, valamint az akadálymentesítési funkciók engedélyezésének ikonja. Az üdvözlő program olyan gombokat is biztosít, amelyek lehetővé teszik a felhasználó számára a rendszer leállítását vagy újraindítását. Szükség esetén a GDM úgy is konfigurálható, hogy a leállítás és újraindítás gombok ne jelenjenek meg. A GDM a PolicyKit segítségével (vagy az Oracle Solaris rendszeren lévő szerepalapú hozzáférés-vezérlésen keresztül) úgy is konfigurálható, hogy a leállítási vagy újraindítási kérés elfogadása előtt a felhasználónak megfelelő jogosultsággal kelljen rendelkeznie.

Vegye figyelembe, hogy a billentyűzetkiosztási funkciók csak a libxklavier támogatással rendelkező rendszereken érhetőek el.

### Akadálymentesítés

A GDM támogatja az „akadálymentes bejelentkezést”, amely lehetővé teszi a felhasználók számára, hogy akkor is bejelentkezzenek az asztali munkamenetükbe, ha nem tudják a képernyőt, az egeret vagy a billentyűzetet a szokásos módon, egyszerűen használni. Elérhetők az akadálymentes technológiai (AT) funkciók, mint például a képernyő-billentyűzet, a képernyőolvasó, a képernyőnagyító és az X-kiszolgáló AccessX billentyűzet-akadálymentesítése. Szükség esetén lehetőség van nagy méretű szöveg vagy nagy kontrasztú ikonok és vezérlők engedélyezésére is. A dokumentum „Akadálymentesítési beállítás” szakaszában további információkat talál arról, hogy hogyan lehet a különböző akadálymentesítési funkciókat beállítani.

Néhány operációs rendszeren meg kell győződni arról, hogy a GDM felhasználó tagja-e az „audio” csoportnak az olyan AT programok esetében, amelyeknek hangkimenetre van szükségük (például szövegről beszédre átalakító), hogy működőképesek legyenek.

### A GDB arcböngésző

Az arcböngésző egy olyan interfész, amely lehetővé teszi a felhasználók számára, hogy egy képre kattintva válasszák ki a felhasználónevüket. Ez a funkció az org.gnome.login-screen disable-user-list GSettings-kulcson keresztül engedélyezhető vagy tiltható le, és alapértelmezetten be van kapcsolva. Ha ki van kapcsolva, akkor a felhasználóknak kézzel kell beírniuk a teljes felhasználónevüket. Ha engedélyezve van, akkor megjeleníti az összes olyan helyi felhasználót, akik elérhetőek a bejelentkezésre a rendszeren (az /etc/passwd fájlban meghatározott összes felhasználói fiók, amelyeknek van érvényes parancsértelmezője és kellően magas UID-ja), valamint azokat a távoli felhasználókat, akik nemrég jelentkeztek be. A GDM 2.20 és a korábbi verziókban az arcböngésző az összes távoli felhasználót megpróbálta megjeleníteni, ami teljesítményproblémákat okozott a nagy, vállalati telepítésekben.

Az arcböngésző úgy van konfigurálva, hogy a leggyakrabban bejelentkező felhasználókat jelenítse meg a lista tetején. Ez segít abban, hogy a gyakran bejelentkező felhasználók gyorsan megtalálják bejelentkezési képüket.

Az arcböngésző támogatja a „kiegészítési keresést”, amely dinamikusan a listában lévő megfelelő felhasználónévre mozgatja az arckiválasztást a felhasználó gépelése közben. Ez azt jelenti, hogy egy hosszú felhasználónévvel rendelkező felhasználónak csak a felhasználónév első néhány karakterét kell beírnia, mielőtt a megfelelő elem kiválasztásra kerül a listában.

A GDM által használt ikonokat a rendszergazda globálisan telepítheti, vagy a felhasználó saját könyvtárában is elhelyezhetők. Globális telepítés esetén a `<share>/pixmaps/faces/` könyvtárban kell lenniük, és a fájlnévnek a felhasználó nevének kell lennie. Az arcképfájloknak a GTK+ által olvasható szabványos képeknek kell lenniük, például PNG vagy JPEG. A globális arcképek könyvtárában elhelyezett arcikonoknak a GDM felhasználó számára olvashatónak kell lenniük.

Ha a felhasználónak nincs globális ikonja, akkor a GDM a felhasználó $HOME könyvtárában keresi a képfájlt. A GDM először a felhasználó arcképét keresi a `~/.face` fájlban. Ha nem találja, akkor a `~/.face.icon` fájlt próbálja meg. Ha még mindig nem találja, akkor a `~/.gnome2/gdm` fájlban meghatározott „face/picture=” értéket használja.

Ha egy felhasználónak nincs meghatározott arcképe, akkor a GDM az aktuális GTK+ témában meghatározott „stock_person” ikont fogja használni. Ha nincs ilyen kép meghatározva, akkor egy általános arcképet fog használni tartalékként.

Ne feledje, hogy a távoli felhasználók saját könyvtáraiban található arcikonok betöltése és méretezése nagyon időigényes feladat lehet. Mivel a képek NIS-en vagy NFS-en keresztül történő betöltése nem praktikus, a GDM nem próbálja meg betölteni az arcképeket a távoli saját könyvtárakból.

Ha a böngésző be van kapcsolva, akkor a számítógépen lévő érvényes felhasználónevek mindenki számára láthatóvá válnak. Ha az XDMCP engedélyezve van, akkor a felhasználónevek a távoli felhasználók számára is láthatóak. Ez természetesen némileg korlátozza a biztonságot, mivel egy rosszindulatú felhasználónak nem kell kitalálnia az érvényes felhasználóneveket. Egyes nagyon szigorúan korlátozott környezetekben az arcböngésző nem biztos, hogy megfelelő.

### XDMCP

A GDM-démon úgy is konfigurálható, hogy figyelje és kezelje a távoli kijelzőktől érkező X-kijelzőkezelési protokoll (XDMCP) kéréseket. Alapértelmezetten az XDMCP-támogatás ki van kapcsolva, de igény szerint engedélyezhető. Ha a GDM TCP-csomagoló támogatással lett összeállítva, akkor a démon csak a TCP-csomagoló konfigurációs fájljában lévő GDM-szolgáltatás szakaszban megadott gépeknek ad hozzáférést.

A GDM számos olyan intézkedést tartalmaz, amelyek ellenállóbbá teszik az XDMCP-szolgáltatást érő szolgáltatásmegtagadási támadásokkal szemben. Sok protokollparaméter, a kézfogadási időkorlátok stb. finomhangolhatóak. Az alapértelmezett konfigurációnak észszerűen kell működnie a legtöbb rendszeren.

A GDM alapértelmezetten az XDMCP-kéréseket az XDMCP-nél használt normál UDP-porton, a 177-es porton figyeli, és a QUERY és BROADCAST_QUERY kérésekre egy WILLING csomag küldésével válaszol a küldőnek.

A GDM úgy is konfigurálható, hogy az INDIRECT lekérdezéseket tiszteletben tartsa, és gépválasztót jelenítsen meg a távoli kijelzőhöz. A GDM megjegyzi a felhasználó választását, és a későbbi kéréseket a kiválasztott kezelőhöz továbbítja. A GDM támogatja a protokoll olyan kiterjesztését is, amely elfelejteti az átirányítást, amint a felhasználó kapcsolódása sikerült. Ez a kiterjesztés csak akkor támogatott, ha mindkét démon GDM. Ez átlátszó, és az XDM vagy más, XDMCP-t megvalósító démonok figyelmen kívül fogják hagyni.

Ha úgy tűnik, hogy az XDMCP nem működik, akkor győződjön meg arról, hogy az összes gép meg van-e adva az `/etc/hosts` fájlban.

Az XDMCP használata során felmerülő biztonsági problémákkal kapcsolatos információkért olvassa el a „Biztonság” szakaszt.

### Naplózás

A GDM a rendszernaplót használja a hibák és az állapot naplózására. Naplózhat hibakeresési információkat is, amelyek hasznosak lehetnek a problémák felderítésében, ha a GDM nem működik megfelelően. A hibakeresési kimenetet az `<etc>/gdm/custom.conf` fájlban lévő debug/Enable kulcs „true” értékre állításával lehet engedélyezni.

A különböző X-kiszolgálóktól származó kimenetek a GDM naplókönyvtárában kerülnek tárolásra, amely általában a `<var>/log/gdm/` könyvtár. Az X-kiszolgáló minden üzenete a megjelenített értékhez tartozó `<display>.log` fájlba kerül mentésre.

A munkamenet kimenete átirányításra kerül a GDM-démonon keresztül a `~/`$XDG_CACHE_HOME`/gdm/session.log` fájlba, amely általában a `~/.cache/gdm/session.log` fájlra kerül kiterjesztésre. A fájl minden egyes bejelentkezéskor felülíródik, így ugyanannak a felhasználónak a GDM-en keresztüli kijelentkezése és újbóli bejelentkezése az előző munkamenet minden üzenetének elvesztését okozza.

Vegye figyelembe, hogy ha a GDM valamilyen okból nem tudja létrehozni ezt a fájlt, akkor egy `~/`$XDG_CACHE_HOME`/gdm/session.log.XXXXXXXX` nevű tartalékfájl lesz létrehozva, ahol az `XXXXXXXX` néhány véletlenszerű karakter.

### Gyors felhasználóváltás

A GDM lehetővé teszi, hogy egyszerre több felhasználó is bejelentkezzen. Miután egy felhasználó bejelentkezett, további felhasználók jelentkezhetnek be a GNOME panelen lévő felhasználóváltón keresztül, vagy a GNOME képernyővédőjének zároló képernyő párbeszédablakában lévő „Felhasználóváltás” gombra kattintva. Az aktív munkamenet ugyanezzel a mechanizmussal váltható oda és vissza. Vegye figyelembe, hogy egyes disztribúciók esetleg nem adják hozzá a felhasználóváltót az alapértelmezett panelkonfigurációhoz. A panel helyi menüjének használatával adható hozzá.

Vegye figyelembe, hogy ez a funkció a virtuális terminálokat támogató rendszereken érhető el. Ez a funkció nem fog működni, ha a virtuális terminálok nem érhetők el.

## Biztonság

### A GDM felhasználója és csoportja

A megfelelő működéshez biztonsági okokból ajánlott egy külön erre a célra létrehozott felhasználó- és csoportazonosítót használni. Ez a felhasználó és csoport a legtöbb rendszeren általában „gdm”, de bármilyen felhasználóra vagy csoportra beállítható. Az összes grafikus felhasználói felületű GDM program ezen felhasználóként fut, így a felhasználóval interakcióba lépő programok egy védőfallal ellátott környezetben futnak. Ennek a felhasználónak és csoportnak korlátozott jogosultságokkal kell rendelkeznie.

A „gdm” felhasználó számára szükséges egyetlen különleges jogosultság az Xauth-fájlok olvasásának és írásának képessége a `<var>/run/gdm` könyvtárban. A `<var>/run/gdm` könyvtárnak root:gdm tulajdonjoggal és 1777 jogosultsággal kell rendelkeznie.

Soha, semmilyen körülmények között sem szabad a GDM felhasználót vagy csoportot olyan felhasználóra beállítani, amelyhez egy felhasználó könnyen hozzáférést szerezhet, például a `nobody` felhasználóhoz. Bármely felhasználó, aki hozzáférést szerez egy Xauth-kulcshoz, kémkedhet a kapcsolódó munkamenetben futó grafikus felhasználói felületű programok után és vezérelheti azokat, vagy szolgáltatásmegtagadásos támadást hajthat végre ellene. Fontos gondoskodni arról, hogy a rendszer megfelelően legyen konfigurálva, és csak a „gdm” felhasználónak legyen hozzáférése ezekhez a fájlokhoz, illetve ne lehessen könnyen bejelentkezni ebbe a fiókba. Például a fiókot úgy kell beállítani, hogy ne legyen jelszava, vagy ne engedje, hogy nem rendszergazda felhasználók is bejelentkezhessenek a fiókba.

A GDM üdvözlő konfigurációja a GConf beállításai között van tárolva. Ahhoz, hogy a GDM felhasználó képes legyen a konfiguráció írására, az szükséges, hogy a „gdm” felhasználónak írható $HOME könyvtára legyen. A felhasználók tetszés szerint konfigurálhatják az alapértelmezett GConf konfigurációt, hogy ne kelljen írható $HOME könyvtárral rendelkező „gdm” felhasználót biztosítani. Azonban a GDM egyes funkciói letiltásra kerülhetnek, ha nem képes állapotinformációkat írni a GConf konfigurációba.

### PAM

A GDM a PAM-et használja a bejelentkezés hitelesítésére. A PAM a Pluggable Authentication Modules (moduláris hitelesítési modulok) rövidítése, és a legtöbb olyan program használja, amely hitelesítést kér a számítógépen. Lehetővé teszi a rendszergazdának, hogy a különböző bejelentkezési programok (például ssh, bejelentkezési grafikus felület, képernyővédő stb.) számára különleges hitelesítési viselkedést állítson be.

A PAM bonyolult és nagymértékben konfigurálható, de ennek a dokumentációnak nem célja, hogy ezt részletesen elmagyarázza. Ehelyett inkább áttekintést kíván adni arról, hogy a PAM konfigurációja hogyan kapcsolódik a GDM-hez, hogyan konfigurálják általában a PAM-ot a GDM-mel, valamint az ismert problémákat ismerteti. Elvárható, hogy egy olyan személynek, akinek a PAM konfigurációját kell elvégeznie, a PAM dokumentációjának további olvasása szükséges ahhoz, hogy megértse, hogyan kell a PAM-ot konfigurálni, és hogy megértse az ebben a szakaszban használt kifejezéseket.

A PAM konfigurációjának eltérő, de hasonló interfészei vannak a különböző operációs rendszereken, ezért a részletekért nézze meg a pam.d vagy pam.conf kézikönyvoldalakat. Győződjön meg arról, hogy elolvasta-e a PAM dokumentációját, és tisztában van-e a konfiguráción végrehajtani kívánt változtatások biztonsági vonatkozásaival.

Vegye figyelembe, hogy alapértelmezetten a GDM a „gdm” PAM-szolgáltatásnevet használja a normál bejelentkezéshez és a „gdm-autologin” PAM-szolgáltatásnevet az automatikus bejelentkezéshez. Előfordulhat, hogy ezek a szolgáltatások nincsenek meghatározva a pam.d vagy pam.conf beállítófájlban. Ha nincs bejegyzés, akkor a GDM az alapértelmezett PAM-viselkedést fogja használni. A legtöbb rendszeren ennek jól kell működnie. Azonban előfordulhat, hogy az automatikus bejelentkezés funkció nem működik, ha a gdm-autologin szolgáltatás nincs meghatározva.

A `PostLogin` parancsfájl a pam_open_session meghívása előtt fut le, a `PreSession` parancsfájl pedig azután kerül meghívásra. Ez lehetővé teszi a rendszergazdának, hogy bármilyen parancsfájlt hozzáadjon a bejelentkezési folyamathoz akár a PAM-munkamenet előkészítése előtt, akár utána.

Ha a GDM-et más típusú hitelesítési mechanizmusokkal (például ujjlenyomat- vagy intelligenskártya-olvasóval) is működőképessé szeretné tenni, akkor ezt a kívánt hitelesítési típushoz tartozó PAM-szolgáltatási modul használatával kell megvalósítania, nem pedig a GDM-kód közvetlen módosításának kísérletével. Olvassa el a rendszerén lévő PAM-dokumentációt. Ennek módját gyakran megvitatták a

    gdm-list@gnome.org

levelezőlistán, így a lista archívumában további információkra lelhet.

A PAM-nak vannak bizonyos korlátai a tekintetben, hogy egyszerre több hitelesítési típussal is képes legyen dolgozni, például az intelligens kártya elfogadásának, illetve a felhasználónévnek és jelszónak a bejelentkezési programba való beírási képességének támogatásában. Vannak olyan technikák, amelyekkel ez működik, és a legjobb, ha egy ilyen konfiguráció beállításakor utánanéz, hogy ezt a problémát általában hogyan szokták megoldani.

Ha az automatikus bejelentkezés nem működik egy rendszeren, akkor ellenőrizze, hogy a „gdm-autologin” PAM-verem meg van-e határozva a PAM konfigurációjában. Ahhoz, hogy ez működjön, olyan PAM-modult kell használni, amely egyszerűen nem végez hitelesítést, vagy amely egyszerűen PAM_SUCCESS értéket ad vissza az összes nyilvános interfészéről. Feltételezve, hogy a rendszere rendelkezik olyan pam_allow.so PAM-modullal, amely ezt teszi, a „gdm-autologin” engedélyezéséhez szükséges PAM-konfigurációnak így kellene kinéznie:

           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

A fenti beállítás nem fogja az utolsó bejelentkezés bejegyzésének előállítását eredményezni. Ha utolsó bejelentkezés bejegyzése szükséges, akkor használja a következőket a munkamenethez:

           gdm-autologin session required pam_unix_session.so.1

Ha a számítógépet többen használják, ami miatt az automatikus bejelentkezés nem megfelelő, akkor egyes felhasználók számára engedélyezheti a jelszó megadása nélküli bejelentkezést. Ezt a funkciót a gnome-system-tools programban lévő users-admin eszközben lehet felhasználónként engedélyezni. Ez úgy érhető el, hogy a jelszó bekérése előtt ellenőrzi, hogy a felhasználó tagja-e a „nopasswdlogin” nevű Unix-csoportnak. Ahhoz, hogy ez működjön, a „gdm” szolgáltatás PAM-beállítófájljának tartalmaznia kell egy ehhez hasonló sort:

          gdm auth  sufficient  pam_succeed_if.so  user ingroup nopasswdlogin

### utmp és wtmp

A GDM utmp és wtmp felhasználó-nyilvántartási adatbázis-bejegyzéseket állít elő a munkamenetbe történő bejelentkezéskor és kijelentkezéskor. Az utmp-adatbázis tartalmazza a felhasználók hozzáférési és nyilvántartási adatait, amelyekhez olyan parancsok férnek hozzá, mint a `finger`, `last`, `login` és `who`. A wtmp-adatbázis tartalmazza az utmp-adatbázis felhasználó-hozzáférési és nyilvántartási információinak előzményeit. További információkért olvassa el az utmp és wtmp kézikönyvoldalakat a rendszerén.

### X-kiszolgáló hitelesítési séma

Az X-kiszolgáló felhatalmazási fájljai a `<var>/run/gdm` egy újonnan létrehozott alkönyvtárában vannak eltárolva az induláskor. Ezeket a fájlokat az X-ügyfelek és az X-kiszolgáló közötti „jelszó” tárolására és megosztására használják. Ez a „jelszó” egyedi minden egyes bejelentkezett munkamenetnél, így az egyik munkamenet felhasználói nem hallgathatják ki a másik munkamenet felhasználóit.

A GDM csak a MIT-MAGIC-COOKIE-1 X-kiszolgáló hitelesítési sémát támogatja. Általában keveset lehet nyerni a többi sémából, és eddig nem is tettek erőfeszítést a megvalósításukra. Különösen óvatosnak kell lenni az XDMCP használatával, mert az X-kiszolgáló hitelesítési sütije nyílt szövegként megy át a hálózaton. Ha a lehallgatás lehetséges, akkor egy támadó a használt hitelesítési sémától függetlenül egyszerűen lehallgathatja a hitelesítési jelszavát, amikor bejelentkezik. Ha a lehallgatás lehetséges és nem kívánatos, akkor inkább ssh-t kell használni az X-kapcsolat alagútjának létrehozására az XDMCP használata helyett. Az XDMCP-re egyfajta grafikus telnetként is gondolhat, amelynek ugyanolyan biztonsági problémái vannak. A legtöbb esetben az ssh -Y előnyben részesítendő a GDM XDMCP funkcióival szemben.

### XDMCP biztonság

Annak ellenére, hogy a kijelzőt sütik védik, az X-események és így a jelszavak bevitele során beírt billentyűleütések továbbra is nyílt szövegként kerülnek átvitelre a hálózaton. Ezek elfogása triviális.

Az XDMCP elsősorban vékony kliensek futtatásához hasznos, például terminál laborokban. Ezeknek a vékony klienseknek mindig csak a kiszolgáló eléréséhez van szükségük a hálózatra, ezért a legjobb biztonsági irányelvnek az tűnik, ha ezek a vékony kliensek külön hálózaton vannak, amelyhez a külvilág nem férhet hozzá, és csak a kiszolgálóhoz tudnak kapcsolódni. Az egyetlen pont, ahonnan a külvilágot el kell érni, az a kiszolgáló. Az ilyen típusú beállítások soha nem használhatnak kezeletlen elosztót vagy más lehallgatható hálózatot.

### XDMCP hozzáférés-vezérlés

Az XDMCP hozzáférés-vezérlése TCP-csomagolók használatával történik. Lehetséges a GDM-et TCP-csomagoló támogatása nélkül is lefordítani, így előfordulhat, hogy ez a funkció nem támogatott néhány operációs rendszeren.

A `gdm` démon nevét kell használnia a `<etc>/hosts.allow` és a `<etc>/hosts.deny` fájlokban. Például az `.evil.domain` tartományból származó számítógépek bejelentkezésének megtagadásához adja hozzá a következőt:

    gdm: .evil.domain

a `<etc>/hosts.deny` fájlhoz. Szükség lehet még a következő hozzáadására:

    gdm: .your.domain

a `<etc>/hosts.allow` fájlhoz, ha általában az összes szolgáltatást letiltja az összes gépről. A részletekért nézze meg a hosts.allow(5) kézikönyvoldalt.

### Tűzfal biztonság

Annak ellenére, hogy a GDM megpróbál túljárni az XDMCP-t kihasználni próbáló potenciális támadók eszén, mégis azt tanácsoljuk, hogy blokkolja az XDMCP-portot (általában a 177-es UDP-portot) a tűzfalán, hacsak valóban nincs rá szükség. A GDM védelmet nyújt a szolgáltatásmegtagadásos támadások ellen, de az X protokoll még mindig eleve nem biztonságos, és csak ellenőrzött környezetekben szabad használni. Emellett minden egyes távoli kapcsolat sok erőforrást vesz igénybe, így sokkal könnyebb szolgáltatásmegtagadásos támadást végrehajtani az XDMCP-n keresztül, mint egy webkiszolgálót megtámadni.

Az összes X-kiszolgáló portot is bölcs dolog blokkolni. Ezek a 6000 fölötti TCP-portok (minden kijelzőszámhoz egy) a tűzfalon. Vegye figyelembe, hogy a GDM a 20-as és annál magasabb kijelzőszámokat használja a rugalmas, igény szerinti kiszolgálókhoz.

Az X nem túl biztonságos protokoll, ha az interneten keresztül használják, az XDMCP pedig még kevésbé biztonságos.

### PolicyKit

A GDM úgy is konfigurálható, hogy PolicyKitet használjon annak lehetővé tételére, hogy a rendszergazda vezérelhesse azt, hogy a bejelentkezési képernyő biztosítson-e leállítás és újraindítás gombokat az üdvözlő képernyőn.

Ezeket a gombokat az `org.freedesktop.consolekit.system.stop-multiple-users` és az `org.freedesktop.consolekit.system.restart-multiple-users` műveletek vezérlik, ebben a sorrendben. Ezeknek a műveleteknek a házirendjét a polkit-gnome-authorization eszköz vagy a polkit-auth parancssori program használatával lehet beállítani.

### RBAC (szerepalapú hozzáférés-vezérlés)

A GDM úgy is konfigurálható, hogy szerepalapú hozzáférés-vezérlést (RBAC) használjon a PolicyKit helyett. Ebben az esetben a szerepalapú hozzáférés-vezérlés konfigurációja használható annak vezérlésére, hogy a bejelentkezési képernyő biztosítson-e leállítás és újraindítás gombokat az üdvözlő képernyőn.

Például az Oracle Solaris rendszeren a „solaris.system.shutdown” felhatalmazást használják ennek vezérlésére. Egyszerűen módosítsa az `/etc/user_attr` fájlt úgy, hogy a „gdm” felhasználó rendelkezzen ezzel a felhatalmazással.

## ConsoleKit támogatás

GDM includes support for publishing user login information with the user and login session accounting framework known as ConsoleKit. ConsoleKit is able to keep track of all the users currently logged in. In this respect, it can be used as a replacement for the utmp or utmpx files that are available on most Unix-like Operating Systems.

When GDM is about to create a new login process for a user it will call a privileged method of ConsoleKit in order to open a new session for this user. At this time GDM also provides ConsoleKit with information about this user session such as: the user ID, the X11 Display name that will be associated with the session, the host-name from which the session originates (useful in the case of an XDMCP session), whether or not this session is attached, etc. As the entity that initiates the user process, GDM is in a unique position to know about the user session and to be trusted to provide these bits of information. The use of this privileged method is restricted by the use of the D-Bus system message bus security policy.

In case a user with an existing session has authenticated at GDM and requests to resume that existing session, GDM calls a privileged method of ConsoleKit to unlock that session. The exact details of what happens when the session receives this unlock signal are undefined and session-specific. However, most sessions will unlock a screensaver in response.

When the user chooses to log out, or if GDM or the session quit unexpectedly the user session will be unregistered from ConsoleKit.

## Beállítás

GDM has a number of configuration interfaces. These include scripting integration points, daemon configuration, greeter configuration, general session settings, integration with gnome-settings-daemon configuration, and session configuration. These types of integration are described in detail below.

### Scripting Integration Points

The GDM script integration points can be found in the `<etc>/gdm/` directory:

    Xsession
    Init/
    PostLogin/
    PreSession/
    PostSession/

The `Init`, `PostLogin`, `PreSession`, and `PostSession` scripts all work as described below.

For each type of script, the default one which will be executed is called "Default" and is stored in a directory associated with the script type. So the default `Init` script is `<etc>/gdm/Init/Default`. A per-display script can be provided, and if it exists it will be run instead of the default script. Such scripts are stored in the same directory as the default script and have the same name as the Xserver DISPLAY value for that display. For example, if the `<Init>/:0` script exists, it will be run for DISPLAY ":0".

All of these scripts are run with root privilege and return 0 if run successfully, and a non-zero return code if there was any failure that should cause the login session to be aborted. Also note that GDM will block until the scripts finish, so if any of these scripts hang, this will cause the login process to also hang.

When the Xserver for the login GUI has been successfully started, but before the login GUI is actually displayed, GDM will run the `Init` script. This script is useful for starting programs that should be run while the login screen is showing, or for doing any special initialization if required.

After the user has been successfully authenticated GDM will run the `PostLogin` script. This is done before any session setup has been done, including before the pam_open_session call. This script is useful for doing any session initialization that needs to happen before the session starts. For example, you might setup the user's $HOME directory if needed.

After the user session has been initialized, GDM will run the `PreSession` script. This script is useful for doing any session initialization that needs to happen after the session has been initialized. It can be used for session management or accounting, for example.

When a user terminates their session, GDM will run the `PostSession` script. Note that the Xserver will have been stopped by the time this script is run, so it should not be accessed.

Note that the `PostSession` script will be run even when the display fails to respond due to an I/O error or similar. Thus, there is no guarantee that X applications will work during script execution.

All of the above scripts will set the `$RUNNING_UNDER_GDM` environment variable to `yes`. If the scripts are also shared with other display managers, this allows you to identify when GDM is calling these scripts, so you can run specific code when GDM is used.

### Autostart Configuration

The `<share>/gdm/autostart/LoginWindow` directory contains files in the format specified by the "FreeDesktop.org Desktop Application Autostart Specification". Standard features in the specification may be used to specify programs that should auto-restart or only be launched if a GConf configuration value is set, etc.

Any `.desktop` files in this directory will cause the associated program to automatically start with the login GUI greeter. By default, GDM is shipped with files which will autostart the gdm-simple-greeter login GUI greeter itself, the gnome-power-manager application, the gnome-settings-daemon, and the metacity window manager. These programs are needed for the greeter program to work. In addition, desktop files are provided for starting various AT programs if the configuration values specified in the Accessibility Configuration section below are set.

### Xsession Script

There is also an `Xsession` script located at `<etc>/gdm/Xsession` which is called between the `PreSession` and the `PostSession` scripts. This script does not support per-display like the other scripts. This script is used for actually starting the user session. This script is run as the user, and it will run whatever session was specified by the Desktop session file the user selected to start.

### Daemon Configuration

The GDM daemon is configured using the `<etc>/gdm/custom.conf` file. Default values are stored in GConf in the `gdm.schemas` file. It is recommended that end-users modify the `<etc>/gdm/custom.conf` file because the schemas file may be overwritten when the user updates their system to have a newer version of GDM.

Note that older versions of GDM supported additional configuration options which are no longer supported in the latest versions of GDM.

The `<etc>/gdm/custom.conf` file is in the `keyfile` format. Keywords in brackets define group sections, strings before an equal sign (=) are keys and the data after equal sign represents their value. Empty lines or lines starting with the hash mark (#) are ignored.

The file `<etc>/gdm/custom.conf` supports the "[daemon]", "[security]", and "[xdmcp]" group sections. Within each group, there are particular key/value pairs that can be specified to modify how GDM behaves. For example, to enable timed login and specify the timed login user to be a user named "you", you would modify the file so it contains the following lines:

    [daemon]
    TimedLoginEnable=true
    TimedLogin=you

A full list of supported configuration keys follow:

#### [chooser]

Multicast

-     Multicast=false

  If true and IPv6 is enabled, the chooser will send a multicast query to the local network and collect responses from the hosts who have joined multicast group.

MulticastAddr

-     MulticastAddr=ff02::1

  This is the Link-local multicast address.

#### [daemon]

TimedLoginEnable

-     TimedLoginEnable=false

  If the user given in `TimedLogin` should be logged in after a number of seconds (set with `TimedLoginDelay`) of inactivity on the login screen. This is useful for public access terminals or perhaps even home use. If the user uses the keyboard or browses the menus, the timeout will be reset to `TimedLoginDelay` or 30 seconds, whichever is higher. If the user does not enter a username but just hits the ENTER key while the login program is requesting the username, then GDM will assume the user wants to login immediately as the timed user. Note that no password will be asked for this user so you should be careful, although if using PAM it can be configured to require password entry before allowing login. Refer to the "Security->PAM" section of the manual for more information, or for help if this feature does not seem to work.

TimedLogin

-     TimedLogin=

  This is the user that should be logged in after a specified number of seconds of inactivity.

  If the value ends with a vertical bar | (the pipe symbol), then GDM will execute the program specified and use whatever value is returned on standard out from the program as the user. The program is run with the DISPLAY environment variable set so that it is possible to specify the user in a per-display fashion. For example if the value is "/usr/bin/getloginuser|", then the program "/usr/bin/getloginuser" will be run to get the user value.

TimedLoginDelay

-     TimedLoginDelay=30

  Delay in seconds before the `TimedLogin` user will be logged in.

AutomaticLoginEnable

-     AutomaticLoginEnable=false

  If true, the user given in `AutomaticLogin` should be logged in immediately. This feature is like timed login with a delay of 0 seconds.

AutomaticLogin

-     AutomaticLogin=

  This is the user that should be logged in immediately if `AutomaticLoginEnable` is true.

  If the value ends with a vertical bar | (the pipe symbol), then GDM will execute the program specified and use whatever value is returned on standard out from the program as the user. The program is run with the DISPLAY environment variable set so that it is possible to specify the user in a per-display fashion. For example if the value is "/usr/bin/getloginuser|", then the program "/usr/bin/getloginuser" will be run to get the user value.

User

-     User=gdm

  The username under which the greeter and other GUI programs are run. Refer to the `Group` configuration key and to the "Security->GDM User And Group" section of this document for more information.

Group

-     Group=gdm

  The group name under which the greeter and other GUI programs are run. Refer to the `User` configuration key and to the "Security->GDM User And Group" section of this document for more information.

#### Debug Options

#### [debug]

Enable

-     Enable=false

  To enable debugging, set the debug/Enable key to "true" in the `<etc>/gdm/custom.conf` file and restart GDM. Then debug output will be sent to the system log file (`<var>/log/messages` or `<var>/adm/messages` depending on your Operating System).

#### Greeter Options

#### [greeter]

IncludeAll

-     IncludeAll=true

  If true, then the face browser will show all users on the local machine. If false, the face browser will only show users who have recently logged in.

  When this key is true, GDM will call fgetpwent() to get a list of local users on the system. Any users with a user id less than 500 (or 100 if running on Oracle Solaris) are filtered out. The Face Browser also will display any users that have previously logged in on the system (for example NIS/LDAP users). It gets this list via calling the `ck-history` ConsoleKit interface. It will also filter out any users which do not have a valid shell (valid shells are any shell that getusershell() returns - /sbin/nologin or /bin/false are considered invalid shells even if getusershell() returns them).

  If false, then GDM more simply only displays users that have previously logged in on the system (local or NIS/LDAP users) by calling the `ck-history` ConsoleKit interface.

Include

-     Include=

  Set to a list of users to always include in the Face Browser. This value is set to a list of users separated by commas. By default, the value is empty.

Exclude

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

  Set to a list of users to always exclude in the Face Browser. This value is set to a list of users separated by commas. Note that the setting in the `custom.conf` overrides the default value, so if you wish to add additional users to the list, then you need to set the value to the default value with additional users appended to the list.

#### Security Options

#### [security]

DisallowTCP

-     DisallowTCP=true

  If true, then always append `-nolisten tcp` to the command line when starting attached Xservers, thus disallowing TCP connection. This is a more secure configuration if you are not using remote connections.

#### XDCMP Support

#### [xdmcp]

DisplaysPerHost

-     DisplaysPerHost=1

  To prevent attackers from filling up the pending queue, GDM will only allow one connection for each remote computer. If you want to provide display services to computers with more than one screen, you should increase this value.

  Note that the number of attached DISPLAYS allowed is not limited. Only remote connections via XDMCP are limited by this configuration option.

Enable

-     Enable=false

  Setting this to true enables XDMCP support allowing remote displays/X terminals to be managed by GDM.

  `gdm` listens for requests on UDP port 177. See the Port option for more information.

  If GDM is compiled to support it, access from remote displays can be controlled using the TCP Wrappers library. The service name is `gdm`

  You should add

      gdm:.my.domain

  to your `<etc>/hosts.allow`, depending on your TCP Wrappers configuration. See the hosts.allow man page for details.

  Please note that XDMCP is not a particularly secure protocol and that it is a good idea to block UDP port 177 on your firewall unless you really need it.

HonorIndirect

-     HonorIndirect=true

  Enables XDMCP INDIRECT choosing (i.e. remote execution of `gdmchooser`) for X-terminals which do not supply their own display browser.

MaxPending

-     MaxPending=4

  To avoid denial of service attacks, GDM has fixed size queue of pending connections. Only MaxPending displays can start at the same time.

  Please note that this parameter does not limit the number of remote displays which can be managed. It only limits the number of displays initiating a connection simultaneously.

MaxSessions

-     MaxSessions=16

  Determines the maximum number of remote display connections which will be managed simultaneously. I.e. the total number of remote displays that can use your host.

MaxWait

-     MaxWait=30

  When GDM is ready to manage a display an ACCEPT packet is sent to it containing a unique session id which will be used in future XDMCP conversations.

  GDM will then place the session id in the pending queue waiting for the display to respond with a MANAGE request.

  If no response is received within MaxWait seconds, GDM will declare the display dead and erase it from the pending queue freeing up the slot for other displays.

MaxWaitIndirect

-     MaxWaitIndirect=30

  The MaxWaitIndirect parameter determines the maximum number of seconds between the time where a user chooses a host and the subsequent indirect query where the user is connected to the host. When the timeout is exceeded, the information about the chosen host is forgotten and the indirect slot freed up for other displays. The information may be forgotten earlier if there are more hosts trying to send indirect queries then `MaxPendingIndirect`.

PingIntervalSeconds

-     PingIntervalSeconds=60

  If the Xserver does not respond in the specified number of seconds, then the connection is stopped and the session ended. When this happens the daemon dies with an ALARM signal. Note that GDM 2.20 and earlier multiplied this setting by 2, so it may be necessary to increase the timeout if upgrading from GDM 2.20 and earlier to a newer version.

  Note that GDM in the past used to have a `PingInterval` configuration key which was also in minutes. For most purposes you'd want this setting to be lower than one minute. However since in most cases where XDMCP would be used (such as terminal labs), a lag of more than 15 or so seconds would really mean that the terminal was turned off or restarted and you would want to end the session.

Port

-     Port=177

  The UDP port number `gdm` should listen to for XDMCP requests. Do not change this unless you know what you are doing.

Willing

-     Willing=<etc>/gdm/Xwilling

  When the machine sends a WILLING packet back after a QUERY it sends a string that gives the current status of this server. The default message is the system ID, but it is possible to create a script that displays customized message. If this script does not exist or this key is empty the default message is sent. If this script succeeds and produces some output, the first line of it's output is sent (and only the first line). It runs at most once every 3 seconds to prevent possible denial of service by flooding the machine with QUERY packets.

### Simple Greeter Configuration

The GDM default greeter is called the simple Greeter and is configured via GConf. Default values are stored in GConf in the `gdm-simple-greeter.schemas` file. These defaults can be overridden if the "gdm" user has a writable $HOME directory to store GConf settings. These values can be edited using the `gconftool-2` or `gconf-editor` programs. The following configuration options are supported:

### Greeter Configuration Keys

/apps/gdm/simple-greeter/banner_message_enable

-     false (boolean)

  Controls whether the banner message text is displayed.

/apps/gdm/simple-greeter/banner_message_text

-     NULL (string)

  Specifies the text banner message to show on the greeter window.

/apps/gdm/simple-greeter/disable_restart_buttons

-     false (boolean)

  Controls whether to show the restart buttons in the login window.

/apps/gdm/simple-greeter/disable_user_list

-     false (boolean)

  If true, then the face browser with known users is not shown in the login window.

/apps/gdm/simple-greeter/logo_icon_name

-     computer (string)

  Set to the themed icon name to use for the greeter logo.

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

-     [] (string list)

  Set to a list of languages to be shown by default in the login window. Default value is "[]". With the default setting only the system default language is shown and the option "Other..." which pops-up a dialog box showing a full list of available languages which the user can select.

  Users are not intended to change this setting by hand. Instead GDM keeps track of any languages selected in this configuration key, and will show them in the language combo box along with the "Other..." choice. This way, commonly selected languages are easier to select.

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

-     [] (string list)

  Set to a list of keyboard layouts to be shown by default in the login panel. Default value is "[]". With the default setting only the system default keyboard layout is shown and the option "Other..." which pops-up a dialog box showing a full list of available keyboard layouts which the user can select.

  Users are not intended to change this setting by hand. Instead GDM keeps track of any keyboard layouts selected in this configuration key, and will show them in the keyboard layout combo box along with the "Other..." choice. This way, commonly selected keyboard layouts are easier to select.

/apps/gdm/simple-greeter/wm_use_compiz

-     false (boolean)

  Controls whether compiz is used as the window manager instead of metacity.

### Akadálymentesítési beállítások

This section describes the accessibility configuration options available in GDM.

#### GDM Accessibility Dialog And GConf Keys

The GDM greeter panel at the login screen displays an accessibility icon. Clicking on that icon opens the GDM Accessibility Dialog. In the GDM Accessibility Dialog, there is a list of checkboxes, so the user can enable or disable the associated assistive tools.

The checkboxes that correspond to the on-screen keyboard, screen magnifier and screen reader assistive tools act on the three GConf keys that are described in the next section of this document. By enabling or disabling these checkboxes, the associated GConf key is set to "true" or "false". When the GConf key is set to true, the assistive tools linked to this GConf key are launched. When the GConf key is set to "false", any running assistive tool linked to this GConf key are terminated. These GConf keys are not automatically reset to a default state after the user has logged in. Consequently, the assistive tools that were running during the last GDM login session will automatically be launched at the next GDM login session.

The other checkboxes in the GDM Accessibility Dialog do not have corresponding GConf keys because no additional program is launched to provide the accessibility features that they offer. These other options correspond to accessibility features that are provided by the Xserver, which is always running during the GDM session.

#### Accessibility GConf Keys

GDM offers the following GConf keys to control its accessibility features:

#### GDM Configuration Keys

/desktop/gnome/interface/accessibility

-     false (boolean)

  Controls whether the Accessibility infrastructure will be started with the GDM GUI. This is needed for many accessibility technology programs to work.

/desktop/gnome/applications/at/screen_magnifier_enabled

-     false (boolean)

  If set, then the assistive tools linked to this GConf key will be started with the GDM GUI program. By default this is a screen magnifier application.

/desktop/gnome/applications/at/screen_keyboard_enabled

-     false (boolean)

  If set, then the assistive tools linked to this GConf key will be started with the GDM GUI program. By default this is an on-screen keyboard application.

/desktop/gnome/applications/at/screen_reader_enabled

-     false (boolean)

  If set, then the assistive tools linked to this GConf key will be started with the GDM GUI program. By default this is a screen reader application.

#### Linking GConf Keys to Accessibility Tools

For the screen_magnifier_enabled, the screen_keyboard_enabled, and the screen_reader_enabled GConf keys, the assistive tool which gets launched depends on the desktop files located in the GDM autostart directory as described in the "Autostart Configuration" section of this manual. Any desktop file in the GDM autostart directory can be linked to these GConf key via specifying that GConf key in the AutostartCondition value in the desktop file. So the exact AutostartCondition line in the desktop file could be one of the following:

    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

When an accessibility key is true, then any program which is linked to that key in a GDM autostart desktop file will be launched (unless the Hidden key is set to true in that desktop file). A single GConf key can even start multiple assistive tools if there are multiple desktop files with this AutostartCondition in the GDM autostart directory.

#### Example Of Modifying Accessibility Tool Configuration

For example, if GNOME is distributed with GOK as the default on-screen keyboard, then this could be replaced with a different program if desired. To replace GOK with the on-screen keyboard application "onboard" and additionally activate the assistive tool "mousetweaks" for dwelling support, then the following configuration is needed.

Create a desktop file for onboard and a second one for mousetweaks; for example, onboard.desktop and mousetweaks.desktop. These files must be placed in the GDM autostart directory and be in the format as explained in the "Autostart Configuration" section of this document.

The following is an example `onboard.desktop` file:

    [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

The following is an example `mousetweaks.desktop` file:

    [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

Note the line with the AutostartCondition that links both desktop files to the GConf key for the on-screen keyboard.

To disable GOK from starting, the desktop file for the GOK on-screen keyboard must be removed or deactivated. Otherwise onboard and GOK would simultaneously be started. This can be done by removing the gok.desktop file from the GDM autostart directory, or by adding the "Hidden=true" key setting to the gok.desktop file.

After making these changes, GOK will no longer be started when the user activates the on-screen keyboard in the GDM session; but onboard and mousetweaks will instead be launched.

### General Session Settings

The GDM Greeter uses some of the same framework that your desktop session will use. And so, it is influenced by a number of the same GConf settings. For each of these settings the Greeter will use the default value unless it is specifically overridden by a) GDM's installed mandatory policy b) system mandatory policy. GDM installs its own mandatory policy to lock down some settings for security.

### GNOME Settings Daemon

GDM enables the following gnome-settings-daemon plugins: a11y-keyboard, background, sound, xsettings.

These are responsible for things like the background image, font and theme settings, sound events, etc.

Plugins can also be disabled using GConf. For example, if you want to disable the sound plugin then unset the following key: `/apps/gdm/simple-greeter/settings-manager-plugins/sound/active`.

### GDM Session Configuration

GDM sessions are specified using the FreeDesktop.org Desktop Entry Specification, which can be referenced at the following URL: http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec.

By default, GDM will install desktop files in the `<share>/xsessions` directory. GDM will search the following directories in this order to find desktop files: `<etc>/X11/sessions/`, `<dmconfdir>/Sessions`, `<share>/xsessions`, and `<share>/gdm/BuiltInSessions`. By default the `<dmconfdir>` is set to `<etc>/dm/` unless GDM is configured to use a different directory via the "--with-dmconfdir" option.

A session can be disabled by editing the desktop file and adding a line as follows: `Hidden=true`.

GDM desktop files support a GDM-specific extension, a key named "X-GDM-BypassXsession". If the key is not specified in a desktop file, the value defaults to "false". If this key is specified to be "true" in a desktop file, then GDM will launch the program specified by the desktop file "Exec" key directly when starting the user session. It will not run the program via the `<etc>/gdm/Xsession` script, which is the normal behavior. Since bypassing the `<etc>/gdm/Xsession` script avoids setting up the user session with the normal system and user settings, sessions started this way can be useful for debugging problems in the system or user scripts that might be preventing a user from being able to start a session.

### GDM felhasználói munkamenet és nyelvbeállítás

A felhasználó alapértelmezett munkamenet- és nyelvválasztása a `~/.dmrc` fájlban van tárolva. Amikor egy felhasználó először jelentkezik be, akkor ez a fájl létrehozásra kerül a felhasználó kezdeti választásaival. A felhasználó megváltoztathatja ezeket az alapértelmezett értékeket, ha bejelentkezéskor egyszerűen más értékre vált. A GDM megjegyzi ezt a változtatást a későbbi bejelentkezéseknél.

A `~/.dmrc` fájl a szabványos `INI` formátumban van. Tartalmaz egy `[Desktop]` szakaszt, amelynek két kulcsa van: `Session` és `Language`.

A `Session` kulcs adja meg a munkamenet `.desktop` fájljának alapnevét, amelyet a felhasználó általában a `.desktop` kiterjesztés nélkül szeretne használni. A `Language` kulcs adja meg azt a nyelvet, amelyet a felhasználó alapértelmezetten használni szeretne. Ha valamelyik kulcs hiányzik, akkor a rendszer által alapértelmezettet lesz használva. A fájl általában a következőképpen néz ki:

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

## GDM parancsok

### GDM rendszergazda-felhasználói parancsok

A GDM csomag a következő parancsokat biztosítja az `sbindir` alatt, amelyeket rendszergazda felhasználónak kell futtatnia:

#### A `gdm` parancssori kapcsolói

A `gdm` a fő démon, amely beállítja a grafikus bejelentkezési környezetet és elindítja a szükséges segédprogramokat.

#### A `gdm` parancssori kapcsolói

-?, --help

- Rövid áttekintést ad a parancssori kapcsolókról.

--fatal-warnings

- Olyanná teszi az összes figyelmeztetést, hogy a GDM kilépését okozza.

--timed-exit

- Kilépés 30 másodperc után. Hibakereséshez hasznos.

--version

- A GDM-démon verziójának kiírása.

#### A `gdm-restart` parancssori kapcsolói

A `gdm-restart` leállítja és újraindítja a GDM-et a GDM démonnak küldött HUP szignállal. Ez a parancs azonnal befejezi az összes munkamenetet, és kijelentkezteti a GDM-mel jelenleg bejelentkezett felhasználókat.

#### A `gdm-safe-restart` parancssori kapcsolói

A `gdm-safe-restart` leállítja és újraindítja a GDM-et a GDM-démonnak küldött USR1 szignállal. A GDM azonnal újraindul, amikor minden felhasználó kijelentkezik.

#### A `gdm-stop` parancssori kapcsolói

A `gdm-stop` leállítja a GDM-et a GDM-démonnak küldött TERM szignállal.

## Hibaelhárítás

Ez a szakasz a GDM működésbe hozásához szükséges hasznos tanácsokat ismerteti. Általánosságban elmondható, hogy ha problémája van a GDM használatával, akkor küldhet hibajelentést vagy e-mailt a gdm-list levelezőlistára. Az ezzel kapcsolatos információk a dokumentum „Bevezetés” szakaszában találhatók.

Ha a GDM nem működik megfelelően, mindig jó ötlet hibakeresési információkat mellékelni. A hibakeresés engedélyezéséhez állítsa a „debug/Enable” kulcsot „true” értékre az `<etc>/gdm/custom.conf` fájlban, és indítsa újra a GDM-et. Ezután használja a GDM-et addig a pontig, ahol nem működik, és a hibakimenet a rendszer naplófájljába kerül (`<var>/log/messages` vagy `<var>/adm/messages` az operációs rendszerétől függően). Ha ezt a kimenetet megosztja a GDM közösséggel egy hibajelentésen vagy e-mailen keresztül, akkor csak a GDM-hez kapcsolódó hibakeresési információkat mellékelje, és ne a teljes fájlt, mivel az nagy lehet. Ha nem lát semmilyen GDM rendszernapló kimenetet, akkor lehet, hogy be kell állítania a rendszer naplózását (nézze meg a syslog kézikönyvoldalt).

### A GDM nem indul el

Számos probléma okozhatja, hogy a GDM nem indul el, de ez a szakasz néhány gyakori problémát tárgyal, és azt, hogy miként közelítheti meg a GDM indulásával kapcsolatos probléma felderítését. Néhány probléma azt eredményezi, hogy a GDM hibaüzenettel vagy párbeszédablakkal válaszol, amikor megpróbál elindulni, de nehéz lehet a problémák nyomon követése, ha a GDM visszajelzés nélkül lesz működésképtelen.

Először győződjön meg arról, hogy az X-kiszolgáló megfelelően van-e beállítva. A GDM konfigurációs fájl tartalmaz egy parancsot a [server-Standard] szakaszban, amely az X-kiszolgáló indítására szolgál. Ellenőrizze, hogy ez a parancs működik-e az Ön rendszerén. A parancs konzolból történő futtatásakor el kell indítania az X-kiszolgálót. Ha ez nem sikerül, akkor a probléma valószínűleg az X-kiszolgáló beállításával van. Nézze meg az X-kiszolgáló hibanaplóját, hogy megtudja, mi lehet a probléma. A probléma az is lehet, hogy az X-kiszolgáló különböző parancssori kapcsolókat igényel. Ha ez a helyzet, akkor módosítsa az X-kiszolgáló parancsot a GDM konfigurációs fájlban úgy, hogy az megfeleljen az Ön rendszerének.

Győződjön meg arról is, hogy a `/tmp` könyvtár megfelelő tulajdonjoggal és jogosultságokkal rendelkezik-e, és hogy a gép fájlrendszere nincs-e tele. Ezek a problémák a GDM indításának sikertelenségét okozzák.

## Licenc

Ez a program szabad szoftver; terjeszthető illetve módosítható a Free Software Foundation által kiadott GNU General Public License dokumentumában leírtak; akár a licenc 2-es, akár (tetszőleges) későbbi változata szerint.

A programot abban a reményben terjesztjük, hogy hasznos lesz, de nem vállalunk SEMMIFÉLE GARANCIÁT, még olyan értelemben sem, hogy a program alkalmas-e a KÖZREADÁSRA vagy EGY BIZONYOS FELADAT ELVÉGZÉSÉRE. További részletekért tanulmányozza a GNU GPL licencet.

A GNU General Public License egy példányát függelékként tartalmazza a GNOME felhasználói kézikönyv. Beszerezheti a GNU General Public License egy példányát a Free Software Foundation weboldalának meglátogatásával, vagy írjon egy levelet az alábbi címre:

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