# Referenčná príručka správcu displeja GNOME

## Pojmy a konvencie použité v tejto príručke

Táto príručka popisuje verziu 2.26.0 správcu displeja GNOME. Naposledy bola aktualizovaná 10. 2. 2009.

Chooser – program používaný na výber vzdialeného hostiteľa na správu displeja vzdialene na pripojenom displeji (`gdm-host-chooser`).

FreeDesktop – organizácia poskytujúca štandardy pre pracovné prostredia, ako je napríklad špecifikácia položiek pracovnej plochy, ktorú používa GDM. https://www.freedesktop.org.

GDM – správca displeja GNOME. Používa sa na označenie softvérového balíka ako celku.

Greeter – grafické prihlasovacie okno (poskytuje ho `gnome-shell`).

PAM – modulárny mechanizmus overovania totožnosti

XDMCP – protokol na správu displejov X

Xserver – implementácia systému X Window. Napríklad Xorg Xserver poskytovaný nadáciou X.org Foundation https://www.x.org.

Cesty, ktoré začínajú slovom v lomených zátvorkách, sú relatívne voči inštalačnému prefixu. Napr. `<share>/pixmaps/` odkazuje na `/usr/share/pixmaps`, ak bol GDM nakonfigurovaný s `--prefix=/usr`.

## Prehľad

### Úvod

Správca displeja GNOME (GDM) je správca displeja, ktorý implementuje všetky dôležité funkcie potrebné na správu pripojených a vzdialených displejov. GDM bol napísaný od nuly a neobsahuje žiadny kód z XDM alebo X Consortium.

Upozorňujeme, že GDM je konfigurovateľný a mnohé nastavenia konfigurácie majú vplyv na zabezpečenie. Problematické časti, o ktorých by ste mali vedieť, sú v tomto dokumente zvýraznené.

Upozorňujeme, že niektoré operačné systémy nastavujú správanie GDM na iné hodnoty než na predvolené hodnoty popísané v tomto dokumente. Ak sa vám zdá, že sa GDM nespráva tak, ako je tu popísané, skontrolujte, či sa niektorá súvisiaca konfigurácia nelíši od tu uvedenej.

Ďalšie informácie o GDM nájdete na webovej stránke projektu.

Na diskusiu alebo otázky týkajúce sa GDM použite diskusné fórum na https://discourse.gnome.org/tag/gdm. Archívy predchádzajúcej poštovej konferencie sú tiež dobrým zdrojom na hľadanie odpovedí na bežné otázky. Konferencia bola archivovaná na https://mail.gnome.org/archives/gdm-list/ a je v nej možné vyhľadávať pomocou kľúčových slov.

Prosím, zasielajte hlásenia chýb alebo požiadavky na vylepšenia na https://gitlab.gnome.org/GNOME/gdm/-/issues/.

### Stabilita rozhrania

GDM 2.20 a staršie verzie podporovali stabilné konfiguračné rozhrania. Vo verzii GDM 2.22 však bol všetok kód prepísaný a nie je celkom spätne kompatibilný so staršími vydaniami. Je to dané tým, že veci fungujú inak, takže niektoré možnosti jednoducho nedávajú zmysel, sčasti tiež preto, že niektoré možnosti nikdy nedávali zmysel alebo preto, že niektoré funkcie zatiaľ neboli nanovo implementované.

Medzi rozhrania, ktoré sú naďalej podporované stabilným spôsobom, patria skripty Init, PreSession, PostSession, PostLogin a Xsession. Naďalej sú podporované niektoré možnosti konfigurácie démona v súbore `<etc>/gdm/custom.conf`. Takisto sú stále podporované `~/.dmrc` a umiestnenia obrázkov pre prehliadač tvárí.

GDM 2.20 a staršie verzie podporovali možnosť spravovať viacero displejov s oddelenými grafickými kartami, ako sa to používa v prostrediach terminálových serverov, prihlásenie v okne pomocou programov ako Xnest alebo Xephyr, program gdmsetup, motív privítacieho programu založený na XML a možnosť spustiť výber XDMCP z prihlasovacej obrazovky. Tieto funkcie neboli pri prepise verzie 2.22 znovu pridané.

### Popis funkčnosti

GDM je zodpovedný za správu displejov v systéme. To zahŕňa overovanie totožnosti používateľov, spúšťanie sedení používateľa a ich ukončovanie. GDM je nastaviteľný a spôsoby, ako ho možno nastaviť, sú opísané v tomto dokumente v časti „Konfigurácia“. GDM je tiež prístupný pre používateľov so zdravotným znevýhodnením.

GDM poskytuje možnosť spravovať displej hlavnej konzoly a displeje spustené cez VT. Je integrovaný s ďalšími programami, ako je applet rýchleho prepínania používateľov (FUSA) a gnome-screensaver na správu viacerých displejov na konzole cez rozhranie virtuálneho terminála (VT) Xserver. Môže tiež spravovať displeje XDMCP.

Bez ohľadu na typ displeja, GDM pri správe displeja vykoná nasledujúce. Spustí proces Xservera, spustí skript `Init` ako používateľ root a nakoniec spustí na displeji privítací program.

Privítací program (greeter) sa spúšťa pod neprivilegovaným používateľom/skupinou „gdm“. Tento používateľ a skupina sú opísané v tomto dokumente v časti „Zabezpečenie“. Hlavné funkcie privítacieho programu sú poskytnúť mechanizmus na výber účtu na prihlásenie a viesť dialóg medzi používateľom a systémom pri overovaní totožnosti. Proces overovania totožnosti je riadený modulárnymi autentizačnými modulmi (PAM). Moduly PAM určujú, aké výzvy (ak nejaké) sa zobrazia používateľovi na overenie totožnosti. Na bežnom systéme bude privítací program vyžadovať na overenie meno používateľa a heslo. Niektoré systémy však môžu byť nakonfigurované na použitie doplnkových mechanizmov, ako sú čítačky odtlačkov prstov alebo čítačky kariet. GDM môže byť nastavený, aby podporoval tieto alternatívy súbežne s rozšíreniami privítacieho programu a voľbou `--enable-split-authentication` v `./configure`, alebo jednu po druhej prostredníctvom systémového nastavenia PAM.

Rozšírenie pre čipové karty možno povoliť alebo zakázať kľúčom gsettings `org.gnome.display-manager.extensions.smartcard.active`.

Podobne, rozšírenie pre odtlačky prstov možno povoliť alebo zakázať kľúčom gsettings `org.gnome.display-manager.extensions.fingerprint.active`.

GDM a PAM môžu byť nakonfigurované tak, aby nevyžadovali žiadny vstup, čo spôsobí, že GDM sa automaticky prihlási a jednoducho spustí sedenie, čo môže byť užitočné pre niektoré prostredia, ako sú systémy s jedným používateľom alebo kiosky.

Okrem overovania totožnosti umožňuje privítací program používateľovi vybrať, ktoré sedenie spustiť a ktorý jazyk použiť. Sedenia sú definované súbormi, ktoré končia príponou .desktop, a viac informácií o týchto súboroch nájdete v časti „Konfigurácia sedenia a jazyka používateľa GDM“ tohto dokumentu. Predvolene je GDM nakonfigurovaný tak, aby zobrazoval prehliadač tvárí, aby používateľ mohol vybrať svoj používateľský účet kliknutím na obrázok namiesto nutnosti zadať meno používateľa. GDM si pamätá predvolené sedenie a jazyk používateľa v súbore `~/.dmrc` a použije tieto predvolené hodnoty, ak používateľ nevybral sedenie alebo jazyk v grafickom rozhraní prihlásenia.

Po overení používateľa démon spustí skript `PostLogin` ako používateľ root. Následne ako používateľ root spustí skript `PreSession`. Po spustení týchto skriptov sa spustí sedenie používateľa. Keď používateľ ukončí svoje sedenie, spustí sa skript `PostSession` ako používateľ root. Tieto skripty sú poskytované ako háčiky pre distribúcie a koncových používateľov na prispôsobenie spôsobu správy sedení. Napríklad pomocou týchto háčikov môžete nastaviť stroj, ktorý vytvorí adresár $HOME používateľa za behu a vymaže ho pri odhlásení. Rozdiel medzi skriptami `PostLogin` a `PreSession` je v tom, že `PostLogin` sa spustí pred volaním pam_open_session, takže je to správne miesto na vykonanie čohokoľvek, čo by sa malo spustiť predtým, ako sa inicializuje sedenie používateľa. Skript `PreSession` sa volá po inicializácii sedenia.

