# Referenční příručka ke Správci zobrazení GNOME

0.0
2008-09

GDM je GNOME Display Manager, grafický přihlašovací program.

Martin
K.
Petersen

    mkp@mkp.net

George
Lebl

    jirka@5z.com

Jon
McCann

    mccann@jhu.edu

Ray
Strode

    rstrode@redhat.com

Brian
Cameron

    Brian.Cameron@Oracle.COM

1998
1999
Martin K. Petersen
2001
2003
2004
George Lebl
2003
2007
2008
Red Hat, Inc.
2003
2011
Oracle a/nebo jeho pobočky. Všechna práva vyhrazena.
Tato příručka popisuje GNOME Display Manager ve verzi 2.26.0. Naposledy byla aktualizovaná 2.10.2009.

## Termíny a konvence použité v této příručce

Tato příručka popisuje GNOME Display Manager ve verzi 2.26.0. Naposledy byla aktualizovaná 2.10.2009.

Chooser – Program používaný k výběru vzdáleného hostitele pro správu displeje vzdáleně na připojeném displeji (`gdm-host-chooser`).

FreeDesktop – Orgranizace poskytující standardy pro pracovní prostředí, například specifikaci položek pracovní plochy, kterou používá GDM. http://www.freedesktop.org.

GDM – GNOME Display Manager. Používá se k označení softwarového balíčku jako celku.

Greeter – Grafické přihlašovací okno (poskytuje `gnome-shell`).

PAM – Pluggable Authentication Mechanism (ověřovací mechanizmus používající zásuvné moduly)

XDMCP – X Display Manage Protocol (protokol pro správu displejů X)

Xserver – Implementace X Window System. Například Xorg Xserver poskytovaný X.org Foundation http://www.x.org.

Cesty, které začínají slovem v lomených závorkách, jsou relativní vůči instalačnímu prefixu. Např. `<share>/pixmaps/` odkazuje na `/usr/share/pixmaps` v případě, že byl GDM konfigurován s `--prefix=/usr`.

## Přehled

### Úvod

GNOME Display Manager (GDM) je správce displejů, který implementuje všechny podstatné funkce požadované pro správu připojených a vzdálených displejů. GDM byl napsán od nuly a neobsahuje žádný kód od XDM nebo X Consortium.

Poznamenejme, že GDM je nastavitelné a řada nastavení ovlivňuje bezpečnost. Zásadní věci, kterých byste si měli být vědomi, jsou v dokumentu zvýrazněny.

Vezměte prosím na vědomí, že některé operační systémy nastavují chování GDM na jiné hodnoty, než jsou ty výchozí popsané v tomto dokumentu. Pokud se vám bude zdát, že se GDM nechová, jak je zde popisováno, podívejte se, jestli příslušné nastavení nemá jinou hodnotu, než je uvedeno zde.

S dalšími informacemi ohledně GDM vás odkážeme na webové stránky projektu http://wiki.gnome.org/Projects/GDM.

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

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

### Stabilita rozhraní

GDM 2.20 a starší podporuje stabilní rozhraní pro nastavení. Ve verzi GDM 2.22 byl ale kompletně přepsán všechen kód a není zcela zpětně kompatibilní se staršími vydáními. To je částečně dáno tím, že věci pracují jinak, takže některé volby nemají smysl, částečně proto, že některé volby neměly nikdy smysl a částečně proto, že některá funkcionalita nebyla zatím znovu implementována.

Mezi rozhraní, která jsou nadále podporována stabilním způsobem, patří skripty Init, PreSession, PostSession, PostLogin a Xsession. Nadále jsou podporovány některé volby nastavení démona v souboru `<etc>/gdm/custom.conf`. A také je stále podporováno `~/.dmrc` a umístění obrázků pro prohlížeč obličejů.

GDM 2.20 a starší podporoval schopnost spravovat více displejů přes oddělené grafické karty, jako se to používá v prostředích terminálových serverů, přihlašování okna přes programy jako Xnest nebo Xephyr, program gdmsetup, motivy uvítání definované v XML a schopnost spouštět XDMCP chooser z přihlašovací obrazovky. Tyto funkce nebyly při přepisování verze 2.22 přidány zpět.

### Popis funkčnosti

GDM je zodpovědný za správu displejů v systému. To zahrnuje ověřování uživatelů, spouštění uživatelských sezení a jejich ukončování. GDM je nastavitelný a způsoby, jak jej nastavit, jsou popsány v kapitole „Nastavení GDM“ v tomto dokumentu. GDM je také přístupné pro uživatele s postižením.

GDM poskytuje schopnost spravovat displej hlavní konzoly a displeje spuštěné přes VT. Je integrován s ostatními programy, jeko je Fast User Switch Applet (FUSA) a gnome-screensaver, aby spravoval více displejů na konzole přes rozhraní Xserver Virtual Terminal (VT). Může také spravovat displeje XDMCP.

Bez ohledu na typ displeje, provádí GDM při správě displeje následující. Spustí proces Xserveru, následně spustí skript `Init` pod superuživatelem root a spustí na displeji uvítací program.

Uvítací program je spuštěn pod neprivilegovaným uživatelem/skupinou „gdm“. Tento uživatel a skupina jsou popsáni v kapitole „Bezpečnost“ tohoto dokumentu. Hlavní funkcí uvítacího programu je poskytovat mechanizmus pro výběr účtu pro přihlášení a řídit dialog mezi uživatelem a systémem, když se ověřuje účet. Proces ověřování je řízen pomocí PAM (Pluggable Authentication Modules). Moduly PAM určují, jaké dotazy (pokud vůbec nějaké) se ohledně ověření mají uživateli zobrazit. Na běžném systému bude uvítací program pro ověření požadovat uživatelské jméno a heslo. Některé systémy ale mohou být nastaveny, aby používaly doplňkové mechanizmy, jako je otisk prstu nebo čtečka čipových karet. GDM může být nastaven, aby podporoval tyto alternativy souběžně s přihlašovacími rozšířeními uvítacího programu a volbou `--enable-split-authentication` v `./configure` nebo jednu po druhé přes nastavení PAM.

Rozšíření pro čipové karty může být povoleno nebo zakázáno přes klíč gsettings `org.gnome.display-manager.extensions.smartcard.active`.

Obdobně rozšíření pro otisky prstů může být povoleno nebo zakázáno přes klíč gsettings `org.gnome.display-manager.extensions.fingerprint.active`.

GDM a PAM lze natavit tak, že nepožadují žádný vstup, což způsobí, že GDM provede automatické přihlášení a prostě spustí sezení, což se může hodit v některých případy, jako jsou jednouživatelské systémy nebo kiosky.

Navíc k ověření, umožňuje uvítací program uživateli vybrat si, které sezení se má spustit a jaký se má použít jazyk. Sezení jsou definována pomocí souborů, které mají připonu .desktop a více informací o těchto souborech najdete v kapitole „Nastavení uživatelova sezení a jazyka v GDM“. Ve výchozím stavu je GDM nastaveno, by zobrazovalo prohlížeč obličejů, takže uživatel může vybrat svůj účet kliknutím na obrázek namísto vypisování svého uživatelského jména. GDM si pamatuje výchozí sezení a jazyk uživatele v uživatelově souboru `~/.dmrc` a použije tyto výchozí hodnoty, když si uživatel nevybere sezení a jazyk v přihlašovacím rozhraní.

Po ověření uživatele démon spustí jako superuživatel root skript `PostLogin` a následně jako superuživatel root skript `PreSession`. Po provedení těchto skriptů je uživatelské sezení nastartováno. Když uživatel své sezení ukončí, je pod superuživatelem root spuštěn skript `PostSession`. Tyto skripty jsou poskytovány jako háčky pro distributory a koncové uživatele, aby si mohli přizpůsobit, jak má být sezení spravováno. Například byste pomocí těchto háčků mohli spustit stroj, který za běhu vytvoří uživatelovu složku $HOME a při odhlášení ji smaže. Rozdíl mezi skripty `PostLogin` a `PreSession` je v tom, že `PostLogin` je spuštěn před voláním pam_open_session, takže je to pravé místo pro vykonání čehokoliv, co by mělo být uděláno před tím, než je inicializováno uživatelovo sezení. Skript `PreSession` je volán po inicializaci sezení.

