Přehled

2.1. Ú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.

Ohledně diskuzí a požadavků na GDM se obraťte do poštovní konference

Tato konference je archivovaná a je dobrým zdrojem, kde najít odpovědi na běžné dotazy. Archivovaná je na http://mail.gnome.org/archives/gdm-list/ a lze v ní vyhledávat zprávy podle klíčových slov.

Chybová hlášení a žádosti o vylepšení podávejte prosím do kategorie „gdm“ na http://bugzilla.gnome.org.

2.2. 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.

2.3. 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í.

2.4. 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.

2.5. 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).

2.6. 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ý.

2.7. 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.

2.8. 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.

2.9. 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.