### Panel privítacieho programu

Privítací program GDM zobrazuje panel ukotvený v spodnej časti obrazovky, ktorý poskytuje ďalšie funkcie. Po výbere používateľa panel umožňuje používateľovi vybrať, ktoré sedenie, jazyk a rozloženie klávesnice sa má použiť po prihlásení. Výber rozloženia klávesnice tiež mení rozloženie klávesnice použité pri zadávaní hesla. Panel obsahuje aj oblasť pre prihlasovacie služby, aby v ňom mohli zobraziť svoju stavovú ikonu. Príkladom takýchto stavových ikon sú ikona batérie a ikona pre zapnutie funkcií zjednodušeného ovládania. Privítací program rovnako poskytuje tlačidlá, ktoré umožňujú používateľovi vypnúť alebo reštartovať systém. Je možné skonfigurovať GDM tak, aby neposkytoval tlačidlá vypnutia a reštartu, ak je to žiadúce. GDM je možné nakonfigurovať aj prostredníctvom PolicyKit (alebo RBAC na Oracle Solaris) tak, aby vyžadoval, aby mal používateľ príslušné oprávnenie pred prijatím požiadavky na vypnutie alebo reštart.

Upozorňujeme, že funkcie rozloženia klávesnice sú dostupné len na systémoch, ktoré podporujú libxklavier.

### Zjednodušené ovládanie

GDM podporuje „Zjednodušené ovládanie“, čo umožňuje používateľom prihlásiť sa do svojho sedenia pracovnej plochy, aj keď nemôžu jednoducho používať obrazovku, myš alebo klávesnicu obvyklým spôsobom. Dostupné sú funkcie asistenčných technológií (AT), ako je klávesnica na obrazovke, čítačka obrazovky, lupa obrazovky a klávesnica Xserver AccessX. Ak je to potrebné, dá sa tiež povoliť veľký text alebo ikony a ovládacie prvky s vysokým kontrastom. Ďalšie informácie o tom, ako možno konfigurovať rôzne funkcie zjednodušenia ovládania, nájdete v časti „Konfigurácia zjednodušeného ovládania“ tohto dokumentu.

Na niektorých operačných systémoch je potrebné zabezpečiť, aby bol používateľ GDM členom skupiny „audio“, aby fungovali programy AT, ktoré vyžadujú zvukový výstup (ako je napríklad prevod textu na reč).

### Prehliadač tvárí GDM

Prehliadač tvárí je rozhranie, ktoré umožňuje používateľom vybrať si používateľské meno kliknutím na obrázok. Túto funkciu možno povoliť alebo zakázať kľúčom GSettings org.gnome.login-screen disable-user-list a je predvolene zapnutá. Keď je zakázaná, používatelia musia zadať svoje celé používateľské meno ručne. Keď je povolená, zobrazuje všetkých miestnych používateľov, ktorí majú povolené prihlásiť sa na systém (všetky používateľské účty definované v súbore /etc/passwd, ktoré majú platný shell a dostatočne vysoké UID) a vzdialených používateľov, ktorí sa nedávno prihlásili. Prehliadač tvárí v GDM 2.20 a starších verziách sa pokúšal zobraziť všetkých vzdialených používateľov, čo spôsobovalo problémy s výkonom vo veľkých firemných prostrediach.

Prehliadač tvárí je nakonfigurovaný tak, aby zobrazoval používateľov, ktorí sa prihlasujú najčastejšie, na začiatku zoznamu. To zaistí, aby používatelia, ktorí sa často prihlasujú, mohli nájsť svoj prihlasovací obrázok rýchlejšie.

Prehliadač tvárí podporuje „vyhľadávanie počas písania“, ktoré dynamicky presúva výber tváre, ako používateľ píše, na zodpovedajúce používateľské meno v zozname. To znamená, že používateľ s dlhým používateľským menom bude musieť zadať len prvých pár znakov používateľského mena, než dôjde k výberu správnej položky v zozname.

Ikony používané GDM môže nainštalovať globálne správca systému alebo môžu byť umiestnené v domovských adresároch používateľov. Ak sú nainštalované globálne, mali by byť v adresári `<share>/pixmaps/faces/` a názov súboru by mal zodpovedať menu používateľa. Súbory s obrázkami tvárí by mali byť štandardný obrázok, ktorý dokáže GTK+ čítať, ako PNG alebo JPEG. Ikony tvárí umiestnené v globálnom adresári tvárí musia byť prístupné používateľovi GDM na čítanie.

Ak neexistuje globálna ikona pre používateľa, GDM sa pokúsi nájsť v domovskom adresári používateľa súbor s obrázkom. Najprv hľadá obrázok s tvárou používateľa v adresári `~/.face`. Ak ho nenájde, vyskúša `~/.face.icon`. Ak ho stále nenájde, použije hodnotu definovanú pre „face/picture=“ v súbore `~/.gnome2/gdm`.

Ak používateľ nemá definovaný obrázok tváre, GDM použije ikonu „stock_person“ definovanú v aktuálnom motíve GTK+. Ak nie je definovaný žiadny takýto obrázok, použije náhradný všeobecný obrázok tváre.

Upozorňujeme, že načítavanie a škálovanie ikon tvárí umiestnených vo vzdialených domovských adresároch môže byť veľmi časovo náročná úloha. Keďže nie je praktické načítavať obrázky cez NIS alebo NFS, GDM sa nepokúša načítať obrázky tvárí zo vzdialených domovských adresárov.

Keď je prehliadač zapnutý, platné používateľské mená v počítači sú viditeľné pre všetkých, ktorí majú k počítači prístup. Ak je povolený XDMCP, mená používateľov vidia aj vzdialení používatelia. To, samozrejme, do istej miery obmedzuje zabezpečenie, pretože zlomyseľný používateľ nemusí hádať platné používateľské mená. V niektorých veľmi reštriktívnych prostrediach nemusí byť prehliadač tvárí vhodný.

### XDMCP

Démon GDM môže byť nakonfigurovaný tak, aby počúval a spravoval požiadavky protokolu na správu X displeja (XDMCP) zo vzdialených displejov. Predvolene je podpora XDMCP vypnutá, no v prípade potreby je možné ju zapnúť. Ak je GDM zostavený s podporou TCP Wrappera, démon povolí prístup len hostiteľom určeným v časti služby GDM v konfiguračnom súbore TCP Wrappers.

GDM používa niekoľko opatrení, ktoré ho robia odolnejším voči útokom typu odmietnutia služby na službu XDMCP. Mnohé parametre protokolu, časové limity handshakingu atď. možno jemne doladiť. Predvolená konfigurácia by mala rozumne fungovať na väčšine systémov.

V predvolenej konfigurácii GDM reaguje na požiadavky XDMCP na bežnom UDP porte používanom pre XDMCP t. j. 177 a odpovedá na požiadavky QUERY a BROADCAST_QUERY odoslaním paketu WILLING odosielateľovi.

GDM môže byť tiež nastavený tak, aby reagoval na požiadavky INDIRECT a prezentoval vzdialenému displeju výber hostiteľa. GDM si zapamätá, čo používateľ vybral a prepošle následné požiadavky vybranému správcovi. GDM tiež podporuje rozšírenie protokolu, ktoré spôsobí, že zabudne na presmerovanie, akonáhle pripojenie používateľa uspeje. Toto rozšírenie je podporované len vtedy, ak sú oba démony GDM. Je transparentné a bude ignorované XDM alebo inými démonmi, ktorí implementujú XDMCP.

Ak sa zdá, že XDMCP nefunguje, uistite sa, že sú všetky stroje uvedené v súbore `/etc/hosts`.

Informácie o bezpečnosti pri používaní XDMCP nájdete v časti „Zabezpečenie“.

### Zaznamenávanie

GDM používa syslog na zaznamenávanie chýb a stavu. Môže tiež zaznamenávať ladiace informácie, čo môže pomôcť pri nachádzaní problémov, ak GDM nefunguje správne. Ladiaci výstup možno povoliť nastavením kľúča debug/Enable na „true“ v súbore `<etc>/gdm/custom.conf`.

Výstup z rôznych Xserverov sa ukladá do adresára so záznamami GDM, ktorý je zvyčajne `<var>/log/gdm/`. Akékoľvek správy Xservera sa ukladajú do súboru odvodeného od hodnoty displeja, `<displej>.log`.