### Uvítací panel

Uvítací program GDM zobrazuje panel umístěný v dolní části obrazovky, který poskytuje dodatečnou funkcionalitu. Když je vybrán uživatel, umožní panel uživateli vybrat si, které sezení, jazyk a rozvržení klávesnice chce po přihlášení používat. Výběr rozvržení klávesnice se bude týkat i psaní hesla. Panel rovněž obsahuje oblast pro přihlašovací služby, aby v něm mohli zobrazit svoji stavovou ikonu. Příkladem některých stavových ikon je ikona baterie a ikona pro zapnutí funkcí zpřístupnění. Uvítací program rovněž poskytuje tlačítka, která umožňují uživateli vypnout nebo restartovat systém. Když je potřeba, je možné GDM nastavit tak, aby tlačítka pro vypnutí a restart nenabízel. GDM je také možné nastavit přes PolicyKit (nebo přes RBAC v OS Oracle Solaris), aby po uživateli požadoval příslušné ověření, než příjme požadavek na vypnutí nebo restart.

Upozorňujeme, že funkce rozvržení klávesnice je dostupná jen na systémech, které podporují libxklavier.

### Zpřístupnění

GDM podporuje „Zpřístupněné přihlášení“, které umožňuje uživateli přihlásit se do svého sezení pracovního prostředí, i když nemůže jednoduše použít obrazovku, myš nebo klávesnici obvyklým způsobem. K dispozici jsou funkce technologie zpřístupnění (AT – Accessible Technology), jako je klávesnice na obrazovce, čtečka obrazovky, lupa obrazovky a klávesnice Xserver AccessX. Pokud je potřeba, je také možné zapnout velký text nebo ikony a ovládací prvky s vysokým kontrastem. Na informace, jak je možné různé funkce zpřístupnění nastavit, se podívejte do kapitoly „Nastavení zpřístupnění“ v tomto dokumentu.

V některých operačních systémech je nutné zajistit, aby uživatel GDM byl členem skupiny „audio“ pro programy AT, které pro svoji funkčnost požadují zvukový výstup (např. čtení textu).

### Prohlížeč obličejů GDM

Prohlížeč obličejů je rozhraní, které umožňuje uživatelům vybrat si uživatelské jméno kliknutím na obrázek. Tuto funkcionalitu je možné povolit nebo zakázat pomocí klíče GSettings org.gnome.login-screen/disable-user-list a ve výchozím stavu je zapnutá. Když ji vypnete, musí uživatel své uživatelské jméno celé napsat ručně. Když je povolená, zobrazí se všichni místní uživatelé, kteří mají povolené přihlášení do systému (všechny uživatelské účty definované v souboru /etc/passwd, které mají platný shell a dostatečně vysoké UID) a vzdálené uživatele, kteří se přihlašovali v nedávné době. Prohlížeč obličejů v GDM 2.20 a starším by se pokusil zobrazit všechny vzdálené uživatele, co způsobovalo výkonostní problémy v rozsáhlých firemních prostředích.

Prohlížeč obličejů je nastaven, aby zobrazoval uživatele, kteří se přihlašují nejčastěji, v horní části seznamu. To zajistí, že uživatelé, kteří se přihlašují nejčastěji, mohou svůj obrázek najít velmi rychle.

Prohlížeč obličejů podporuje „hledání psaním“, které dynamicky přesouvá výběr obličeje tak, jak uživatel píše v seznamu příslušné uživatelské jméno. To znamená, že uživateli s dlouhým uživatelským jménem z něj stačí napsat pár prvních znaků, aby se v seznamu vybrala správná položka.

Ikony používané GDM mohou být nainstalované globálně správcem systému nebo mohou být umístěny v domovské složce uživatele. Když jsou nainstalovány globálně, měly by být ve složce `<share>/pixmaps/faces/` a název souboru by měl odpovídat jménu uživatele. Obrázek s obličejem by měl být standardní obrázek, kerý umí číst GTK+, jako je PNG nebo JPEG. Obrázky s obličeji umístěné v globální složce s obličeji musí být přístupné ke čtení uživatelem GDM.

Když pro uživatele není k dispozici globální ikona, podívá se GDM po souboru s obrázkem do složky $HOME uživatele. Nejprve se GDM dívá po obrázku s uživatelovým obličejem do `~/.face`. V případě, že jej nenajde, zkusí `~/.face.icon`. Pokud jej stále nenajde, použije hodnotu definovanou pro „face/picture=“ v souboru `~/.gnome2/gdm`.

V případě, že uživatel nemá určen obrázek s obličejem, použije GDM ikonu „stock_person“ definovanou v aktuálním motivu GTK+. Pokud takový obrázek definován není, použije se náhradní obecný obrázek obličeje.

Uvědomte si prosím, že načtení a přeškálování ikon s obličeji umístěními ve vzdálených domovských složkách uživatelů může být časově náročný úkol. Protože není praktické načítat obrázky přes NIS nebo NFS, nepokouší se GDM načíst obrázky obličejů ze vzdálených domovských složek.

Když je prohlížeč zapnut, jsou vystavena uživatelská jména všem, kdo se podívají. Když je povoleno XDMCP, jsou uživatelská jména vystavena i vzdáleným uživatelům. Tím se samozřejmě oslabuje bezpečnost vůči záškodnickým uživatelům, kteří tak nemusí hádat platná uživatelská jména. V některých prostředích s přísnými podmínkami tak nemusí být prohlížeč obličejů vhodný.

### XDMCP

Démon GDM může být nastaven, aby naslouchal a spravoval požadavky XDMCP (X Display Manage Protocol) ze vzdálených displejů. Ve výchozím stavu je podpora XDMCP vypnutá, ale na přání ji lze zapnout. Pokud je GDM sestaven s podporou knihovny TCP Wrapper, umožní démon přístup jen hostitelům uvedeným v oddíle služby GDM v souboru s nastavením pro TCP Wrapper.

GDM obsahuje několik opatření, která jej činí odolnějším vůči útokům DoS (Denial of Service) na službu XDMCP. Většinu parametrů protokolu, časový limit dohadování atd. je možné vyladit. Výchozí nastavení by mělo rozumně fungovat na většině systémů.

GDM ve výchozím stavu naslouchá požadavkům XDMCP na normálním portu UDP používaném protokolem XDMCP, tj. port 117, a reaguje na požadavky QUERY a BROADCAST_QUERY zasláním paketu WILLING původci.

GDM může být také nastaveno, aby reagovalo na dotazy INDIRECT a prezentovalo chooser hostitele pro vzdálený displej. GDM si pamatuje, co si uživatel zvolil, a předává následující požadavky do zvoleného správce. GDM rovněž podporuje rozšíření protokolu, které dělá to, že zapomene přesměrování, jakmile je připojení uživatele úspěšné. Toto rozšíření je podporováno, jen když jsou oba démoni GDM. Je transparentní a bude ignorováno XDM nebo jinými démony, kteří implementují XDMCP.

Pokud to vypadá, že XDMCP nepracuje, ujistěte se, že všechny stroje jsou uvedeny v `/etc/hosts`.

Podívejte se do kapitoly „Bezpečnost“ na informace o bezpečnosti související s používáním XDMCP.

### Záznamy

GDM používá syslog k zaznamenávání chyb a stavu. Může také zaznamenávat ladicí informace, které mohou být použitelné pro vyhledávání problémů, když GDM nepracuje správně. Ladicí výstup může být zapnut nastavením klíče debug/Enable na „true“ v souboru `<etc>/gdm/custom.conf`.

Výstup z různých Xserverů se uchovává ve složce se záznamy GDM, kterou je normálně `<var>/log/gdm/`. Všechny zprávy Xserveru jsou ukládány do souboru spřaženého s hodnotou displeje, `<display>.log`.

Výstup sezení je rourou propojen přes démona GDM do souboru `~/$XDG_CACHE_HOME/gdm/session.log`, kterým je obvykle konkrétně `~/.cache/gdm/session.log`. Soubor je při každém sezení přepsán, takže každé odhlášení a opětovné přihlášení toho samého uživatele přes GDM způsobí ztrátu všech zpráv z předchozích sezení.

