Prezentare generală

II.I. Introducere

Managerul de ecran GNOME (GDM) este un manager de ecran care implementează toate funcționalitățile importante necesare pentru gestionarea ecranelor atașate și de la distanță.

A se reține că GDM este configurabil, și că multe opțiuni de configurație au un impact asupra securității. Problemele despre care trebuie să fiți conștienți sunt evidențiate în acest document.

A se reține că unele sisteme de operare configurează GDM în așa fel încât va funcționa altfel decât valorile implicite așa cum sunt prezentate în acest document.

Pentru mai multe informații despre GDM, consultați situl proiectului http://wiki.gnome.org/Projects/GDM.

Pentru discuții sau întrebări despre GDM, înaintați către lista de discuții

. Această listă este arhivată, și este o resursă bună pentru a căuta răspunsuri la unele întrebări uzuale. Această listă este arhivată la adresa http://mail.gnome.org/archives/gdm-list/ și are o facilitate pentru a căuta mesaje și cuvinte cheie.

Vă rugăm să trimiteți orice raport al unei disfuncționalități sau cerere de îmbunătățire către categoria "gdm" în http://bugzilla.gnome.org.

II.II. Stabilitatea interfeței

GDM 2.20 și versiunile mai vechi au suportat interfețe cu configurație stabilă. Cu toate acestea, baza de cod a fost rescrisă complet pentru GDM 2.22, și nu mai este complet compatibilă cu versiunile mai vechi. Acesta se datorează faptului că unele lucruri funcționează diferit, deci unele opțiuni nu au sens, deoarece unele opțiuni nu au avut sens niciodată și pentru că unele funcționalități încă nu au fost reimplementate.

Interfețe care continuă să fie suportate într-o manieră stabilă includ scripturile Init, PreSession, PostSession, PostLogin și Xsession. Unele opțiuni de configurație ale serviciului din fișierul <etc>/gdm/custom.conf continuă să fie suportate. De asemenea, fișierul ~/.dmrc, și locațiile imaginilor pentru navigatorul de fețe sunt încă suportate.

GDM 2.20 și versiunile mai vechi au suportat posibilitatea de a gestiona mai multe ecrane cu plăci grafice diferite, cum ar fi folosite în medii de terminal ale serverelor, autentificarea într-o fereastră prin intermediul unui program ca Xnest sau Xephyr, programul gdmsetup, temele de îmtâmpinare bazate pe XML, și posibilitatea de a executa selectorul XDMCP din ecranul de autentificare. Aceste funcționalități nu au fost adăugate la loc dupa rescrierea 2.22.

II.III. Descriere funcțională

GDM este responsabil cu gestionarea ecranelor pe sistem. Acest lucru include autentificarea utilizatorilor, pornirea sesiunii utilizatorului, și terminarea sesiunii utilizatorului. GDM este configurabil și modalitațile în care poate fi configurat sunt prezentate în secțiunea „Configurare GDM” a acestui document. GDM este de asemenea accesibil și utilizatorilor cu dizabilități.

GDM oferă posibilitatea de a gestiona ecranul terminalului principal, și ecranelor pornite prin VT. Este integrat cu alte programe, cum ar fi Miniaplicația de schimbare rapidă a utilizatorului (FUSA) și Protectorul de ecran GNOME pentru a gestiona ecrane multiple în terminal prin interfața Terminalului Virtual Xserver (VT). Poate de asemenea să gestioneze ecrane XDMCP.

Indiferent de tipul ecranului, GDM va face următoarele când va gestiona ecranul. Va porni un proces Xserver, apoi va executa scriptul Init ca administrator, și va porni programul de întâmpinare pe ecran.