Výstup sedenia je presmerovaný cez démona GDM do súboru `~/`$XDG_CACHE_HOME`/gdm/session.log`, ktorým je zvyčajne `~/.cache/gdm/session.log`. Súbor je pri každom prihlásení prepísaný, takže odhlásenie a opätovné prihlásenie toho istého používateľa cez GDM spôsobí stratu akýchkoľvek správ z predchádzajúceho sedenia.

Upozorňujeme, že ak GDM z nejakého dôvodu nemôže vytvoriť tento súbor, vytvorí náhradný súbor s názvom `~/`$XDG_CACHE_HOME`/gdm/session.log.XXXXXXXX`, kde `XXXXXXXX` sú náhodné znaky.

### Rýchle prepínanie používateľov

GDM umožňuje prihlásenie viacerých používateľov súčasne. Po prihlásení jedného používateľa sa môžu ďalší používatelia prihlásiť cez prepínač používateľov na paneli GNOME alebo prostredníctvom tlačidla „Prepnúť používateľa“ v dialógovom okne uzamknutia obrazovky. Aktívne sedenie môžete meniť tam a späť pomocou rovnakého postupu. Upozorňujeme, že niektoré distribúcie nemusia pridávať prepínač používateľov do predvolenej konfigurácie panela. V takom prípade ho môžete pridať pomocou kontextovej ponuky panela.

Upozorňujeme, že táto funkcia je dostupná na systémoch, ktoré podporujú virtuálne terminály. Ak nie sú virtuálne terminály dostupné, nebude rýchle prepínanie používateľov fungovať.

## Zabezpečenie

### Používateľ a skupina GDM

Z bezpečnostných dôvodov sa na správnu činnosť odporúča používať vyhradeného používateľa a skupinu. Tento používateľ a skupina sú na väčšine systémov zvyčajne „gdm“, ale môžete nastaviť ľubovoľného používateľa alebo skupinu. Všetky programy GDM s grafickým rozhraním bežia pod týmto používateľom, takže programy, ktoré komunikujú s používateľom, sa spúšťajú v sandboxe. Tento používateľ a skupina by mali mať obmedzené oprávnenia.

Jediné špeciálne oprávnenie, ktoré používateľ „gdm“ vyžaduje, je možnosť čítať a zapisovať súbory Xauth do adresára `<var>/run/gdm`. Adresár `<var>/run/gdm` by mal byť vlastnený používateľom root, skupinou gdm a oprávnenia by mali byť 1777.

V žiadnom prípade by ste nemali konfigurovať používateľa/skupinu GDM na používateľa, ku ktorému by mohol používateľ ľahko získať prístup, ako napríklad používateľ `nobody`. Akýkoľvek používateľ, ktorý získa prístup ku kľúču Xauth, môže odpočúvať a ovládať spustené GUI programy bežiace v priradenom sedení alebo na ňu vykonať útok typu odmietnutia služby. Je dôležité zabezpečiť, aby bol systém správne nakonfigurovaný tak, aby mal prístup k týmto súborom len používateľ „gdm“ a aby nebolo ľahké sa prihlásiť k tomuto účtu. Napríklad účet by mal byť nastavený tak, aby nemal heslo, alebo aby nepovoľoval prihlásenie takým používateľom, ktorí nemajú prístup k účtu roota.

Konfigurácia privítacieho programu GDM je uložená v GConf. Aby mohol používateľ GDM zapísať konfiguráciu, je potrebné, aby mal používateľ „gdm“ právo na zápis do adresára $HOME. Používatelia môžu nastaviť predvolenú konfiguráciu GConf podľa potreby, aby sa vyhli nutnosti poskytnúť používateľovi „gdm“ práva na zápis do adresára $HOME. Niektoré funkcie GDM sa tak môžu stať nedostupnými, keďže nebude možné zapísať informácie o stave do konfigurácie GConf.

### PAM

GDM používa PAM na overenie totožnosti pri prihlásení. PAM je skratka modulárne autentizačné moduly a používa ho väčšina programov, ktoré vyžadujú overenie totožnosti na vašom počítači. Umožňuje správcovi nakonfigurovať konkrétne správanie pri overovaní pre rôzne prihlasovacie programy (ako je ssh, grafické prihlasovacie rozhranie, šetrič obrazovky atď.)

PAM je komplikovaný a vysoko konfigurovateľný a cieľom tejto dokumentácie nie je vysvetliť dopodrobna ako funguje. Miesto toho sa zameriame na poskytnutie prehľadu toho, ako PAM súvisí s GDM, ako sa PAM typicky konfiguruje s GDM a na známe problémy. Očakáva sa, že človek, ktorý potrebuje upraviť konfiguráciu PAM si dodatočne naštuduje dokumentáciu PAMu, aby pochopil, ako sa PAM nastavuje a pochopil pojmy použité v tejto časti.

Konfigurácia PAM má rôznych operačných systémoch rôzne, no podobné rozhrania. Podrobnosti nájdete na stránke s manuálom pam.d alebo pam.conf. Určite si preštudujte dokumentáciu PAMu a zamyslite sa, či prípadné zmeny, nad ktorými uvažujete nemajú dopady na zabezpečenie.

Upozorňujeme, že predvolene používa GDM názov služby PAM „gdm“ na bežné prihlásenie a názov služby PAM „gdm-autologin“ na automatické prihlásenie. Tieto služby nemusia byť definované vo vašom súbore s nastavením pam.d alebo pam.conf. Ak v nich nie je žiadny záznam, GDM použije predvolené správanie PAM. Na väčšine systémov to bude fungovať dobre. Funkcia automatického prihlásenia však nemusí fungovať, ak nie je definovaná služba gdm-autologin.

Skript `PostLogin` sa spustí predtým, ako sa zavolá pam_open_session a skript `PreSession` sa zavolá potom. To umožňuje správcovi systému pridať ľubovoľné skriptovanie do procesu prihlásenia buď predtým alebo potom, ako PAM inicializuje sedenie.

Ak chcete, aby GDM fungoval s inými typmi mechanizmov overovania totožnosti (ako je čítačka odtlačkov prstov alebo čipových kariet), mali by ste to radšej implementovať pomocou servisného modulu PAM pre požadovaný typ overovania, než sa pokúšať priamo upraviť kód GDM. Pozrite sa do dokumentácie PAM na vašom systéme.

PAM má určité obmedzenia týkajúce sa schopnosti pracovať s viacerými typmi overovania súčasne, ako je podpora schopnosti prijať buď čipovú kartu, alebo možnosti zadať používateľské meno a heslo do prihlasovacieho programu. Existujú postupy, ktoré sa používajú na rozchodenie takýchto vecí a najlepšie je vyhľadať si, ako sa daný problém obvykle rieši pri nastavovaní takejto konfigurácie.

Ak na systéme nefunguje automatické prihlásenie, skontrolujte, či je v konfigurácii PAM definovaný „gdm-autologin“. Aby to fungovalo, je potrebné použiť modul PAM, ktorý jednoducho nevykonáva žiadne overovanie, alebo ktorý vracia PAM_SUCCESS zo všetkých svojich verejných rozhraní. Ak platí, že váš systém má modul PAM pam_allow.so, ktorý to robí, konfigurácia PAM na povolenie „gdm-autologin“ by vyzerala takto:

           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

Vyššie uvedené nastavenie spôsobí, že sa nevygeneruje žiadny záznam lastlog (posledné prihlásenie). Ak tento záznam potrebujete, použite pre sedenie nasledujúce:

           gdm-autologin session required pam_unix_session.so.1

Ak počítač používa viacero ľudí, čím sa automatické prihlásenie stáva nevhodným, možno budete chcieť povoliť niektorým používateľom prihlásiť sa bez zadania svojho hesla. Túto funkciu možno povoliť ako možnosť pre jednotlivých používateľov v nástroji users-admin z gnome-system-tools. To dosiahnete kontrolou, či je používateľ členom unixovej skupiny s názvom „nopasswdlogin“ pred vyžiadaním hesla. Aby to fungovalo, konfiguračný súbor PAM pre službu „gdm“ musí obsahovať takýto riadok:

          gdm auth  sufficient  pam_succeed_if.so  user ingroup nopasswdlogin

### utmp a wtmp

GDM generuje pri prihlásení a odhlásení sedení položky do databázy používateľských účtov utmp a wtmp. Databáza utmp obsahuje informácie o prístupoch používateľov a informácie, ku ktorým sa pristupuje pomocou príkazov ako `finger`, `last`, `login` a `who`. Databáza wtmp obsahuje históriu prístupov používateľov a informácie pre databázu utmp. Ďalšie informácie nájdete v manuálových stránkach utmp a wtmp na vašom systéme.