Upozorňujeme, že když GDM z nějakého důvodu nemůže tento soubor vytvořit, tak je vytvořen záložní soubor s názvem `~/$XDG_CACHE_HOME/gdm/session.log.XXXXXXXX`, kde `XXXXXXXX` jsou ve skutečnosti nějaké náhodné znaky.

### Rychlé přepínání uživatelů

GDM umožňuje, aby bylo naráz přihlášeno více uživatelů. Po té, co se přihlásí jeden uživatel, mohou se další uživatelé přihlásit pomocí „Přepnout uživatele“ na panelu GNOME nebo pomocí tlačítka „Přepnout uživatele“ v dialogovém okně zamykací obrazovky. Aktivní sezení můžete měnit tam a zpět pomocí stejného postupu. Někteří distributoři nemusí přepínač uživatele přidat do výchozího nastavení panelu. V takovém připadě si jej můžete přidat pomocí kontextové nabídky panelu.

Upozorňujeme, že tato funkčnost je dostupná na systémech, které podporují virtuální terminály. Pokud nejsou virtuální terminály dostupné, nebude tato funkčnost pracovat.

## Bezpečnost

### Uživatel a skupina GDM

Z bezpečnostních důvodů je pro vybrané operace doporučován vyhrazený uživatel a skupina. Tento uživatel a skupina jsou normálně na většině systémů „gdm“, ale je možné nastavit libovolného uživatele a skupinu. Všechny programy GDM s grafickým rozhraním běží pod tímto uživatelem, takže jsou programy komunikující s uživatelem uzavřené na pískovišti. Tento uživatel a skupina by měli mít omezená oprávnění.

Jediné speciální oprávnění, které uživatel „gdm“ potřebuje, je schopnost číst a zapisovat soubory Xauth do složky `<var>/run/gdm`. Složka `<var>/run/gdm` by měla mít vlastnictví root:gdm a oprávnění 1777.

Neměli byste v žádném případě nastavovat uživatele/skupinu GDM na uživatele, který může snadno získat přístup, jako je uživatel `nobody`. Libovolný uživatel, který získá přístup ke klíči Xauth, může odposlouchávat a ovládat spouštění grafických programů běžících ve spojitosti se sezením nebo na něj provádět útoky DoS. Je důležité zajistit, aby byl systém nastaven správně, takže jen uživatel „gdm“ má přístup k těmto souborům a že nebude tak snadné se přihlásit k tomuto účtu. Například byl měl být účet nastaven tak, aby neměl heslo a umožňoval přihlíšení k účtu jiným uživatelům, než těm, co mají oprávnění superuživatele root.

Nastavení uvítacího programu GDM je uchováno v GConf. Aby uživatel GDM byl schopen nastavení zapsat, je nutné mít pro uživatele „gdm“ oprávnění zapisovat do složky $HOME. Uživatel může nastavit výchozí nastavení GConf podle svého přání, aby předešel potřebě poskytnout uživateli „gdm“ zápis do složky $HOME. Některé funkce GDM však mohou být potom nepřístupné, protože není možné do nastavení GConf zapisovat stavové informace.

### PAM

GDM používá k ověřování při příhlášení PAM. PAM je zkratka pro Pluggable Authentication Module (zásuvné ověřovací moduly) a je používán většinou programů, které ve vašem počítači požadují ověření. Umožňuje správcům nastavit konkrétní chování při ověřování z různých přihlašovacích programů (jako je ssh, grafické přihlašovací rozhraní, šetřič obrazovky apod.).

PAM je komplikovaný a vysoce nastavitelný a tento dokument nemá za cíl vysvětlovat jej do podrobností. Místo toho se zaměříme na podání přehledu, jaký je vztah mezi nastavením PAM a GDM, jak bývá PAM běžně nastaven pro spolupráci s GDM, a na známé problémy. Očekává se, že člověk, který potřebuje PAM nastavovat, si bude muste přečíst dokumentaci k němu, aby pochopil jak se nastavuje a aby rozumněl termínům použitým v této kapitole.

Nastavení PAM má různá, ale podobná, rozhraní na různých operačních systémech, takže se podívejte do manuálové stránky pam.d nebo pam.conf. Určitě si přečtěte dokumentaci k PAM a promyslete si, jestli případné změny, které zamýšlíte v nastavení udělat, nemají nějaké bezpečnostní dopady.

Poznamenejme, že ve výchozím stavu GDM používá službu PAM s názvem „gdm“ pro normální přihlášení a službu PAM s názvem „gdm-autologin“ pro automatické přihlášení. Tyto služby nemusí být ve vašem souboru s nastavením pam.d nebo pam.conf definovány. Pokud v nich není žádná položka, využije GDM výchozí chování PAM. Na většině systému to bude v pořádku fungovat. Avšak funkce automatického přihlášení nemusí pracovat, když služba gdm-autologin není definována.

Skript `PostLogin` je spuštěn před zavoláním pam_open_session a skript `PreSession` je volán po. To umožňuje správcům systému přidat libovolné skriptování do přihlašovacího procesu před a/nebo po tom, co PAM inicializuje sezení.

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

PAM nemá nijaká omezení týkající se schopnosti pracovat s více typy ověřování naráz, jako třeba podporovat možnost přijímat čipové karty a možnost zadávat uživatelské jméno a heslo do přihlašovacího programu. Existují postupy, které se používají k rozchození takovýchto věcí, a nejlepší je vyhledat si, jak se takovýto problém obvykle řeší, když chcete nějaké konkrétní nastavení.

Pokud v systému nefunguje automatické přihlášení, zkontrolujte, že je v nastavení PAM definován „gdm-autologin“. Aby to fungovalo, je nutné použít modul PAM, který jednoduše neprovádí žádné ověření nebo prostě vrací PAM_SUCCESS ze všech svých veřejných rozhraní. Předpokládejme, že váš systém má modul PAM pam_allow.so, který tak činí, a nastavení PAM pro povolení „gdm-autologin“ by vypadalo nějak 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

Nastavení výše způsobí, že nebude vygenerován záznam s posledním přihlášením. Pokud je tento záznam požadován, použijte pro sezení následující:

           gdm-autologin session required pam_unix_session.so.1

Pokud počítač používá několi lidí, což činí automatické přihlášení nepoužitelným, můžete chtít umožnit některým uživatelům, aby se přihlašovali bez zadávání svého hesla. Tato funkce může být zapnutá jako volba jednotlivých uživatelů v nástroji users-admin z gnome-system-tools. Toho je dosaženo kontrolou, že uživatel je členem unixové skupiny nazývané „nopasswdlogin“, před tím, než je dotázán na heslo. Aby to fungovalo, musí soubor s nastavením PAM pro službu „gdm“ obsahovat řádek jako:

          gdm auth  sufficient  pam_succeed_if.so  user ingroup nopasswdlogin

### utmp a wtmp

GDM generuje při přihlášení a odhlášení položky do databází uživatelských účtů utmp a wtmp. Databáze utmp obsahuje přístupy uživatelů a informace o účtech, ke kterým je přistupováno příkazy, jako je `finger`, `last`, `login` a `who`. Databáze wtmp obsahuje historii přístupů uživatelů a informace o účtech pro databázi utmp. Více informací najdete v manuálových stránkách utmp a wtmp

### Ověřovací schéma Xserveru

Soubory s ověřením Xserveru jsou uchovány v podsložce nově vytvořené při spuštění ve `<var>/run/gdm`. Tyto soubory jsou používány k uchování a sdílení „hesla“ mezi klientem X a serverem X. Toto „heslo“ je jedinečné pro každé přihlášené sezení, takže uživatel z jednoho sezení nemůže odposlouchávat uživatele z jiného sezení.

GDM podporuje jen ověřovací schéma Xserveru MIT-MAGIC-COOKIE-1. Z dalších schémat se toho získává jen málo a nebylo vyvinuto žádné úsilí to realizovat. Buďte hlavně obezřetní při používání XDMCP, protože ověřovací cookie jde přes drát jako čistý text. Pokud je možné odposlouchávání, mohl by útočník snadno odposlouchávat vaše ověřovací hesla, když se přihlašujete, bez ohledu na to, jaké ověřovací schéma je použito. Pokud je odposlouchávání možné a nežádoucí, měli byste použít SSH pro tunelování připojení X namísto používání XDMCP. XDMCP byste mohli brát, jako takovou grafickou nadstavbu nad telnetem se stejnými bezpečnostními problémy. Ve většině případů by se ssh -Y mělo upřednostnit před GDM s funkcemi XDMCP.