Programul de întâmpinare va fi pornit ca utilizatorul/grupul "gdm" fără privilegii. Acest utilizator și grup sunt descrise în secțiunea „Securitate” a acestui document. Funcțiile principale ale programului de îmtâmpinare este să ofere un mecanism de selectare a unui cont pentru autentificare și să conducă dialogul dintre utilizator și sistem pe durata autentificării acelui cont. Procesul de autentificare este rulat de către Modulele conectabile de autentificare (PAM). Modulele PAM determină ce solicitări (dacă există) se afișează utilizatorului ca să se autentifice. Pe un sistem comun, programul de întâmpinare va cere numele utilizatorului și parola pentru autentificare. Cu toate acestea, unele sisteme ar putea fi configurate să folosească mecanisme suplimentare, cum ar fi cititoare de amprente sau SmartCard-uri. GDM poate fi configurat să suporte aceste alternative în paralel cu extensiile de întâmpinare la autenthificare și opțiunea --enable-split-authentication ./configure sau separat prin configurarea de sistem PAM.

Extensia smartcard poate fi activată sau dezactivată prin cheia gsettings org.gnome.display-manager.extensions.smartcard.active.

De asemenea, extensia pentru amprente poate fi activată sau dezactivată prin cheia gsettings org.gnome.display-manager.extensions.fingerprint.active.

GDM și PAM pot fi configurate să nu necesite intrări, care va cauza GDM să se autentifice automat și să pornească o sesiune, ceea ce poate fi util pentru unele medii, cum ar fi sisteme pentru un singur utilizator sau chioșcuri.

Pe lângă autentificare, programul de întâmpinare permite utilizatorului să selecteze ce sesiune să pornească și ce limbă să folosească. Sesiunile sunt definite de fișierele ce se termina în sufixul .desktop și mai multe informații despre aceste fișiere poate fi gasită în secțiunea „Sesiunea utilizatorului și configurarea limbii” a acestui document. Inițial, GDM este configurat să afișeze un navigator de fețe pentru ca utilizatorul să își poată selecta contul apăsând clic pe o imagine în loc să își tasteze numele de utilizator. GDM ține evidența sesiunii și limbii implicite a utilizatorului în fișierul ~/.dmrc și va folosi aceste valori implicite dacă utilizatorul nu alege o sesiune sau o limbă în interfața grafică a autentificării.

După autentificarea utilizatorului, serviciul execută scriptul PostLogin ca administrator, apoi rulează scriptul PreSession ca administrator. După executarea acestor scripturi, este pornită sesiunea utilizatorului. Când un utilizator iese din sesiune, scriptul PostSession este rulat ca administrator. Aceste scripturi sunt furnizate ca niște cârlige pentru distribuții și utilizatori pentru a personaliza felul în care sesiunile sunt gestionate. De exemplu, folosind aceste cârlige, puteți defini o mașină care va creea dosarul $HOME al utilizatorului pe parcurs, și îl va șterge la închiderea sesiunii. Diferența dintre scripturile PostLogin și PreSession este că PostLogin este executat înainte de apelul pam_open_session, deci este locul potrivit pentru a face lucrurile ce trebuie executate înainte ca sesiunea utilizatorului să fie inițializată.

II.IV. Panoul programului de întâmpinare

Programul de întâmpinare GDM afișează un panou atașat în partea de jos a ecranului care oferă funcționalități suplimentare. Când utilizatorul este selectat, panoul permite utilizatorului să selecteze ce sesiune, limbă și aranjament al tastaturii dorește să folosească dupa autentificare. Selectorul aranjamentului tastaturii schimbă aranjamentul tastaturii folosit și la scrierea parolei. Panoul conține și o suprafață pentru ca serviciile de deschidere a sesiunii să lase o iconiță despre stare. Unele iconițe de stare includ o pictogramă a unei baterii pentru consumul de energie electrică, și o iconiță pentru activarea funcționalităților de accesibilitate. Programul de întâmpinare oferă și butoane care permit utilizatorului să închidă sau să repornească sistemul. Este posibil să configurați GDM pentru a nu furniza butoanele de închidere și de repornire, dacă doriți. GDM poate și să fie configurat prin PolicyKit (sau prin RBAC de pe Oracle Solaris) pentru a necesita o autorizație corespunzătoare a utilizatorului înainte de a accepta cererea de închidere sau de repornire.

A se reține că funcționalitățile pentru aranjamentul tastaturii sunt disponibile doar pe sistemele ce suportă libxklavier.