### Schéma overovania totožnosti Xservera

Autorizačné súbory Xservera sa ukladajú pri spustení do novo vytvoreného podadresára `<var>/run/gdm`. Tieto súbory sa používajú na uloženie a zdieľanie „hesla“ medzi klientami X a Xserverom. Toto „heslo“ je jedinečné pre každé prihlásené sedenie, takže používatelia z jedného sedenia nemôžu odpočúvať používateľov z inej.

GDM podporuje len schému overovania totožnosti Xservera MIT-MAGIC-COOKIE-1. Zvyčajne sa z iných schém získava len málo a doteraz nebolo vyvinuté žiadne úsilie to realizovať. Buďte opatrní predovšetkým pri používaní XDMCP, pretože overovacie cookie Xservera putuje po sieti ako čistý text. Ak je možné odpočúvanie, útočník by mohol jednoducho zachytiť vaše overovacie heslo, keď sa prihlasujete bez ohľadu na použitú schému overovania. Ak je odpočúvanie možné a nežiadúce, mali by ste použiť SSH na tunelovanie pripojenia X namiesto použitia XDMCP. XDMCP by ste mohli brať ako grafickú nadstavbu nad telnetom s obdobnými bezpečnostnými problémami. Vo väčšine prípadov by ste mali uprednostniť ssh -Y pred GDM s funkciami XDMCP.

### Zabezpečenie XDMCP

Aj napriek tomu, že je váš displej chránia cookies, XEvents a teda stlačenia klávesov zadané pri zadávaní hesiel budú stále prechádzať po sieti ako čistý text. Je veľmi jednoduché ich zachytiť.

XDMCP je vhodný predovšetkým na spúšťanie tenkých klientov, aké sú napríklad v terminálových miestnostiach. Takéto tenké klienty budú vždy potrebovať len sieť na prístup k serveru, a preto sa zdá, že najlepšou bezpečnostnou politikou je mať tieto tenké klienty v oddelenej sieti, ku ktorej sa nedá dostať zvonku a pripojiť sa dá len na server. Jediným bodom, z ktorého budete potrebovať prístup smerom von, je server. Tento typ nastavenia by nemal nikdy používať neriadený rozbočovač (hub) alebo inú sieť, ktorú možno odpočúvať.

### Riadenie prístupu XDMCP

Riadenie prístupu XDMCP sa konfiguruje pomocou knižnice TCP wrappers. GDM je možné skompilovať bez podpory TCP wrappers, takže táto funkcia nemusí byť na niektorých operačných systémoch podporovaná.

Mali by ste použiť názov démona `gdm` v súboroch `<etc>/hosts.allow` a `<etc>/hosts.deny`. Napríklad na zamietnutie prihlásenia počítačom zo `.zakerna.domena` pridajte

    gdm: .zakerna.domena

do `<etc>/hosts.deny`. Možno budete musieť pridať aj

    gdm: .vasa.domena

do vášho `<etc>/hosts.allow`, ak chcete zakázať všetky služby zo všetkých počítačov. Podrobnosti nájdete v manuálovej stránke hosts.allow(5).

### Zabezpečenie firewallu

Aj keď sa GDM snaží oklamať potenciálnych útočníkov, ktorí sa snažia využiť XDMCP, stále sa odporúča zablokovať port XDMCP (zvyčajne UDP port 177) na vašom firewalle, ak ho naozaj nepotrebujete. GDM sa chráni pred útokmi typu odmietnutia služby, ale protokol X je stále zo svojej podstaty nezabezpečený a mal by sa používať len v prostrediach, ktoré máte pod kontrolou. Každé vzdialené pripojenie tiež spotrebuje veľa zdrojov, takže je oveľa ľahšie vykonať útok typu odmietnutia služby cez XDMCP než útok na webový server.

Je tiež rozumné zablokovať všetky porty Xservera. Sú to TCP porty 6000+ (jeden pre každý z displejov) na vašom firewalle. Upozorňujeme, že GDM použije čísla displejov 20 a vyššie pre flexibilné servery na požiadanie.

X nie je veľmi bezpečný protokol pri používaní cez internet a XDMCP je na tom s bezpečnosťou ešte horšie.

### PolicyKit

GDM je možné nastaviť, aby používal PolicyKit a umožnil tak správcovi systému ovládať, či by mala prihlasovacia obrazovka poskytnúť tlačidlá vypnutia a reštartu na obrazovke privítacieho programu.

Tieto tlačidlá sú ovládané akciami `org.freedesktop.consolekit.system.stop-multiple-users` a `org.freedesktop.consolekit.system.restart-multiple-users`. Politiku pre tieto akcie možno nastaviť pomocou nástroja polkit-gnome-authorization alebo programom príkazového riadka polkit-auth.

### RBAC (riadenie prístupu na základe rolí)

GDM môže na nastavenie používať miesto PolicyKit aj RBAC. V takom prípade sa konfigurácia RBAC používa na ovládanie, či by mala prihlasovacia obrazovka poskytnúť tlačidlá vypnutia a reštartu na obrazovke privítacieho programu.

Napríklad na Oracle Solaris sa na ovládanie tohto používa oprávnenie „solaris.system.shutdown“. Stačí upraviť súbor `/etc/user_attr` tak, aby mal používateľ „gdm“ toto oprávnenie.

## Podpora pre ConsoleKit

Súčasťou GDM je podpora zverejňovania informácií o prihlásení používateľa pomocou frameworku určeného na účtovanie používateľov a ich sedení známeho ako ConsoleKit. ConsoleKit je schopný sledovať všetkých používateľov, ktorí sú aktuálne prihlásení. V tomto ohľade ho možno použiť ako náhradu za súbory utmp alebo utmpx, ktoré sú dostupné na väčšine unixových operačných systémov.

Keď sa GDM chystá vytvoriť nový prihlasovací proces pre používateľa, zavolá privilegovanú metódu ConsoleKit, čím sa otvorí nové sedenie pre tohto používateľa. V tejto chvíli GDM tiež poskytne ConsoleKitu informácie o tomto sedení používateľa, ako je: ID používateľa, názov displeja X11, ktorý bude priradený k sedeniu, názov počítača, z ktorého sedenie pochádza (užitočné v prípade sedenia XDMCP), či je toto sedenie pripojené alebo nie atď. Ako subjekt, ktorý iniciuje proces používateľa, je GDM v jedinečnej pozícii, aby vedel o sedení používateľa a bol oprávnený na poskytnutie týchto informácií. Používanie tejto privilegovanej metódy je obmedzené použitím bezpečnostnej politiky systémovej zbernice správ D-Bus.

V prípade, že sa používateľ s existujúcim sedením overil v GDM a žiada o obnovenie tohto sedenia, GDM zavolá privilegovanú metódu ConsoleKit na odomknutie tohto sedenia. Čo presne sa má stať, keď sedenie prijme signál na odomknutie, nie je definované a závisí od daného sedenia. Väčšina sedení však ako odpoveď odomkne šetrič obrazovky.

Keď sa používateľ rozhodne odhlásiť sa alebo keď GDM alebo sedenie neočakávane skončí, registrácia používateľa v ConsoleKit sa zruší.

## Konfigurácia

GDM má niekoľko konfiguračných rozhraní. Patrí k nim skriptovanie integračných bodov, nastavenie démona, nastavenie privítacieho programu, všeobecné nastavenie sedenia, integrácia s konfiguráciou gnome-settings-daemon a nastavenie sedenia. Tieto typy integrácie sú podrobne opísané nižšie.

### Skriptovanie integračných bodov

Skripty pre integračné body GDM nájdete v adresári `<etc>/gdm/`:

    Xsession
    Init/
    PostLogin/
    PreSession/
    PostSession/

Skripty `Init`, `PostLogin`, `PreSession` a `PostSession` fungujú podľa popisu nižšie.

Pre každý typ skriptu sa ten, ktorý bude spustený, nazýva „Default“ a je uložený v adresári súvisiacim s typom skriptu. Takže predvolený skript `Init` je `<etc>/gdm/Init/Default`. Môžete poskytnúť aj skripty pre jednotlivé displeje a ak existujú, spustia sa miesto predvoleného skriptu. Takéto skripty sú uložené v rovnakom adresári ako predvolený skript a majú rovnaký názov ako hodnota DISPLAY Xservera pre daný displej. Napríklad, ak existuje skript `<Init>/:0`, spustí sa pre DISPLAY „:0“.