### Bezpečnost XDMCP

Ačkoliv je váš displej chráněn pomocí cookies, XEvents a tudíž i zmáčknutí kláves provedená při zadávání hesla jdou stále po drátě v podobě čistého textu. Ten je jednoduché zachytit.

XDMCP je hlavně vhodný pro běh tenkých klientů, jako jsou v terminálových místnostech. Takovýto tenký klient bude vždy potřebovat přístup k serveru a tak se jako nejlepší bezpečnostní zásada jeví mít takovéto tenké klienty na oddělené síti, ke které se nedá dostat z vnějšku a připojit se dá jen k serveru. Jediný bod, ze kterého se potřebujete dostat ven, je vlastní server. V tomto typu instalace byste nikdy neměli použít neřiditelný rozbočovač nebo jiná snadno odposlouchávatelná síťová zařízení.

### Řízení přístupu k XDMCP

Řízení přístupu k XDMCP se dělá pomocí knihovny TCP Wrapper. GDM je možné zkompilovat i bez podpory knihovny TCP Wrapper, takže tato funkčnost nemusí být v některých operačních systémech podporována.

Měli byste použít název démona `gdm` v souborech `<etc>/hosts.allow` a `<etc>/hosts.deny`. Například pro odmítnutí příhlášení z počítačů v doméně `.zla.domena` přidejte:

    gdm: .zla.domena

do `<etc>/hosts.deny`. Můžete také přidat

    gdm: .vase.domena

do svého `<etc>/hosts.allow`, když chcete znemožnit všechny služby ze všech počítačů. Podrobnosti viz manuálová stránka hosts.allow(5).

### Zabezpečení na firewallu

I když se GDM snaží přelstít potenciální útočníky zkoušející využít XDMCP, je doporučeno blokovat port XDMCP (normálně to je port UDP 177) na vašem firewallu, pokud jej opravdu nepotřebujete. GDM se chrání vůči útokům DoS, ale protokol X je stále nebezpečný ze své podstaty a měl by být používán jen v prostředích, která máte pod kontrolou. Navíc, každé vzdálené připojení spotřebuje hodně prostředků, takže je mnohem snadnější provést útok DoS přes XDMCP než útočit na webový server.

Je také moudré zablokovat všechny porty Xserveru. Jedná se o porty TCP 6000+ (jeden pro každý z displejů) na vašem firewallu. Uvědomte si, že GDM bude používat čísla displejů 20 a vyšší pro flexibilní servery na vyžádání.

X není příliš bezpečný protokol, pokud se používá přes Internet, a XDMCP na to není o moc lépe.

### PolicyKit

GDM je možné nastavit, aby používal PolicyKit, díky čemuž může správce systému určovat, jestli má přihlašovací obrazovka nabízet na uvítací obrazovce tlačítka pro vypnutí a restartování.

Tato tlačítka jsou řízena činnostmi `org.freedesktop.consolekit.system.stop-multiple-users` a `org.freedesktop.consolekit.system.restart-multiple-users`. Zásady pro tyto činnosti mohou být nastaveny pomocí nástroje polkit-gnome-authorization nebo programem příkazového řádku polkit-auth.

### RBAC (Role Based Access Control)

GDM může k nastavení používat místo PokicyKit také RBAC. V takovém případě se používá nastavení RBAC k řízení, jestli má přihlašovací obrazovka nabízet na uvítací obrazovce tlačítka pro vypnutí a restartování.

Například v systému Oracle Solaris se k řízení tohoto používá autorizace „solaris.system.shutdown“. Stačí upravit soubor `/etc/user_attr` tak, aby měl uživatel „gdm“ tuto autorizaci.

## Podpora pro ConsoleKit

Součástí GDM je podpora pro zveřejňování informací o přihlášení uživatele, pomocí základního rámce známého jako ConsoleKit, pro účtování uživatelů a přihlašovací sezení. ConsoleKit je schopen sledovat všechny uživatele, kteří jsou aktuálně přihlášení. V tomto ohledu může být použit jako náhrada za soubory utmp a utmpx, které se používají na většině operačních systémů unixového typu.

Když se GDM chystá vytvořit nový přihlašovací proces pro uživatele, zavolá privilegovanou metodu z ConsoleKit, aby se otevřelo nové sezení pro tohoto uživatele. V tuto chvíli GDM také poskytne pro ConsoleKit informace o tomto uživatelově sezení, jako: uživatelovo ID, název displeje X11 patřícího k sezení, název počítače, ze kterého sezení vzešlo (užitečné v případech sezení XDMCP), zda je či není toto sezení napojeno atd. Jako subjekt, který uživatelský proces inicioval, je GDM v jedinečné pozici vědět o uživatelově sezení a být oprávněno poskytovat tuto trochu informací. Použivání této privilegované metody je omezeno použitím bezpečnostních zásad systémové sběrnice zpráv D-Bus.

V případě, že uživatel s existujícím sezením byl ověřen v GDM a požaduje obnovení tohoto sezení, GDM zavolá privilegovanou metodu z ConsoleKit, aby se sezení odemklo. Co přesně se má stát, když sezení obdrží signál k odemčení, není definováno a odvisí od daného sezení. Většina sezení však jako odpověď odemkne šetřič obrazovky.

Když uživatel zvolí odhlášení nebo když GDM nebo sezení neočekávaně skončí, bude uživatelovu sezení zrušena registrace v ConsoleKit.

## Nastavení

GDM má několik rozhraní pro nastavení. Patří k nim skriptování integračních bodů, nastavení démona, nastavení uvítání, obecné nastavení sezení, nastavení integrace s gnome-settings-daemon a nastavení sezení. Tyto typy integrace jsou podrobně popsány níže.

### Skriptování integračních bodů

Skripty GDM pro integrační body najdete ve složce `<etc>/gdm/`.

    Xsession
    Init/
    PostLogin/
    PreSession/
    PostSession/

Skripty `Init`, `PostLogin`, `PreSession` a `PostSession` pracují podle popisu uvedeného dále.

Pro každý typ skriptu, se ten, který bude proveden, nazývá „Default“ a je uložen ve složce související s daným typem skriptu. Takže výchozí skript `Init` je `<etc>/gdm/Init/Default`. Mohou být poskytnuty i skripty pro jednotlivé displeje, a když existují, budou spuštěny místo výchozího skriptu. Takovéto skripty jsou uloženy ve stejné složce, jako výchozí skript a mají stejný název jako hodnota DISPLAY Xserveru pro daný displej. Například, když existuje skript `<Init>/:0`, bude spuštěn pro DISPLAY rovno „:0“.

Všechny tyto skripty jsou spuštěny s oprávněními superuživatele root a vrací 0, když byl běh úspěšný, a nenulovou návratovou hodnotu, když selhalo něco, co má za následek přerušení přihlašovacího sezení. Uvědomte si také, že GDM je až do dokončení těchto skriptů blokováno, takže když skript zamrzne, zamrzne i celý přihlašovací proces.

Když je úspěšně spuštěn Xserver pro grafické přihlašovací rozhraní, ale před tím, než je grafické přihlašovací rozhraní zobrazeno, spustí GDM skript `Init`. Tento skript se hodí pro spuštní programů, které by měly být spuštěny během zobrazení přihlašovací obrazovky nebo pro provedení speciální inicializace, pokud je potřeba.

Po té, co je uživatel úspěšně ověřen, spustí GDM skript `PostLogin`. Provede se to před spuštěním sezení, i před voláním pam_open_session. Tento skript se hodí pro inicializaci sezení, kterou je potřeba udělat před spuštěním sezení. Například můžete nastavit složku $HOME uživatele, pokud je to potřeba.

Po té, co je uživatelovo sezení inicializováno, spustí GDM skript `PreSession`. Tento skript se hodí pro provádění libovolných inicializací sezení, které jsou potřeba k úspěchu po té, co bylo sezení inicializováno. Například může být použit pro správu sezení nebo účtování.