II.V. Accesibilitate

GDM suportă „Autentificare accesibilă”, permițând utilizatorilor să deschidă sesiunea lor desktop chiar dacă nu pot să folosească ecranul cu ușurință, sau tastatura într-un mod uzual. Tehnologia de accesibilitate (AT) oferă lucruri cum ar fi tastatură pe ecran, cititor de ecran, lupă pentru ecran, și accesibilitatea tastaturii Xserver și AccessX este suportată. De asemenea, este posibil să activați textul mare sau iconițele și controalele cu contrast ridicat. Urmăriți secțiunea "Configurarea accesibilității" din acest document pentru mai multe informații despre cum diferite funcționalități de accesibilitate pot fi configurate.

Pe unele sisteme de operare, este necesar să fiți sigur că utilizatorul GDM este membru al grupului "audio" pentru ca programele AT ce necesită ieșire sunet (cum ar fi transofrmarea textului în vorbire) să fie funcționale.

II.VI. Navigatorul de fețe GDM

Navigatorul de fețe este infertața ce permite utilizatorilor să își selecteze numele de utilizator, apăsând clic pe o imagine. Acestă funcționalitate poate fi activată sau dezactivată prin cheia org.gnome.login-screen disable-user-list GSettings și este implicit pornită. Când este dezactivată, utilizatorii trebuie să își scrie numele de utilizator manual. Când este activată, va afișa toți utilizatorii locali care sunt disponibili pentru a deschide o sesiune pe sistem (toate conturile de utilizator definite in fișierul /etc/passwd care au shell valid și un UID suficient de ridicat) și utilizatorii de la distanță care au deschis o sesiune recent. Navigatorul de fețe din versiunea GDM 2.20 sau mai veche ar fi încercat să afișeze toți utilizatorii de la distanță, lucru ce cauza probleme de performanță în întreprinderile mari.

Navigatorul de fețe este configurat să afișeze utilizatorii care deschid o sesiune cel mai frecvent în partea de sus a listei. Acest lucru asigură că utilizatorii care deschid sesiuni frecvent își pot gasi rapid imaginea lor de autentificare.

Navigatorul de fețe suportă „completarea automată a căutarii” care mută dinamic selecția de suprafață în timp ce utilizatorul își scrie numele de utilizator în listă. Asta înseamnă că un utilizator cu un nume lung va trebui să scrie doar primele caractere ale numelui pentru ca elementul corect din listă să fie selectat.

Iconițele folosite de GDM pot fi instalate global de administratorul de sistem sau pot fi localizate în directoarele principale ale fiecarui utilizator. Dacă sunt instalate global ar trebui să fie in dosarul <share>/pixmaps/faces/ și fișierul ar trebui să fie numele utilizatorului. Imaginile fețelor trebuie să fie imagini standarde pe care GTK+ poate să le citească, cum ar fi PNG sau JPEG. Iconițele fețelor plasate în directorul global trebuie să poată fi citite de un utilizator GDM.

Dacă nu există o iconiță globală pentru utilizator, GDM va căuta în dosarul $HOME al utilizatorului pentru fișierul imagine. GDM va căuta prima dată imaginea în ~/.face. Dacă nu este găsită, va incerca ~/.face.icon. Dacă tot nu este găsită, va folosi valoarea definită pentru "face/picture=" în fișierul ~/.gnome2/gdm.

Dacă utilizatorul nu are o imagine de față definită, GDM va folosi iconița "stock_person" din tema GTK+ curentă. Dacă această imagine nu este definită, se va întoarce la o imagine de față generică.

A se reține că încărcarea și redimensionarea iconițelor de față localizate în dosarele principale ale utilizatorilor de la distanță poate fi o sarcină ce necesită mult timp. Ținând cont că nu este practic să se încarce imagini prin NIS sau NFS, GDM nu va încerca să încarce imaginile de față din dosarele principale de la distanță.