Všetky tieto skripty sa spúšťajú s oprávneniami root a vracajú 0, ak sa spustia úspešne, a nenulový návratový kód, ak došlo k nejakej chybe, ktorá by mala spôsobiť prerušenie prihlasovacieho sedenia. Upozorňujeme tiež, že GDM bude blokovať, kým sa skripty neskončia, takže ak ktorýkoľvek z týchto skriptov zasekne, spôsobí to, že sa zasekne aj proces prihlásenia.

Keď bol Xserver pre grafické prihlasovacie rozhranie úspešne spustený, ale predtým, ako sa grafické prihlasovacie rozhranie skutočne zobrazí, GDM spustí skript `Init`. Tento skript je užitočný na spúšťanie programov, ktoré by sa mali spustiť, kým sa zobrazuje prihlasovacia obrazovka, alebo na vykonanie akejkoľvek špeciálnej inicializácie, ak je to potrebné.

Po úspešnom overení totožnosti používateľa spustí GDM skript `PostLogin`. Toto sa vykoná predtým, než sa vykoná akékoľvek nastavenie sedenia, vrátane pred volaním pam_open_session. Tento skript je užitočný na vykonanie akejkoľvek inicializácie sedenia, ktorá sa musí vykonať predtým, než sa sedenie spustí. Napríklad môžete nastaviť domovský adresár $HOME používateľa, ak je to potrebné.

Po inicializácii sedenia používateľa spustí GDM skript `PreSession`. Tento skript sa používa na ľubovoľné inicializácie sedenia, ktoré sa musia vykonať po tom, čo bolo sedenie inicializované. Môžete ho použiť napríklad na správu sedenia alebo účtovanie.

Keď používateľ ukončí svoje sedenie, GDM spustí skript `PostSession`. Upozorňujeme, že počas spúšťania tohto skriptu je Xserver zastavený, takže by ste k nemu nemali pristupovať.

Upozorňujeme, že skript `PostSession` sa spustí aj vtedy, keď displej nereaguje kvôli vstupno/výstupnej chybe a podobne. Preto nie je možné zaručiť, že počas vykonávania skriptu budú aplikácie aplikácie X fungovať.

Všetky vyššie uvedené skripty nastavujú premennú prostredia `$RUNNING_UNDER_GDM` na `yes`. Ak sú skripty zdieľané aj s inými správcami displejov, umožňuje vám to zistiť, kedy sú tieto skripty volané GDM, takže môžete spustiť kód konkrétne pre GDM.

### Nastavenie automatického spúšťania

Adresár `<share>/gdm/autostart/LoginWindow` obsahuje súbory vo formáte určenom „Špecifikáciou automatického spustenia aplikácií pracovnej plochy FreeDesktop.org“. Štandardné vlastnosti zo špecifikácie môžete použiť na určenie programov, ktoré by sa mali automaticky spustiť alebo spustiť len vtedy, ak je nastavená hodnota konfigurácie GConf atď.

Ľubovoľný súbor `.desktop` v tomto adresári spôsobí, že priradený program sa automaticky spustí spolu s grafickým prihlasovacím rozhraním privítacieho programu. V predvolenom stave sa GDM dodáva so súbormi, ktoré automaticky spustia samotný grafické rozhranie privítacieho programu gdm-simple-greeter, aplikáciu gnome-power-manager, gnome-settings-daemon a správcu okien metacity. Tieto programy sú potrebné, aby uvítací program fungoval. Okrem toho dodávané súbory .desktop slúžia na spustenie rôznych programov s asistenčnými nástrojmi, ak sú nastavené hodnoty konfigurácie uvedené v časti Konfigurácia zjednodušeného ovládania nižšie.

### Skript Xsession

Existuje aj skript `Xsession` nachádzajúci sa v `<etc>/gdm/Xsession`, ktorý je volaný medzi skriptami `PreSession` a `PostSession`. Tento skript nepodporuje jednotlivé displeje ako ostatné skripty. Používa sa na skutočné spustenie sedenia používateľa. Skript sa spúšťa pod daným používateľom a spustí všetko, čo sedenie špecifikuje v súbore sedenia pracovnej plochy, ktorú si používateľ vybral.

### Konfigurácia démona

Démon GDM sa nastavuje pomocou súboru `<etc>/gdm/custom.conf`. Predvolené hodnoty sú uložené v GConf v súbore `gdm.schemas`. Odporúča sa, aby koncoví používatelia upravovali súbor `<etc>/gdm/custom.conf`, pretože súbor so schémami môže byť prepísaný novou verziou GDM pri aktualizácii systému.

Upozorňujeme, že staršie verzie GDM podporovali ďalšie možnosti konfigurácie, ktoré už nie sú podporované v najnovších verziách GDM.