Když uživatel ukončí své sezení, spustí GDM skript `PostSession`. Upozorňujeme, že během provádění tohoto skriptu je zastaven Xserver, takže by se k němu nemělo přistupovat.

Vezměte na vědomí, že skript `PostSession` bude spuštěn, i když displej nebude reagovat kvůli chybě V/V apod. Z toho důvodu není žádná záruka, že během provádění tohoto skriptu budou fungovat apliace X.

Všechny výše uvedené skripty nastaví proměnnou prostředí `$RUNNING_UNDER_GDM` na `yes`. Pokud jsou skripty také sdíleny s ostatními správci displejů, umožňuje vám to zjistit, že tyto skripty volá GDM a použít tak kód specifický pro GDM.

### Nastavení automatického spuštění

Složka `<share>/gdm/autostart/LoginWindow` obsahuje soubory ve formátu definovaném v „FreeDesktop.org Desktop Application Autostart Specification“ (specifikace automatického spouštění aplikací pracovního prostředí). Standardní vlastnosti ze specifikace můžete použít k určení programů, které by se měly automaticky spustit nebo spustit jen, když je nastavena hodnota v nastavení GConf apod.

Soubory `.desktop` v této složce způsobí, že k nim přidružené programy se automaticky spustí spolu s grafickým přihlašovacím rozhraním uvítacího programu. Ve výchozím stavu je GDM šířen se soubory, které automaticky spouští vlastní uvítací program gdm-simple-greeter, aplikaci gnome-power-manager, démona gnome-settings-daemon a okenního správce metacity. Tyto programy jsou zapotřebí, aby uvítací program fungoval. Navíc soubory .desktop poskytují spuštění různých programů s asistenčními nástroji, když jsou nastaveny hodnoty uvedené níže v kapitole Nastavení zpřístupnění.

### Skript Xsession

Existuje také skript `Xsession` umístěný v `<etc>/gdm/Xsession`, který je volán mezi skripty `PreSession` a `PostSession`. Tento skript není podporován pro jednotlivé displeje, jako ostatní skripty. Používá se pro skutečné spuštění uživatelského sezení. Tento skritp je spouštěn pod daným uživatelem a spustí vše, co sezení specifikuje v souboru sezení pracovní plochy, který si uživatel vybral.

### Nastavení démona

Démon GDM se nastavuje pomocí souboru `<etc>/gdm/custom.conf`. Výchozí hodnoty se uchovávají v GConf v souboru `gdm.schemas`. Doporučuje se, aby koncový uživatel měnil soubor `<etc>/gdm/custom.conf`, protože soubor se schématem může být přepsán novou verzí GDM při aktualizaci systému.

Upozorňujeme, že starší verze GDM podporovala další volby nastavení, které v posledních verzích GDM již nadále podporovány nejsou.

Soubor `<etc>/gdm/custom.conf` je ve formátu `keyfile` (soubor s klíči). Klíčová slova v hranatých závorkách definují oddíly, řetězce před znakem „=“ jsou klíče a data za znakem rovnítka představují jeho hodnotu. Prázdné řádky nebo řádky začínající znakem „#“ jsou ignorovány.

Soubor `<etc>/gdm/custom.conf` podporuje skupiny „[daemon]“, „[security]“ a „[xdmcp]“. V rámci každé skupiny jsou konkrétní páry klíč/hodnota, které mohou být zadány, aby změnily chování GDM. Například, když chcete povolit příhlášení po uplynutí času a určit k tomu uživatele se jménem „vy“, upravili byste soubor tak, aby obsahoval následující řádky:

    [daemon]
    TimedLoginEnable=true
    TimedLogin=vy

Následuje úplný seznam podporovaných klíčů nastavení:

#### [chooser]

Multicast

      Multicast=false

  Když je zapnuto a je povoleno IPv6, chooser odešle vícesměrový dotaz do místní sítě a sesbírá odpovědi od počítačů, které se zapojily do skupiny.

MulticastAddr

      MulticastAddr=ff02::1

  Jedná se o vícesměrovou adresu Link-local.

#### [daemon]

TimedLoginEnable

      TimedLoginEnable=false

  Jestli by měl být uživatel uvedený v `TimedLogin` přihlášen po počtu sekund (nastavením v `TimedLoginDelay`) nečinnosti přihlašovací obrazovky. To se hodí pro veřejně přístupné terminály a samozřejmě i pro domácí použití. Když uživatel použije klávesnici nebo bude procházet nabídku, vrátí se odpočet na `TimedLoginDelay` nebo 30 sekund, podle toho, co je vyšší. Pokud uživatel nezadá uživatelské jméno, ale jen zmáčkne klávesu Enter během toho, co přihlašovací program čeká na zadání uživatelského jména, bude GDM předpokládat, že uživatel se chce ihned přihlásit jako uživatel uvedený v načasovaném přihlášení. Upozorňujeme, že pro tohoto uživatele nebude požadováno žádné heslo, takže buďte opatrní, i když pomocí PAM je možné nastavit požadavek na zadání hesla před tím, než se umožní přihlášení. Na další informace, nebo nápovědu když to nefunguje, se podívejte do kapitoly „Bezpečnost>>PAM“

TimedLogin

      TimedLogin=

  Jedná se o uživatele, který by měl být přihlášen po uplynutí zadaného počtu vteřin nečinnosti.

  Pokud hodnota končí svislou čárou | (symbol roury), spustí GDM zadaný program a použije cokoliv, co program vrátí na standardní výstup, jako uživatele. Program je spuštěn s nastavenou proměnnou prostředí DISPLAY, takže je možné určit uživatele pro každý displej zvlášť. Například, když je hodnota „/usr/bin/getloginuser|“, pak bude spuštěn program „/usr/bin/getloginuser“, aby od něj byla zjištěna hodnota s uživatelem.

TimedLoginDelay

      TimedLoginDelay=30

  Doba, v sekundách, po jejímž uplynutí bude přihlášen uživatel `TimeLogin`.

AutomaticLoginEnable

      AutomaticLoginEnable=false

  Když je zapnuto, měl by být ihned přihlášen uživatel uvedený v `AutomaticLogin`. Podobá se to funkci přihlášení po uplynutí času, akorát s časem 0 sekund.

AutomaticLogin

      AutomaticLogin=

  Jedná se o uživatele, který by měl být ihned přihlášen, když je zapnuto `AutomaticLoginEnable`.

  Pokud hodnota končí svislou čárou | (symbol roury), spustí GDM zadaný program a použije cokoliv, co program vrátí na standardní výstup, jako uživatele. Program je spuštěn s nastavenou proměnnou prostředí DISPLAY, takže je možné určit uživatele pro každý displej zvlášť. Například, když je hodnota „/usr/bin/getloginuser|“, pak bude spuštěn program „/usr/bin/getloginuser“, aby od něj byla zjištěna hodnota s uživatelem.

User

      User=gdm

  Jméno uživatele, pod kterým má běžet uvítání a další programy s grafickým rozhraním. Ohledně dalších informací se podívejte na klíč nastavení `Group` a kapitolu „Security->GDM User And Group“ v tomto dokumentu.

Group

      Group=gdm

  Název skupiny, pod kterou má běžet uvítání a další programy s grafickým rozhraním. Ohledně dalších informací se podívejte na klíč nastavení `User` a kapitolu „Security->GDM User And Group“ v tomto dokumentu.

#### Volby ladění

##### [debug]

Enable

      Enable=false

  Když chcete povolit ladění, nastavte v souboru `<etc>/gdm/custom.conf` klíč debug/Enable na „true“ a restartujte GDM. Výstup ladění se bude posílat do souboru se systémovým záznamem (`<var>/log/messages` nebo `<var>/adm/messages` v závislosti na vašem operačním systému).

#### Volby uvítání

##### [greeter]