Când navigatorul este activat, numele de utilizator valide de pe calculator sunt expuse și pot fi văzute de oricine. Dacă XDMCP este activat, atunci numele de utilizator sunt expuse utilizatorilor de la distanță. Asta, desigur, limitează oarecum securitatea ținând cont că un utilizator malițios nu trebuie să ghicească nume de utilizator valide. În unele medii foarte restrictive navigatorul de fețe ar putea să nu fie adecvat.

II.VII. XDMCP

Serviciul GDM poate fi configurat să asculte și să gestioneze cereri ale Protocolului de gestionare a ecranelor X (XDMCP) de la ecrane de la distanță. Implicit, suportul XDMCP este dezactivat, dar poate fi activat dacă se dorește acest lucru. Dacă GDM este construit cu suportul TCP Wrapper, atunci serviciul va permite accesul doar calculatoarelor gazdă specificate în secțiunea serviciului GDM din fișierul de configurație a sistemului TCP Wrappers.

GDM include mai multe măsuri ce îl fac mai rezistent atacurilor de negare a serviciului asupra procesului XDMCP. Mulți dintre parametrii de protocol, limitele de timp alocate conectării, etc. pot fi ajustate detaliat. Configurația implicită ar trebui să funcționeze rezonabil pe majoritatea sistemelor.

GDM ascultă implicit cererile XDMCP pe portul normal UDP folosit pentru XDMCP, 177, și va răspunde cererilor QUERY și BROADCAST_QUERY trimițând un pachet WILLING către inițiator.

GDM poate fi configurat și pentru a asculta interogațiile INDIRECT și a prezenta un selector de calculator gazdă ecranului de la distanță. GDM va ține minte alegerea utilizatorului și va înainta cererile ulterioare către managerul ales. GDM suportă și o extensie a protocolului care îl va face să uite redirecționarea când conexiunea utilizatorului reușește. Această extensie este suportată doar dacă amândouă servicii sunt GDM. Este transparentă și va fi ignorată de către XDM sau alte servicii care implementează XDMCP.

Dacă XDMCP nu funcționează, asigurați-vă că toate mașinile sunt specificate în /etc/hosts.

Consultați secțiunea „Securitate” pentru informații privind probleme de securitate când se folosește XDMCP.

II.VIII. Jurnalizare

GDM folosește syslog pentru a înregistra erorile și starea. De asemenea, poate să înregistreze și informații de depanare, care pot fi folositoare pentru urmărirea problemelor dacă GDM nu funcționează corespunzător. Ieșirea de depanare poate fi activată configurând cheia de depanare la „true” în fișierul <etc>/gdm/custom.conf.

Ieșirile diferitelor Xservere sunt stocate în dosarul de înregistrări GDM, care este implicit <var>/log/gdm/. Orice mesaj al Xserverelor sunt salvate într-un fișier asociat cu valoarea ecranului, <display>.log.

Rezultatul sesiunii este asamblat prin procesul GDM către fișierul~/$XDG_CACHE_HOME/gdm/session.log. Fișierul este rescris la fiecare autentificare, deci reautentificarea aceluiași utilizator prin GDM va cauza pierderea tuturor mesajelor din sesiunea anterioară.

A se reține că dacă GDM nu poate creea acest fișier dintr-un anumit motiv, un fișier de rezervă va fi creat numit ~/$XDG_CACHE_HOME/gdm/session.log.XXXXXXXX, unde XXXXXXXX sunt niște caracterele aleatorii.

II.IX. Schimbarea rapidă a utilizatorului

GDM permite ca mai mulți utilizatori să dețină sesiuni în același timp. După ce un utilizator a deschis o sesiune, mai mulți utilizatori se pot autentifica prin Comutatorul de utilizatori de pe panoul GNOME, sau prin butonul „Schimbare utilizator” din dialogul ecranului blocat al protectorului de ecran GNOME. Sesiunea activă poate fi modificată folosind același mecanism. Luați aminte că unele distribuții nu adaugă un schimbător de utilizatori în configurația implicită a panoului. Poate fi adăugată folosind meniul contextual al panoului.

A se reține că această funcționalitate este disponibilă pe sistemele ce suportă terminale virtuale. Această facilitate nu va funcționa dacă terminalele virtuale nu sunt disponibile.