Súbor `<etc>/gdm/custom.conf` je vo formáte `keyfile` (súbor s kľúčmi). Kľúčové slová v hranatých zátvorkách definujú oddiely, reťazce pred znakom „=“ sú kľúče a údaje za znakom „=“ predstavujú ich hodnotu. Prázdne riadky alebo riadky začínajúce znakom mriežky („#“) sú ignorované.

Súbor `<etc>/gdm/custom.conf` podporuje oddiely „[daemon]“, „[security]“ a „[xdmcp]“. V rámci každého oddielu existujú konkrétne páry kľúč/hodnota, ktoré môžete zadať a zmeniť nimi správanie GDM. Ak chcete, napríklad, povoliť prihlásenie po uplynutí času a určiť používateľa s názvom „vy“ upravili by ste súbor tak, aby obsahoval nasledovné riadky:

    [daemon]
    TimedLoginEnable=true
    TimedLogin=vy

Nasleduje úplný zoznam podporovaných kľúčov nastavenia:

#### [chooser]

Multicast

-     Multicast=false

  Ak je zapnuté a IPv6 je povolené, chooser odošle požiadavku multicast do miestnej siete a pozbiera odpovede od počítačov, ktoré sa pripojili do multicast skupiny.

MulticastAddr

-     MulticastAddr=ff02::1

  Toto je viacsmerová adresa Link-local.

#### [daemon]

TimedLoginEnable

-     TimedLoginEnable=false

  Či má byť používateľ uvedený v `TimedLogin` prihlásený po určitom počte sekúnd (nastavením v `TimedLoginDelay`) nečinnosti na prihlasovacej obrazovke. Toto sa hodí pre verejné prístupové terminály a samozrejme aj pre použitie v domácnosti. Ak používateľ použije klávesnicu alebo si prezerá ponuku, odpočet času sa nastaví na `TimedLoginDelay` alebo 30 sekúnd, podľa toho, ktorá hodnota je vyššia. Ak používateľ nezadá meno používateľa, ale len stlačí kláves ENTER počas toho, kým prihlasovací program čaká na zadanie mena používateľa, GDM bude predpokladať, že používateľ sa chce okamžite prihlásiť ako používateľ uvedený v časovanom prihlásení. Upozorňujeme, že pre tohto používateľa sa nebude vyžadovať heslo, takže vás vyzývame na opatrnosť. Hoci, ak používate PAM, môžete ho nastaviť tak, aby vyžadoval zadanie hesla pred tým, ako umožní prihlásenie. Ďalšie informácie alebo pomoc, ak táto funkcia nefunguje, nájdete v kapitole „Zabezpečenie->PAM“.

TimedLogin

-     TimedLogin=

  Toto je používateľ, ktorý by mal byť prihlásený po uplynutí zadaného počtu sekúnd nečinnosti.

  Ak hodnota končí zvislou čiarou | (znak rúry), GDM spustí zadaný program a použije čokoľvek, čo program vráti na štandardný výstup ako meno používateľa. Program sa spustí s nastavenou premennou prostredia DISPLAY, takže je možné určiť používateľa pre každý displej zvlášť. Napríklad, ak je hodnota „/usr/bin/getloginuser|“, pre získanie mena používateľa sa použije program „/usr/bin/getloginuser“.

TimedLoginDelay

-     TimedLoginDelay=30

  Oneskorenie v sekundách predtým, než sa prihlási používateľ `TimedLogin`.

AutomaticLoginEnable

-     AutomaticLoginEnable=false

  Ak je zapnuté, používateľ uvedený v `AutomaticLogin` by mal byť prihlásený okamžite. Táto funkcia sa podobá časovanému prihláseniu s oneskorením 0 sekúnd.

AutomaticLogin

-     AutomaticLogin=

  Toto je používateľ, ktorý by mal byť prihlásený okamžite pri zapnutom `AutomaticLoginEnable`.

  Ak hodnota končí zvislou čiarou | (znak rúry), GDM spustí zadaný program a použije čokoľvek, čo program vráti na štandardný výstup ako meno používateľa. Program sa spustí s nastavenou premennou prostredia DISPLAY, takže je možné určiť používateľa pre každý displej zvlášť. Napríklad, ak je hodnota „/usr/bin/getloginuser|“, pre získanie mena používateľa sa použije program „/usr/bin/getloginuser“.

User

-     User=gdm

  Meno používateľa, pod ktorým sa spúšťa privítací program a iné programy s grafickým rozhraním. Ďalšie informácie nájdete v kľúči nastavenia `User` a v kapitole „Zabezpečenie->Používateľ a skupina GDM“ v tomto dokumente.

Group

-     Group=gdm

  Názov skupiny, pod ktorou sa spúšťa privítací program a iné programy s grafickým rozhraním. Ďalšie informácie nájdete v kľúči nastavenia `Group` a v kapitole „Zabezpečenie->Používateľ a skupina GDM“ v tomto dokumente.

#### Možnosti ladenia

#### [debug]

Enable

-     Enable=false

  Na povolenie ladenia nastavte kľúč debug/Enable na „true“ v súbore `<etc>/gdm/custom.conf` a reštartujte GDM. Výstup ladenia sa bude odosielať do súboru so systémovým záznamom (`<var>/log/messages` alebo `<var>/adm/messages` podľa vášho operačného systému).

#### Možnosti zabezpečenia

#### [security]

DisallowTCP

-     DisallowTCP=true

  Ak je zapnuté, pri spustení Xservera sa vždy pridá k príkazu na spustenie prepínač `-nolisten tcp`, čím sa zakáže pripojenie TCP. Toto je bezpečnejšie nastavenie, ak nepoužívate vzdialené pripojenia.

#### Podpora XDMCP

#### [xdmcp]

DisplaysPerHost

-     DisplaysPerHost=1

  Aby sa zabránilo útočníkom preplniť frontu, GDM povolí len jedno pripojenie pre každý vzdialený počítač. Ak chcete poskytovať služby displeja počítačom s viac ako jednou obrazovkou, musíte túto hodnotu zvýšiť.

  Upozorňujeme, že počet povolených pripojených displejov nie je obmedzený. Touto voľbou nastavenia sa obmedzia len vzdialené pripojenia cez XDMCP.

Enable

-     Enable=false

  Zapnutím tejto voľby povolíte podporu XDMCP, čo umožňuje, aby vzdialené displeje/X terminály boli spravované GDM.

  `gdm` reaguje na požiadavky na UDP porte 177. Ďalšie informácie nájdete v možnosti Port.

  V prípade, že je GDM skompilovaný tak, aby to podporoval, prístup zo vzdialených displejov môže byť ovládaný knižnicou TCP Wrappers. Názov služby je `gdm`

  Mali by ste pridať

      gdm:.moja.domena

  do vášho `<etc>/hosts.allow`, v závislosti na vašej konfigurácii TCP Wrappers. Podrobnosti nájdete na manuálovej stránke hosts.allow.

  Upozorňujeme, že XDMCP nie je zrovna bezpečný protokol a preto je dobrý nápad blokovať UDP port 177 na vašom firewalle, pokiaľ ho naozaj nepotrebujete.

HonorIndirect

-     HonorIndirect=true

  Povolí výber INDIRECT pre XDMCP (t. j. vzdialené spustenie `gdmchooser`) pre X-terminály, ktoré neposkytujú svoj vlastný prehliadač displejov.

MaxPending

-     MaxPending=4

  Na zabránenie útokom typu odmietnutia služby (DoS) GDM používa pevnú veľkosť fronty pre prichádzajúce spojenia. Naraz je možné spustiť len MaxPending displejov.

  Upozorňujeme, že tento parameter neobmedzuje počet vzdialených displejov, ktoré možno spravovať. Obmedzuje len počet displejov, ktoré iniciujú pripojenie súčasne.

MaxSessions

-     MaxSessions=16

  Určuje maximálny počet pripojení vzdialených displeja, ktoré budú spravované súčasne. To znamená celkový počet vzdialených displejov, ktoré môžu používať váš počítač.

MaxWait

-     MaxWait=30

  Keď je GDM pripravený spravovať displej, odošle sa mu paket ACCEPT obsahujúci jedinečné ID sedenia, ktoré sa použije v následnej komunikácii s XDMCP.

  GDM potom umiestni ID sedenia do fronty a čaká, kým displej neodpovie požiadavkou MANAGE.

  Ak do MaxWait sekúnd nedostane žiadnu odpoveď, GDM prehlási displej za mŕtvy a vymaže ho z frontu, čím uvoľní miesto pre ostatné displeje.

MaxWaitIndirect

-     MaxWaitIndirect=30

  Parameter MaxWaitIndirect určuje maximálny počet sekúnd medzi časom, kedy používateľ vyberie hostiteľa a následným nepriamym dopytom, kedy sa používateľ k hostiteľovi pripojený. Keď sa prekročí časový limit, informácie o vybranom hostiteľovi sa zahodia a nepriamy slot sa uvoľní pre ostatné displeje. Informácie môžu byť zahodené skôr, keď sa pokúša odoslať nepriamy dopyt viac hostiteľov, ako je uvedené v `MaxPendingIndirect`.

Port

-     Port=177

  Číslo UDP portu, na ktorom by mal `gdm` počúvať požiadavky XDMCP. Túto hodnotu nemeňte, pokiaľ presne neviete, čo spôsobí.

Willing

-     Willing=<etc>/gdm/Xwilling

  Keď stroj odošle paket WILLING po tom, ako obdržal QUERY, odošle reťazec, ktorý uvádza aktuálny stav servera. Predvolená správa je ID systému, ale je možné vytvoriť skript, ktorý zobrazuje vlastnú správu. Ak tento skript neexistuje alebo je tento kľúč prázdny, odošle sa predvolená správa. Ak je skript úspešný a vygeneruje nejaký výstup, odošle sa prvý riadok jeho výstupu (a iba prvý riadok). Spustí sa nanajvýš raz za 3 sekundy, aby sa zabránilo možnému odmietnutiu služby zaplavením stroja paketmi QUERY.

### Jednoduchá konfigurácia privítacieho programu

Predvolený privítací program GDM sa nazýva jednoduchý privítací program a konfiguruje sa prostredníctvom GConf. Predvolené hodnoty sú uložené v GConf v súbore `gdm-simple-greeter.schemas`. Tieto predvolené hodnoty možno prepísať, ak má používateľ „gdm“ domovský adresár $HOME s právami na zápis, v ktorom sa uchovávajú nastavenia GConf. Tieto hodnoty možno upravovať pomocou programov `gconftool-2` alebo `gconf-editor`. Podporované sú nasledujúce možnosti konfigurácie:

### Kľúče nastavenia privítacieho programu

/apps/gdm/simple-greeter/banner_message_enable

-     false (boolean)

  Ovláda, či sa má zobraziť panel s textom správy.

/apps/gdm/simple-greeter/banner_message_text

-     NULL (reťazec)

  Definuje text pre panel so správou, ktorý sa má zobraziť v okne privítacieho programu.

/apps/gdm/simple-greeter/disable_restart_buttons

-     false (boolean)

  Riadi, či sa majú v okne na prihlásenie zobrazovať tlačidlá na reštart.

/apps/gdm/simple-greeter/disable_user_list

-     false (boolean)

  Ak je zapnuté, prehliadač tvári so známymi používateľmi nebude v okne na prihlásenie zobrazený.

/apps/gdm/simple-greeter/logo_icon_name

-     computer (reťazec)

  Nastavte na názov ikony z motívu, ktorá sa má použiť ako logo privítacieho programu.

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

-     [] (zoznam reťazcov)

  Nastavte na zoznam jazykov, ktoré sa majú zobraziť ako predvolené v okne na prihlásenie. Predvolená hodnota je „[]“. S týmto predvoleným nastavením sa zobrazí len vybraný jazyk systému a možnosť „Iné...“, ktorá otvorí ponuku s úplný zoznamom dostupných jazykov, z ktorých si môže používateľ vybrať.

  Nebolo zamýšľané, aby používatelia menili toto nastavenie ručne. Namiesto toho GDM uchováva v tomto kľúči jazyky vybrané v minulosti a zobrazuje ich v rozbaľovacej ponuke jazykov spolu s možnosťou „Iné…“. Vďaka tomu je jednoduchšie vybrať často používané jazyky.

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

-     [] (zoznam reťazcov)

  Nastavte na zoznam rozložení klávesníc, ktoré sa majú zobraziť v paneli prihlásenia ako predvolené. Predvolená hodnota je „[]“. Pri tomto nastavení sa zobrazí len predvolené rozloženie klávesnice systému a možnosť „Iné… ktorá rozbalí dialógové okno ponúkajúce úplný zoznam dostupných rozložení klávesníc, z ktorých si môže používateľ vybrať.

  Nebolo zamýš nemajú v úmysle meniť toto nastavenie ručne. Namiesto toho GDM sleduje akékoľvek rozloženia klávesnice vybrané v tomto konfiguračnom kľúči a zobrazí ich v kombinačnom poli rozloženia klávesnice spolu s možnosťou „Iné...“. Týmto spôsobom sú bežne vybrané rozloženia klávesnice ľahšie vyberateľné.

/apps/gdm/simple-greeter/wm_use_compiz

-     false (boolean)

  Ovláda, či sa ako správca okien má použiť compiz miesto metacity.

### Konfigurácia zjednodušeného ovládania

Táto časť popisuje možnosti konfigurácie zjednodušeného ovládania dostupné v GDM.

#### Dialógové okno zjednodušeného ovládania GDM a kľúče GConf

Panel privítacieho okna GDM na prihlasovacej obrazovke zobrazuje ikonu zjednodušeného ovládania. Kliknutím na túto ikonu sa otvorí dialógové okno zjednodušeného ovládania GDM. V tomto okne je zoznam začiarkavacích polí, takže používateľ môže povoliť alebo zakázať príslušné asistenčné nástroje.

Začiarkavacie polia, ktoré zodpovedajú asistenčným nástrojom Klávesnica na obrazovke, Lupa obrazovky a Čítačka obrazovky, ovplyvňujú tri kľúče GConf, ako je popísané v nasledujúcej časti tohto dokumentu. Povolením alebo zakázaním týchto začiarkavacích polí sa priradený kľúč GConf nastaví na „true“ alebo „false“. Keď je kľúč GConf nastavený na true, príslušný asistenčný nástroj sa spustí. Keď je kľúč GConf nastavený na „false“, bežiaci asistenčný nástroj súvisiaci s týmto kľúčom bude ukončený. Tieto kľúče GConf sa po prihlásení používateľa automaticky neresetujú do predvoleného stavu. V dôsledku toho sa asistenčné nástroje, ktoré bežali počas posledného prihlasovacieho sedenia GDM, automaticky spustia aj v ďalšom sedení.

Ostatné začiarkavacie polia v dialógovom okne zjednodušeného ovládania GDM nemajú zodpovedajúce kľúče GConf, pretože sa nespúšťa žiadny ďalší program, ktorý by poskytoval funkcie zjednodušeného ovládania, ktoré ponúkajú. Tieto ďalšie možnosti zodpovedajú funkciám zjednodušeného ovládania, ktoré poskytuje Xserver, ktorý je vždy počas sedenia GDM spustený.

#### Kľúče GConf pre zjednodušené ovládanie

GDM ponúka nasledujúce kľúče GConf na ovládanie jeho funkcií zjednodušeného ovládania:

#### Kľúče nastavenia GDM

/desktop/gnome/interface/accessibility

-     false (boolean)

  Ovláda, či sa infraštruktúra zjednodušeného ovládania spustí spolu s grafickým rozhraním GDM. To je potrebné, aby mohla fungovať väčšina programov zjednodušeného ovládania.

/desktop/gnome/applications/at/screen_magnifier_enabled

-     false (boolean)

  Ak je nastavené, spolu s grafickým rozhraním GDM sa spustia aj príslušné asistenčné nástroje priradené k tomuto kľúču GConf. V predvolenom stave je to aplikácia Lupa obrazovky.

/desktop/gnome/applications/at/screen_keyboard_enabled

-     false (boolean)

  Ak je nastavené, spolu s grafickým rozhraním GDM sa spustia aj príslušné asistenčné nástroje priradené k tomuto kľúču GConf. V predvolenom stave je to aplikácia Klávesnica na obrazovke.

/desktop/gnome/applications/at/screen_reader_enabled

-     false (boolean)

  Ak je nastavené, spolu s grafickým rozhraním GDM sa spustia aj príslušné asistenčné nástroje priradené k tomuto kľúču GConf. V predvolenom stave je to aplikácia Čítačka obrazovky.

#### Previazanie kľúčov GConf s nástrojmi zjednodušeného ovládania

Pre kľúče GConf screen_magnifier_enabled, screen_keyboard_enabled a screen_reader_enabled závisí asistenčný nástroj, ktorý sa spustí, od súborov .desktop umiestnených v adresári GDM pre automatické spúšťanie, ako je popísané v časti „Konfigurácia automatického spúšťania“ v tejto príručke. Akýkoľvek súbor .desktop v adresári GDM pre automatické spúšťanie možno prepojiť s kľúčom GConf uvedením tohto kľúča GConf v hodnote AutostartCondition v súbore .desktop. Presný riadok AutostartCondition v súbore desktop by teda mohol byť jeden z nasledujúcich:

    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

Keď je kľúč zjednodušeného ovládania zapnutý, spustí sa akýkoľvek program, ktorý je previazaný s týmto kľúčom v súbore .desktop pre automatické spúšťanie (pokiaľ nie je v súbore .desktop nastavený kľúč Hidden). Jeden kľúč GConf môže dokonca spustiť viacero asistenčných nástrojov, ak existuje v adresári GDM pre automatické spúšťanie viac súborov .desktop s týmto kľúčom AutostartCondition.

#### Príklad úpravy konfigurácie nástroja zjednodušeného ovládania

Napríklad, ak je GNOME distribuované s GOK ako predvolenou klávesnicou na obrazovke, môžete ju v prípade potreby nahradiť iným programom. Aby ste nahradili GOK aplikáciou „onboard“ a aktivovali aj asistenčný nástroj „mousetweaks“ pre softvérové kliknutia, je potrebná nasledovná konfigurácia.

Vytvorte jeden súbor .desktop pre onboard a druhý pre mousetweaks. Napríklad onboard.desktop a mousetweaks.desktop. Tieto súbory musia byť umiestnené v adresári GDM pre automatické spúšťanie a musia používať formát popísaný v kapitole „Konfigurácia automatického spúšťania“ v tomto dokumente.

Nasleduje príklad súboru `onboard.desktop`:

    [Desktop Entry]
    Encoding=UTF-8
    Name=Onboard Onscreen Keyboard
    Name[sk]=Klávesnica na obrazovke
    Comment=Use an on-screen keyboard
    Comment[sk]=Použite klávesnicu na obrazovke
    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

Nasleduje príklad súboru `mousetweaks.desktop`:

    [Desktop Entry]
    Encoding=UTF-8
    Name=Software Mouse-Clicks
    Name[sk]=Klikajte softvérovou myšou
    Comment=Perform clicks by dwelling with the pointer
    Comment[sk]=Klikajte softvérovým ukazovateľom myši
    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

Všimnite si riadok s AutostartCondition, ktorý prepája oba súbory .desktop s kľúčom GConf pre klávesnicu na obrazovke.

Aby ste zabránili spusteniu GOK, musíte odstrániť súbor .desktop pre klávesnicu na obrazovke GOK alebo ho musíte deaktivovať. V opačnom prípade by sa spustil GOK aj onboard súčasne. To môžete dosiahnuť odstránením súboru gok.desktop z adresára GDM pre automatické spúšťanie GDM alebo pridaním kľúča „Hidden=true“ do súboru gok.desktop.

Po vykonaní týchto zmien sa GOK už nebude ďalej spúšťať, keď používateľ aktivuje klávesnicu na obrazovke v sedení GDM. Namiesto toho sa spustí onboard a mousetweaks.

### Všeobecné nastavenia sedenia

Prihlasovacie okno GDM používa ten istý základný rámec ako sedenie vašej pracovnej plochy. Preto je ovplyvnené niekoľkými identickými nastaveniami GConf. Pre každé z týchto nastavení použije prihlasovacie okno predvolené hodnoty, ak nie sú kokrétne prepísané a) povinnou politikou GDM b) systémovou povinnou politikou. GDM inštaluje vlastnú povinnú politiku, aby z bezpečnostných dôvodov uzamkol niektoré nastavenia.