IncludeAll

      IncludeAll=true

  Kdy je nastaveno na true, bude prohlížeč obličejů zobrazovat všechny uživatele na místním stroji. Pokud na false, bude zobrazovat jen uživatele, kteří se nedávno přihlašovali.

  Když je tento klíč nastaven na true, bude GDM volat fgetpwent(), aby získal seznam místních uživatelů v systému. Všichni uživatelé s ID menším než 500 (nebo 100 v Oracle Solaris) jsou odfiltrováni. Prohlížeč obličejů zobrazí také všechny uživatele, kteří se nedávno přihlašovali do systému (např. uživatele NIS/LDAP). Jejich seznam získá voláním rozhraní `ck-history` v ConsoleKit. Odfiltrováni budou také všichni uživatelé, kteří nemají platný shell (platné shelly jsou ty, které vrací getusershell() – /sbin/nologin nebo /bin/false jsou považovány za neplatné shelly, i když je getusershell() uvede).

  Když je vypnuto, pak GDM mnohem jednodušeji zobrazí uživatele, kteří byli před tím přihlášeni do systému (místní nebo uživatele NIS/LDAP), pomocí volání rozhraní ConsoleKit `ck-history`.

Include

      Include=

  Nastavte na seznam uživatelů, kteří mají být vždy zahrnuti do prohlížeče obličejů. Tato hodnota je nastavena na seznam uživatelů oddělených čárkami. Ve výchozím stavu je tato hodnota prázdná.

Exclude

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

  Nastavte na seznam uživatelů, kteří mají být vždy vynecháni v prohlížeči obličejů. Tato hodnota je nastavena na seznam uživatelů oddělených čárkami. Upozorňujeme, že nastavení v `custom.conf` přepisuje výchozí hodnotu, takže když si přejete přidat do seznamu další uživatele, potřebujete nastavit hodnotu na výchozí hodnou a další uživatele přidat nakonec.

#### Bezpečnostní volby

##### [security]

DisallowTCP

      DisallowTCP=true

  Pokud je zapnuto, přidá se při spouštění Xserveru na příkazový řádek přepínač `-nolisten tcp`, čímž se zakáže připojení TCP. Je to bezpečnější nastavení pro případy, kdy se nepoužívají vzdálená připojení.

#### XDCMP Support

##### [xdmcp]

DisplaysPerHost

      DisplaysPerHost=1

  Aby se zabránilo útočníkům v přeplnění fronty, umožní GDM jen jedno připojení pro každý ze vzdálených počítačů. Pokud chcete poskytovat služby displeje počítačům s více než jednou obrazovkou, musíte tuto hodnotu zvýšit.

  Upozorňujeme, že počet povolených připojení displejů není omezen. Touto volbou nastavení se omezí je vzdálená připojení přes XDMCP.

Enable

      Enable=false

  Nastavením tohoto údaje na true se povolí podpora XDMCP umožňující, aby vzdálené displeje/X terminály byly spravovány pomocí GDM.

  `gdm` naslouchá požadavkům na portu UDP 177. Další podrobnosti viz volba Port.

  V případě, že je GDM zkompilováno tak, aby to podporovalo, přístup ze vzdálených displejů může být řízen pomocí knihovny TCP Wrappers. Název služby je `gdm`.

  Měli byste přidat

      gdm:.moje.domena

  do svého `<etc>/hosts.allow`, v závislosti na svém nastavení TCP Wrappers. Podrobnosti viz manuálová stránka hosts.allow.

  Uvědomte si prosím, že XDMCP není zlášť bezpečný protokol, a proto je dobrý nápad blokovat port UDP 177 na vašem firewallu, pokud jej vyloženě nepotřebujete.

HonorIndirect

      HonorIndirect=true

  Povoluje výběr INDIRECT u XDMCP (např. vzdáleným spuštěním `gdmchooser`) pro X-terminály, které neposkytují své vlastní procházení displejů.

MaxPending

      MaxPending=4

  Aby se předešlo útokům typu DoS (zahlcení pásma), má GDM pevnou velikost fronty pro příchozí připojení. Naráz lze spustit jen MaxPending displejů.

  Upozorňujeme, že tento parametr neomezuje počet vzdálených displejů, které mohou být spravovány. Omezuje jen počet displejů zahajujících naráz připojení.

MaxSessions

      MaxSessions=16

  Určuje maximální počet připojení vzdálených displejů, které mohou být spravovány naráz. Tj. celkový počet vzdálených displejů, které může používat váš hostitel.

MaxWait

      MaxWait=30

  Když je GDM připraveno spravovat displej, zašle mu paket ACCEPT obsahující jedinečné ID sezení, které bude používáno v následující konverzaci XDMCP.

  GDM umístí ID sezení do fronty, kde čeká na odezvu s požadavkem MANAGE od displeje.

  Pokud do MaxWait sekund nedorazí odezva, prohlásí GDM displej za mrtvý a vymaže jej z fronty, aby uvolnil slot pro jiný displej.

MaxWaitIndirect

      MaxWaitIndirect=30

  Parametr MaxWaitIndirect určuje maximální počet sekund mezi časem, kdy uživatel zvolí hostitele, a následným nepřímým dotazem, kdy je uživatel připojen k hostiteli. Když je dosaženo časového limitu, je informace o zvoleném hostiteli zahozena a nepřímý slot uvolněn pro další displej. Informace může být zahozena dříve, když se pokouší poslat nepřímý dotaz více hostitelů, než `MaxPendingIndirect`.

PingIntervalSeconds

      PingIntervalSeconds=60

  Pokud Xserver neodpoví v zadaném počtu sekund, je připojení zastaveno a sezení ukončeno. Když se tak stane, podřízený démon skončí se signálem ALARM. Upozorňujeme, že GDM 2.20 a starší násobí toto nastavení dvěma, takže při povýšení z GDM 2.20 a staršího na novější verzi může být potřeba časový limit zvýšit.

  Všimněte si, že GDM míval v minulosti klíč nastavení `PingInterval`, který byl také v minutách. Ve většíne případů nechcete, aby toto nastavení bylo nižší než jedna minuta. Avšak ve většině případů, kdy by bylo použito XDMCP (třeba v terminálových místnostech), by zpoždění o více než přibližně 15 sekund ve skutečnosti znamenalo, že terminál byl vypnut nebo restartován a vy chcete ukončit sezení.

Port

      Port=177

  Číslo portu UDP, na kterém by měl `gdm` naslouchat požadavkům XDMCP. Tento údaj neměňte, pokud přesně nevíte, co děláte.

Willing

      Willing=<etc>/gdm/Xwilling

  Když stroj odešle zpět paket WILLING, po té co obdržel QUERY, pošle řetězec, který uvádí aktuální stav serveru. Výchozí zprávou je ID systému, ale je možné vytvořit skript, který zobrazí vlastní zprávu. Pokud skript neexistuje nebo je tento klíč prázdný, je odeslána výchozí zpráva. Pokud je skript úspěšný a vytvoří nějaký výstup, je první řádek jeho výstupu odeslán (a právě jen první řádek). Spuštěn je nanejvýše každé 3 vteřiny, aby se předešlo možným útokům DoS zahlcujícím stroj pakety QUERY.

### Nastavení jednoduchého uvítání

Výchozí uvítání GDM se nazývá jednoduché uvítání a je nastaveno přes GConf. Výchozí hodnoty jsou uchovány v GConf v souboru `gdm-simple-greeter.schemas`. Tyto výchozí hodnoty mohou být přepsány, když má uživatel „gdm“ zapisovatelnou složku $HOME, ve které se uchovávají nastavení GConf. Tyto hodnoty mohou být změněny pomocí programů `gconftool-2` nebo `gconf-editor`. Podporovány jsou následující volby nastavení:

#### Klíče s nastavením uvítání

/apps/gdm/simple-greeter/banner_message_enable

      false (pravdivostní)

  Řídí, jestli se má zobrazit panel s textem zprávy.

/apps/gdm/simple-greeter/banner_message_text

      NULL (řetězec)

  Definuje text pro panel se zprávou, který se má zobrazit v uvítacím okně.

/apps/gdm/simple-greeter/disable_restart_buttons

      false (pravdivostní)

  Řídí, jestli se mají zobrazit restartovací tlačítka v přihlašovacím okně.

/apps/gdm/simple-greeter/disable_user_list

      false (pravdivostní)

  Když je zapnuto, prohlížeč obličejů se známými uživateli nebude v přihlašovacím okně zobrazen.

/apps/gdm/simple-greeter/logo_icon_name

      computer (řetězec)

  Nastavte na název ikony z motivu, která se má použít jako logo v uvítání.

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

      [] (seznam řetězců)

  Nastavte na seznam jazyků, které se mají zobrazit jako výchozí v přihlašovacím okně. Výchozí hodnota je „[]“. S tímto výchozím nastavením se zobrazí jen výchozí jazyk systému a volba „Další…“, která rozbalí dialogové okno nabízející úplný seznam dostupných jazyků, z kterých si uživatel může vybrat.

  Není zamýšleno, aby uživatelé měnili toto nastavení ručně. Místo toho GDM uchovává v tomto klíči nastavení sled dříve vybraných jazyků a zobrazuje je v rozbalovacím seznamu jazyků vedle volby „Další…“. Díky tomu je snažší vybrat běžně vybírané jazyky.

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

      [] (seznam řetězců)

  Nastavte na seznam rozvržení klávesnic, která se mají zobrazit jako výchozí v přihlašovacím okně. Výchozí hodnota je „[]“. S tímto výchozím nastavením se zobrazí jen výchozí rozvržení klávesnice systému a volba „Další…“, která rozbalí dialogové okno nabízející úplný seznam dostupných rozvržení klávesnic, z kterých si uživatel může vybrat.

  Není zamýšleno, aby uživatelé měnili toto nastavení ručně. Místo toho GDM uchovává v tomto klíči nastavení sled dříve vybraných rozvržení klávesnic a zobrazuje je v rozbalovacím seznamu rozvržení klávesnic vedle volby „Další…“. Díky tomu je snažší vybrat běžně vybíraná rozvržení klávesnic.

/apps/gdm/simple-greeter/wm_use_compiz

      false (pravdivostní)

  Řídí, jestli se má místo metacity použít jako okenní správce compiz.

### Nastavení zpřístupnění

Tato část popisuje volby nastavení zpřístupnění dostupné v GDM.

#### Dialogové okno zpřístupnění GDM a klíče GConf

Uvítací panel GDM na přihlašovací obrazovce zobrazuje ikonu zpřístupnění. Kliknutí na ikonu otevře dialogové okno zpřístupnění GDM. V tomto dialogovém okně je seznam zaškrtávacích políček, takže uživatel můžete povolit nebo zakázat příslušné asistenční nástroje.

Zaškrtávací políčka, která odpovídají asistenčním nástrojům klávesnice na obrazovce, lupa obrazovky a čtečka obrazovky ovlivňují tři klíče GConf, jak je popsáno v další části tohoto dokumentu. Povolením nebo zákázáním pomocí těchto zaškrtávacích políček se příslušné klíče GConf nastaví na „true“ nebo „false“. Když je klíč GConf nastaven na „true“, je odkazovaný asistenční nástroj spuštěn. Když je nastaven na „false“, je běžící asistenční nástroj odkazovaný tímto klíčem ukončen. Tyto klíče GConf se nevrací automaticky na výchozí hodnoty, když se uživatel přihlásí. V důsledku toho, že asistenční nástroje byly spuštěny během posledního přihlášovacího sezení GDM, budou automticky spuštěny i při následujícím přihlašovacím sezení GDM.

Ostatní zaškrtávací políčka v dialogovém okně zpřístupnění GDM nemají odpovídající klíče GConf, protože není spouštěn žádný dodatečný program, který by poskytoval funkce zpřístupnění, který nabízejí. Tyto další volby odpovídají funkcím zpřístupnění, které poskytuje Xserver, který během sezení GDM vždy běží.

#### Klíče GConf pro zpřístupnění

GDM nabízí následujíc klíče GConf, které ovládají jeho funkce zpřístupnění:

##### Klíče s nastavením GDM

/desktop/gnome/interface/accessibility

      false (pravdivostní)

  Řídí, jestli se má spolu s grafickým rozhraním GDM spustit infrastruktura zpřístupnění. To je zapotřebí, aby mohla fungovat většina programů s technologiemi zpřístupnění.

/desktop/gnome/applications/at/screen_magnifier_enabled

      false (pravdivostní)

  Když je nastaveno, spustí se spolu s programem s grafickým rozhraním GDM i nástroje zpřístupnění odkazované tímto klíčem GConf. Ve výchozím stavu se jedná o aplikaci lupa obrazovky.

/desktop/gnome/applications/at/screen_keyboard_enabled

      false (pravdivostní)

  Když je nastaveno, spustí se spolu s programem s grafickým rozhraním GDM i nástroje zpřístupnění odkazované tímto klíčem GConf. Ve výchozím stavu se jedná o aplikaci klávesnice na obrazovce.

/desktop/gnome/applications/at/screen_reader_enabled

      false (pravdivostní)

  Když je nastaveno, spustí se spolu s programem s grafickým rozhraním GDM i nástroje zpřístupnění odkazované tímto klíčem GConf. Ve výchozím stavu se jedná o aplikaci čtečka obrazovky.

#### Provázání nástrojů zpřístpnění s klíči GConf

Pro klíče GConf screen_magnifier_enabled, the screen_keyboard_enabled a the screen_reader_enabled závisí asistenční nástroje, které se mají spustit, na souborech .desktop umístěných ve složce GDM pro automatické spouštění, jak je popsáno v kapitole „Nastavení automatického spouštění“ v této příručce. Libovolný soubor .desktop ve složce GDM pro automatické spouštění může být provázán s klíčem GConf uvedením tohoto klíče GConf v hodnotě AutostartCondition v souboru .desktop. Takže konkrétní řádek AutostartCondition v souboru .desktop by mohl být jeden z následujících:

    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

Když je klíč zpřístupnění zapnutý, pak libovolný program, který je provázán s tímto klíčem v souboru .desktop pro automatické spuštění, bude spuštěn (pokud není v souboru .desktop nastaven klíč Hidden na true). Jeden klíč GConf může spustit i více asistenčních nástrojů, pokud existuje ve složce GDM pro automatické spouštění více souborů .desktop s tímto klíčem AutostartCondition.

#### Příklad úprav nastavení nástrojů pro zpřístupnění

Například, pokud je GNOME šířeno s GOK jako výchozí klávesnicí na obrazovce, může být tato nahrazena jiným programem podle potřeby. Abyste nahradili GOK pomocí aplikace „onboard“ a navíc aktivovali asistenční nástroj „mousetweaks“ pro softwarové klikání, je potřeba následující nastavení.

Vytvořte jeden soubor .desktop pro onboard a druhý pro mousetweaks. Například onboard.desktop a mousetweaks.desktop. Tyto soubory musí být umístěny ve složce GDM pro automatické spouštění a musí být ve formátu osvětleném v kapitole „Nastavení automatického spuštění“ v tomto dokumentu.

Následuje příklad souboru `onboard.desktop`:

    [Desktop Entry]
    Encoding=UTF-8
    Name=Onboard Onscreen Keyboard
    Name[cs]=Klávesnice na obrazovce
    Comment=Use an on-screen keyboard
    Comment[cs]=Použít klávesnici na obrazovce
    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

Následuje příklad souboru `mousetweaks.desktop`:

    [Desktop Entry]
    Encoding=UTF-8
    Name=Software Mouse-Clicks
    Name[cs]=Klikání softwarovou myší
    Comment=Perform clicks by dwelling with the pointer
    Comment[cs]=Provádět softwarové klikání ukazatelem
    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šimněte si řádku AutostartCondition, který spojuje oba soubory .desktop do klíče GConf pro klávesnici na obrazovce.

Aby se zabránilo spuštění GOK, musí se odstranit soubor .desktop pro klávesnici na obrazovce GOK nebo musí být deaktivován. Jinak se spustí naráz onboard i GOK. Můžete to provést odstraněním souboru gok.desktop ze složky GDM pro automatické spouštění nebo přidáním klíče nastavení „Hidden=true“ do souboru gok.desktop.

Po provedení těchto změn se již nebude nadále spouštět GOK, když uživatel aktivuje klávesnici na obrazovce v sezení GDM. Místo toho se spustí onboard a mousetweak.

### Obecná nastavení sezení