### Démon nastavení GNOME

GDM zapína nasledujúce zásuvné moduly gnome-settings-daemon: a11y-keyboard, background, sound, xsettings.

Tieto sú zodpovedné za veci ako obrázok na pozadí, nastavenia písma a motívu, zvukové udalosti atď.

Zásuvné moduly je možné tiež zakázať pomocou GConf. Napríklad, ak chcete zakázať zvukový modul pre zvuk, zrušte nastavenie nasledujúceho kľúča: `/apps/gdm/simple-greeter/settings-manager-plugins/sound/active`.

### Konfigurácia sedenia GDM

Sedenia GDM sú určené pomocou špecifikácie položiek pracovnej plochy od FreeDesktop.org, ktorú nájdete na nasledujúcej URL: https://www.freedesktop.org/wiki/Specifications/desktop-entry-spec.

Štandardne GDM inštaluje súbory .desktop do adresára `<share>/xsessions`. GDM prehľadáva nasledujúce adresáre v tomto poradí v snahe nájsť súbory .desktop: `<etc>/X11/sessions/`, `<dmconfdir>/Sessions`, `<share>/gdm/BuiltInSessions` a `<share>/xsessions`. Ako predvolená hodnota pre `<dmconfdir>` sa používa `<etc>/dm/`, pokiaľ nie je GDM nakonfigurované, aby používalo iný adresár pomocou voľby „--with-dmconfdir“.