Uvítací program GDM používá ten stejný základní rámec, jako sezení vašeho pracovního prostředí. Z toho důvou jej ovlivňuje několik stejných nastavení GConf. Pro každé z těchto nastavení uvítací progrm použije výchozí hodnoty, pokud nejsou konkrétně přepsány a) povinnou zásadou nainstalovanou GDM b) systémovou povinnou zásadou. GDM instaluje své vlastní povinné zásady, aby z bezpečnostních důvodů uzamknul některá nastavení.

### Démon nastavení GNOME

GDM zapíná následující zásuvné moduly gnome-settings-daemon: a11y-keyboard, background, sound, xsettings.

Ty zodpovídají za takově věci, jako je obrázek na pozadí, nastavení písma a motivu, zvukové události atd.

Zásuvné moduly je možné zakázat pomocí GConf. Například, když chcete zakázat zvukový zásuvný modul, zrušte nastavení následujícího klíče: `/apps/gdm/simple-greeter/settings-manager-plugins/sound/active`.

### Nastavení sezení GDM

Sezení GDM se definují na základě specifikace položek pracovní plochy (Desktop Entry Specification) od FreeDesktop.org, kterou najdete na následujcí adrese URL: http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec.

Standardně bude GDM instalovat soubory .desktop do složky `<share>/xsessions`. GDM prohledává následující složky v tomto pořadí, aby našel soubory .desktop: `<etc>/X11/sessions/`, `<dmconfdir>/Sessions`, `<share>/xsessions` a `<share>/gdm/BuiltInSessions`. Jako výchozí hodnota pro `<dmconfdir>` je `<etc>/dm/`, pokud není GDM nakonfigurován, aby používal jinou složku, pomocí volby „--with-dmconfdir“.

Sezení je možné zakázat upravou souboru .desktop a přidáním řádku: `Hidden=true`.

U svých souborů .desktop podporuje GDM rozšíření specifické jen pro něj, klíč s názvem „X-GDM-BypassXsession“. Pokud klíč není v souboru .desktop uveden, je jeho výchozí hodnotou „false“. Pokud je v souboru .desktop uveden s hodnotou „true“, spustí GDM program uvedený v klíči „Exec“ v souboru .desktop přímo, když spouští uživatelovo sezení. Nebude program spouštět přes skript `<etc>/gdm/Xsession`, což je normální chování. Protože se obejde skript `<etc>/gdm/Xsession`, zabrání se vytvoření uživatelského sezení s normálním systémem a nastaveními uživatele, může být sezení spuštěné tímto způsobem vhodné pro ladění problémů v systému nebo pro uživatelské skripty, které mohou zabránit uživateli v možnosti spouštět sezení.

### Nastavení uživatelova sezeni a jazyka v GDM

Výchozí volby pro uživatelovo sezení a jazyk jsou uchovány v souboru `~/.dmrc`. Když se uživatel přihlašuje poprvé, je soubor vytvořen s jeho počáteční volbou. Tyto výchozí hodnoty pak může změnit jednoduše tak, že změní hodnotu na jinou během přihlašování. GDM si bude pamatovat tuto změnu pro následující přihlášení.

Soubor `~/.dmrc` je ve standardním formátu `INI`. Má jeden oddíl nazývaný `[Desktop]`, který má dva klíče: `Session` a `Language`.

Klíč `Session` určuje základní název souboru `.desktop` pro sezení, který si uživatel přeje normálně používat bez přípony `.desktop`. Klíč `Language` určuje jazyk, který si uživatel přeje používat jako výchozí. Pokud některý z těchto klíčů chybí, je použita výchozí hodnota systému. Normálně by měl soubor vypadat následovně:

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

## Příkazy GDM

### Příkazy GDM pro superuživatele root

Balíček GDM obsahuje následující příkazy v `sbindir`, u kterých je zamýšleno, že je bude spouštět superuživatel root:

#### Přepínače příkazové řádky příkazu `gdm`

`gdm` je hlavní démon, který nastavuje grafické přihlašovací prostředí a spouští potřebné pomocníky.

##### Přepínače příkazové řádky příkazu `gdm`

-?, --help

  Podá stručný přehled o přepínačích příkazové řádky.

--fatal-warnings

  Způsobí, že všechna varování povedou k ukončení GDM.

--timed-exit

  Ukončit po 30 vteřinách. Užitečné pro ladění.

--version

  Vypíše verzi démona GDM.

#### Přepínač příkazového řádku příkazu `gdm-restart`

`gdm-restart` zastaví a spustí GDM pomocí zaslání signálu HUP démonu GDM. Tento příkaz okamžitě ukončí všechna sezení a odhlásí uživatele aktuálně přihlášené pomocí GDM.

#### Přepínač příkazového řádku příkazu `gdm-safe-restart`

`gdm-restart` zastaví a spustí GDM pomocí zaslání signálu USR1 démonu GDM. GDM bude restartováno hned, jak se odhlásí všichni uživatelé.

#### Přepínač příkazového řádku příkazu `gdm-stop`

`gdm-restart` zastaví GDM pomocí zaslání signálu TERM démonu GDM.

## Řešení problémů

V této části jsou probírány užitečné tipy pro fungování GDM. Obecně, pokud máte s používáním GDM nějaký problém, můžete zaslat chybové hlášení nebo poslat e-mail do poštoví konference gdm-list. Informace, jak se to dělá, najdete v úvodní části tohoto dokumentu.

Když se nedaří, aby GDM fungoval správně, je vždy dobrý nápad zahrnout ladicí informace. Ty povolíte nastavením klíče debug/Enable na „true“ v souboru `<etc>/gdm/custom.conf` a restartováním GDM. Pak použijte GDM v místě, ve kterém selhává, a ladicí výstup bude odeslán do souboru se systémovým záznamem (`<var>/log/messages` nebo `<var>/adm/messages` podle vašeho operačního systému). Pokud sdílíte tento výstup s komunitou GDM přes hlášení chyb nebo e-mail, zahrňte prosím pouze údaje vztahující se k chybě GDM a neposílejte soubor celý, protože může být velký. V případě, že nevidíte v systémovém záznamu žádný výstup z GDM, musíte správně nastavit syslog (viz manuálová stránka syslog).

### GDM se nespouští

Existuje řada problémů, které mohou způsobit, že spuštění GDM selže, ale v této části je probíráno pár nejběžnějších problémů a postup, jak pátrat po příčinách problémů se spuštěním GDM. Některé problémy způsobí, že GDM při pokusu o spuštění reaguje chybovým hlášením nebo dialogovým oknem, ale když selže oznámení, může být obtížné problém vysledovat.

Nejprve se ujistěte, že je Xserver správně nastavený. Soubor s nastavením GDM obsahuje v části [server-Standard] příkaz, který se používá ke spuštění Xserveru. Ověřte si, že tento příkaz funguje na vašem systému. Spuštění tohoto příkazu v konzoli by mělo spustit Xserver. Pokud selže, je problém pravděpodobně s nastavením Xserveru. Podívejte se do chybových záznamů Xserveru, jestli vás nenavedou, v čem by problém mohl být. Může být i v tom, že Xserver vyžaduje jiné přepínače příkazového řádku. Pokud tomu tak je, upravte příkaz Xserveru v souboru s nastavením GDM, aby byl správně pro váš systém.

Rovněž se ujistěte, že složka `/tmp` má správného vlastníka a oprávnění a že souborový systém počítače není přeplněný. Tyto problémy způsobují selhání při spuštění GDM.

## Licence

Tento program je svobodný software. Můžete jej dále šířit a/nebo upravovat za dodržení podmínek GNU General Public License, tak jak ji vydala Free Software Foundation ve verzi 2 nebo (dle vaší volby) novější.

Tento program je šířen s přesvědčením, že může být užitečný, ale BEZ JAKÝCHKOLIV ZÁRUK, bez předpokládané záruky na OBCHODOVATELNOST nebo VHODNOST PRO URČITÝ ÚČEL. Více podrobností najdete v GNU General Public License.

Kopie GNU General Public License je zahrnuta v dodatku Uživatelské přiručky GNOME. Kopii GNU General Public License můžete také získat od Free Software Foundation navštívením jejich webu nebo zasláním žádosti na

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