Sedenie je možné zakázať úpravou súboru .desktop a pridaním riadka: `Hidden=true`.

Súbory .desktop GDM podporujú rozšírenie špecifické pre GDM, kľúč s názvom „X-GDM-BypassXsession“. Ak kľúč v súbore .desktop nie je uvedený, jeho predvolená hodnota je „false“. Ak je tento kľúč v súbore .desktop nastavený na hodnotu „true“, GDM spustí program uvedený v kľúči „Exec“ priamo pri spustení sedenia používateľa. Nebude program spúšťať prostredníctvom skriptu `<etc>/gdm/Xsession`, čo je normálne správanie. Pretože sa takto obíde skript `<etc>/gdm/Xsession`, zabráni sa vytvoreniu sedenia používateľa s normálnym systémom a nastaveniami používateľa, môže byť sedenie spustené týmto spôsobom vhodné pre ladenie problémov v systéme alebo pre skripty používateľa, ktoré môžu zamedziť používateľovi v spustení sedenia.

### Konfigurácia sedenia a jazyka používateľa GDM

Predvolené voľby sedenia a jazyka používateľa sú uložené v súbore `~/.dmrc`. Keď sa používateľ prihlási prvýkrát, tento súbor sa vytvorí s počiatočnými voľbami používateľa. Používateľ môže tieto predvolené hodnoty zmeniť jednoduchou tak, že pri prihlásení použije iné hodnoty. GDM si túto zmenu zapamätá pre následné prihlásenia.

Súbor `~/.dmrc` je v štandardnom formáte `INI`. Má jednu sekciu s názvom `[Desktop]`, ktorá má dva kľúče: `Session` a `Language`.

Kľúč `Session` určuje základný názov súboru `.desktop` sedenia, ktorý si želá používateľ bežne používať bez prípony `.desktop`. Kľúč `Language` určuje jazyk, ktorý chce používateľ používať ako predvolený. Ak ktorýkoľvek z týchto kľúčov chýba, použije sa predvolená hodnota systému. Súbor by mal vyzerať takto:

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

## Príkazy GDM

### Príkazy GDM pre používateľa root

Balík GDM poskytuje nasledujúce príkazy v `sbindir` určené na spustenie používateľom root:

#### Prepínače príkazového riadka `gdm`

`gdm` je hlavný démon, ktorý nastavuje grafické prihlasovacie prostredie a spúšťa potrebné pomocné programy.

#### Prepínače príkazového riadka `gdm`

-?, --help

- Poskytuje stručný prehľad prepínačov príkazového riadka.

--fatal-warnings

- Spôsobí, že všetky varovania skončia ukončením GDM.

--timed-exit

- Ukončiť po 30 sekundách. Užitočné na ladenie.

--version

- Vypísať verziu démona GDM.

#### Prepínače príkazového riadka `gdm-restart`

`gdm-restart` zastaví a reštartuje GDM odoslaním signálu HUP démonovi GDM. Tento príkaz okamžite ukončí všetky sedenia a odhlási používateľov aktuálne prihlásených pomocou GDM.

#### Možnosti príkazového riadka `gdm-safe-restart`

`gdm-safe-restart` zastaví a reštartuje GDM odoslaním signálu USR1 démonovi GDM. GDM sa reštartuje, akonáhle sa všetci používatelia odhlásia.

#### Prepínače príkazového riadka `gdm-stop`

`gdm-stop` zastaví GDM odoslaním signálu TERM démonovi GDM.

## Riešenie problémov

V tejto časti sú preberané užitočné tipy na opravu GDM. Vo všeobecnosti, ak máte s používaním GDM nejaký problém, môžete odoslať chybové hlásenie alebo poslať e-mail do e-mailovej konferencie gdm-list. Informácie o tom, ako to urobiť, nájdete v úvodnej časti tohto dokumentu.

Ak GDM nefunguje správne, je vždy dobrý nápad pridať ladiace informácie. Tie povolíte nastavením kľúča debug/Enable na „true“ v súbore `<etc>/gdm/custom.conf` a reštartovaním GDM. Potom priveďte GDM do bodu, kde zlyhá a ladiaci výstup sa odošle do súboru systémového záznamu (`<var>/log/messages` alebo `<var>/adm/messages` v závislosti od vášho operačného systému). Ak zdieľate tento výstup s komunitou GDM prostredníctvom hlásenia chyby alebo e-mailom, prosím, pridajte len ladiace informácie súvisiace s GDM a nie celý súbor, nakoľko môže byť veľký. V prípade, že nevidíte v systémovom zázname žiadny výstup z GDM, možno budete musieť nastaviť syslog (viď manuálová stránka syslog).

### GDM sa nespúšťa

Existuje mnoho problémov, ktoré môžu spôsobiť, že GDM sa nespustí, ale v tejto časti je preberaných iba niekoľko najbežnejších problémov a postupy, ako pristupovať k zisťovaniu príčin problému so spúšťaním GDM. Niektoré problémy spôsobia, že GDM zareaguje chybovou správou alebo dialógovým oknom, ale keď oznámenie zlyhá, môže byť zložité problém odsledovať.

Najprv sa presvedčte, že je Xserver správne nastavený. Súbor s nastavením GDM obsahuje v časti [server-Standard] príkaz, ktorý sa používa na spustenie Xservera. Skontrolujte, či tento príkaz funguje na vašom systéme. Spustenie tohto príkazu v konzole by malo spustiť Xserver. Ak zlyhá, je problém pravdepodobne vo vašej konfigurácii Xservera. Skontrolujte záznam chýb Xservera, aby ste získali predstavu o tom, aký problém by to mohol byť. Problém môže byť aj v tom, že váš Xserver vyžaduje iné prepínače príkazového riadka. Ak je to tak, upravte príkaz Xservera v súbore s nastavením GDM tak, aby bol správny pre váš systém.

Takisto sa uistite, že adresár `/tmp` má správneho vlastníka a oprávnenia a že súborový systém stroja nie je plný. Tieto problémy spôsobia, že GDM sa nespustí.

## Licencia

Tento program je slobodný softvér; môžete ho šíriť a/alebo upravovať podľa podmienok Všeobecnej verejnej licencie GNU ako ju vydala nadácia Free Software Foundation; buď verzie 2 licencie, alebo (podľa vášho výberu) akejkoľvek neskoršej verzie.

Tento program je distribuovaný v nádeji, že bude užitočný, ale BEZ AKEJKOĽVEK ZÁRUKY; dokonca bez implicitnej záruky OBCHODOVATEĽNOSTI alebo VHODNOSTI NA KONKRÉTNY ÚČEL. Ďalšie podrobnosti nájdete v Všeobecnej verejnej licencii GNU.

Kópia Všeobecnej verejnej licencie GNU je zahrnutá ako dodatok k Príručke používateľa GNOME. Kópiu Všeobecnej verejnej licencie GNU môžete tiež získať od nadácie Free Software Foundation návštevou ich webovej stránky alebo napísaním na

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