# Manualul Managerului de ecran GNOME

## Termeni și convenții folosite în acest manual

Acest manual descrie versiunea 2.26.0 a Managerului de ecran GNOME. A fost actualizat ultima dată pe 08/06/2015.

Selector - Program folosit pentru a selecta de la distanță un computer gazdă pentru a gestiona de la distanță un afișaj de pe un ecran atașat (`gdm-host-chooser`).

FreeDesktop - Organizația care furnizează standarde desktop, cum ar fi Specificația înregistrării desktop folosită de Managerul de ecran GDM. http://www.freedesktop.org.

GDM - Managerul de ecran GNOME. Folosit pentru a descrie pachetul de programe ca un întreg.

Aplicație de întâmpinare - Fereastră de autentificare vizuală (oferită de `gnome-shell`).

PAM - Mecanism de autentificare conectabil

XDMCP - Protocol pentru gestionarea afișajului X

Xserver - O implementare a Sistemului de ferestre X. De exemplu XServerul Xorg furnizat de către fundația X.org http://www.x.org.

Căile care încep cu un cuvânt între paranteze unghiulare sunt relative față de prefixul instalării. Exemplu `<share>/pixmaps/` se referă la `/usr/share/pixmaps` dacă GDM a fost configurat cu `--prefix=/usr`.

## Prezentare generală

### 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

    gdm-list@gnome.org

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

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

### 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ă.

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

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

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

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

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

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

## Securitate

### Utilizatorul și grupul GDM

Din motive de securitate un identificator dedicat al utilizatorului și grupului este recomandat pentru o bună funcționare. Acest utilizator și grup este implicit "gdm" pe majoritatea sistemelor, dar poate fi configurat să fie orice utilizator sau grup. Toate programele cu interfață grafică GDM sunt executate sub acest utilizator, pentru ca programele ce interacționează cu utilizatorului să fie rulate într-un sandbox. Acest utilizator și grup ar trebui să aibă permisiuni limitate.

Singura permisiune de care are nevoie utilizatorul "gdm" este posibilitatea de a citi și scrie fișiere Xauth către dosarul `<var>/run/gdm`. Dosarul `<var>/run/gdm` ar trebui să aibă apartenența root:gdm și permisiunile 1777.

În niciun caz nu trebuie să configurați utilizatorul/grupul GDM către un utilizator către care se poate căpăta cu ușurință acces, cum ar fi utilizatorul `nobody`. Orice utilizator care dobândește acces către o cheie Xauth poate să intre și să controleze programele cu interfață grafică deschise în sesiunea asociată sau să efectueze un atac de negare al serviciului. Este important să vă asigurați că sistemul este configurat în mod corespunzător, că doar utilizatorul "gdm" are acces la aceste fișiere și că nu este ușoară autentificarea pe acest cont. De exemplu, contul ar trebui să fie configurat pentru a nu avea parolă sau a permite utilizatorilor care nu au drepturi de administrare să se autentifice pe acest cont.

Configurația aplicației de întâmpinare GDM este stocată în GConf. Pentru a permite utilizatorului GDM să scrie configurația, este necesar ca utilizatorul "gdm" să aibă un dosar $HOME inscripționabil. Utilizatorii pot configura configurația implicită GConf după plac, pentru a elimina necesitatea de furnizare a utilizatorului "gdm" cu un dosar $HOME inscripționabil.

### PAM

GDM folosește PAM pentru autentificare. PAM înseamnă Modul de autentificare conectabil, și este folosit de majoritatea programelor ce necesită autentificare pe calculatorul dumneavoastră. Acesta permite administratorului să configureze comportamentul specific al autentificării pentru diferite programe de autentificare (cum ar fi ssh, interfață grafică de autentificare, protector de ecran, etc.)

PAM este complex și foarte configurabil, dar această documentație nu intenționează să explice acest lucru în detaliu. În schimb, intenționează să ofere o prezentare generală despre cum configurația PAM se înrudește cu GDM, cum PAM este configurat de obicei cu GDM, și probleme cunoscute. Este de așteptat ca o persoană care are nevoie să configureze PAM să trebuiască să citească mai multă documentație despre PAM pentru a înțelege configurația și termenii folosiți în această secțiune.

Configurația PAM are interfețe diferite, dar similare, pe sisteme de operare diferite, deci consultați paginile de manual pam.d sau pam.conf pentru detalii. Asigurați-vă că citiți documentația PAM și că sunteți confortabil privind implicațiile securității ale modificărilor pe care vreți să le faceți în configurația dumneavoastră.

A se reține că, implicit, GDM folosește serviciul PAM „gdm” pentru autentificarea normală și serviciul PAM „gdm-autologin” pentru autentificarea automată. Aceste servicii pot sau nu fi definite în fișierele de configurație ale dumneavoastră, pam.d sau pam.conf. Dacă nu este o astfel de intrare, GDM va încerca să folosească conduita PAM implicită.

Scriptul `PostLogin` este executat înaintea apelului pam_open_session, și scriptul `PreSession` este apelat după. Acest lucru permite administratorului de sistem să adauge orice fel de script procesului de autentificare, înainte sau după ce PAM inițializează sesiunea.

Dacă doriți să faceți GDM să meargă și cu alte tipuri mecanisme de autentificare (cum ar fi cititor de amprentă sau de SmartCard), ar trebui să implementați acest lucru folosind un modul de servicii PAM pentru tipul de autentificare dorit în loc să încercați să modificați codul GDM direct. Consultați documentația PAM de pe sistemul dumneavoastră. Cum să faceți acest lucru este discutat frecvent în lista de discuții

    gdm-list@gnome.org

, deci puteți înainta către arhivele listate pentru mai multă informație.

PAM are totuși câteva limite când vine vorba de posibilitatea de lucru cu mai multe tipuri de autentificare în același timp, cum ar fi suportul posibilității de a accepta și SmartCard și tastarea numelui de utilizator și a parolei în programul de autentificare. Sunt tehnici care pot face acest lucru posibil, dar este de preferat să vă documentați despre cum poate fi rezolvată această problemă de obicei când efectuați o asemenea configurație.

Dacă autentificarea automată nu funcționează pe un sistem, verificați dacă stiva PAM „gdm-autologin” este definită în configurația PAM. Pentru ca acest lucru să funcționeze, trebuie folosit un modul PAM care nu face nicio autentificare, sau returnează PAM_SUCCESS de la toate interfețele publice. Presupunând că sistemul dumneavoastră are un modul PAM pam_allow.so care face acest lucru, o configurație PAM pentru a activa „gdm-autologin” ar arăta astfel:

           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

Configurația de mai sus nu va cauza generarea niciunei intrări de jurnalizare recente. Dacă o înregistrare recentă este dorită, folosiți următorul lucru pentru sesiune:

           gdm-autologin session required pam_unix_session.so.1

Dacă calculatorul este folosit de mai multe persoane, lucru ce face autentificarea automată nepotrivită, poate doriți să permiteți unora utilizatori să deschidă o sesiune fără să furnizeze parola. Această facilitate poate fi activată ca o opțiune a utilizatorului, din unealta de administrare a utilizatorului din uneltele de sistem gnome; este realizată prin verificarea dacă utilizatorul este membru al unui grup Unix numit „nopasswdlogin” înainte de a cere o parolă. Pentru ca să funcționeze, fișierul de configurație PAM al serviciului „gdm” trebuie să includă o linie ca următoarea:

          gdm auth  sufficient  pam_succeed_if.so  user ingroup nopasswdlogin

### utmp și wtmp

GDM generează înregistrările utmp și wtmp a Bazei de date a conturilor de utilizator la deschiderea și închiderea sesiunii. Baza de date utmp conține accesul utilizatorului și informații privind contul care pot fi accesate prin comenzi de genul `finger`, `last`, `login`, și `who`. Baza de date wtmp conține istoricul accesului utilizatorului și informații privind contul din baza de date utmp. Înaintați spre paginile manualului utmp și wtmp de pe sistemul dumneavoastră pentru mai multe informații.

### Schema autentificării Xserver

Fișierele de autorizație ale serverului X sunt stocate într-un nou subdosar al `<var>/run/gdm` la deschidere. Aceste fișiere sunt folosite pentru a stoca și partaja o „parolă” între clienții X și serverul X. Această "parolă" este unică pentru fiecare deschidere a unei sesiuni, pentru ca utilizatorii dintr-o sesiune să nu poată intra peste utilizatorii din alta.

GDM suportă doar schema de autentificare MIT-MAGIC-COOKIE-1 a serverului X. În mod normal, puține lucruri sunt obținute de la alte scheme și nu există niciun efort de a le implementa până acum. Aveți în mod special grijă când folosiți XDMCP, deoarece cookie-urile de autentificare ale serverului X trec pe fir ca text normal. Dacă furișarea este posibilă, atunci un atacator poate să vă vadă direct parola de autentificare când deschideți o sesiune, fără să se țină cont de schema de autentificare folosită. Dacă furișarea este posibilă și nedorită, ar trebui să folosiți ssh în loc de XDMCP pentru a canaliza o conexiune X. Vă puteți imagina XDMCP ca pe un fel de telnet grafic, având aceleași probleme de securitate. În cele mai multe cazuri, ssh -Y ar trebui să fie de preferat în locul facilităților managerului de ecran XDMCP.

### Securitatea XDMCP

Chiar dacă ecranul dumneavoastră este protejat de cookieuri, evenimentele X, deci și combinațiile de taste când introduceți o parolă vor fi trimise pe fir tot ca text normal. Este fără importanță să le capturăm.

XDMCP este folosit în primul rând pentru a porni clienți subțiri, cum ar fi în laboratoarele de terminal. Acești clienți subțiri au nevoie de rețea doar pentru a accesa serverul, și se pare că cea mai bună regulă de securitate este de a avea acești clienți subțiri într-o rețea separată pentru a nu putea fi accesați de către lumea exterioară, și se pot conecta doar la server. Singurul punct de unde trebuie să accesați lumea exterioară este serverul. Acest tip de configurație nu ar trebui să folosească un nod neadministrat sau altă rețea ce poate fi furișată.

### Controlul accesului XDMCP

Controlul accesului XDMCP este făcut folosind încadratorii TCP. Este posibil să compilați GDM fără suportul pentru încadratori TCP, deci este posibil ca această facilitate să nu fie suportată de unele sisteme de operare.

Ar trebui să folosiți numele serviciului `gdm` din fișierele `<etc>/hosts.allow` și `<etc>/hosts.deny`. De exemplu, pentru a refuza calculatoarele din `.domeniu.rău` la deschiderea unei sesiuni, adăugați

    gdm: .domeniu.rău

în fișierul `<etc>/hosts.deny`. Este posibil să fie nevoie și de adăugarea

    gdm: .domeniul.dumneavoastră

în fișierul `<etc>/hosts.allow` dacă refuzați serviciile de la toate calculatoarele gazdă în mod normal. Consultați paginile manualului hosts.allow(5) pentru detalii.

### Securitatea paravanului de protecție

Chiar dacă GDM încearcă să prevină potențiali atacatori care încearcă să profite de XDMCP, se recomandă totuși să blocați portul XDMCP (de obicei portul UDP 177) în paravanul dumneavoastră de proiecție, cu excepția cazului în care chiar este nevoie. GDM protejează împotriva atacurilor de negare a serviciului, dar protocolul X este încă în mod inerent nesigur și ar trebui folosit doar în medii controlate. De asemenea, orice conexiune de la distanță ocupă multe resurse, deci este mult mai ușor ca un atac de negare al serviciului să fie produs prin XDMCP în locul unui server web.

De asemenea, este prevăzător să blocați toate porturile serverului X. Acestea sunt porturi TCP 6000+ (unul pentru fiecare număr al ecranului) în paravanul de protecție al dumneavoastră. A se reține că GNDM va folosi numere de afișaj de la 20 în sus pentru servere găzduite flexibil.

Protocolul X nu este foarte sigur când este folosit pe internet, iar XDMCP este și mai nesigur.

### Trusa de reguli

GDM poate fi configurat să folosească Trusa de reguli pentru a permite administratorului de sistem să controleze dacă ecranul de autentificare trebuie să furnizeze butoane pentru închiderea și redeschiderea calculatorului pe ecranul de întâmpinare.

Aceste butoane sunt controlate de către acțiunile `org.freedesktop.consolekit.system.stop-multiple-users` și `org.freedesktop.consolekit.system.restart-multiple-users`. Regulile privind aceste acțiuni pot fi configurate folosind unealta polkit de autorizație gnome, sau linia de comandă polkit-auth.

### RBAC (Controlul accesului bazat pe roluri)

GDM poate fi configurat să folosească RBAC în loc de Trusa de reguli. În acest caz configurația RBAC este folosită pentru a controla dacă ecranul de autentificare trebuie să furnizeze butoanele de închidere și repornire a calculatorului pe ecranul de întâmpinare.

De exemplu, pe Oracle Solaris, autorizația „solaris.system.shutdown” este folosită pentru a controla acest lucru. Doar modificați fișierul `/etc/user_attr` în așa fel încât utilizatorul „gdm” să aibă această autorizație.

## Suportul pentru Trusa de consolă

GDM include suport pentru publicarea informațiilor de autentificare a utilizatorilor cu ajutorul platformei de contabilitate a utilizatorului și a sesiunii de autentificare, cunoscută și sub numele de Trusa de consolă. Trusa de consolă are posibilitatea de a urmări toți utilizatorii care au sesiuni deschise. În acest sens, poate fi folosită ca un înlocuitor pentru fișierele utmp sau utmpx care sunt disponibile pe majoritatea sistemelor de operare bazate pe Unix.

Când GDM este pe cale de a crea un nou proces de autentificare pentru un utilizator, apelează o metodă privilegiată a Trusei de consolă pentru a deschide o noua sesiune pentru acest utilizator. În acest moment GDM oferă și Trusei de consolă informații despre această sesiune a utilizatorului, cum ar fi: identificatorul utilizatorului, numele de afișaj X11 ce va fi asociat cu această sesiune, numele calculatorului gazdă de unde este inițiată sesiunea (folositor în cazul unei sesiuni XDMCP), dacă sesiunea este sau nu atașată, etc. Ca entitatea ce inițializează procesul utilizatorului, GDM este într-o poziție unică de a cunoaște informații despre sesiunea utilizatorului și se poate avea încredere că va oferi acești biți de informație. Folosirea acestei metode privilegiate este restricționată de către folosirea mesajului magistralei de sistem D-Bus de reguli de securitate.

În cazul în care un utilizator cu o sesiune existentă se autentifică prin GDM și face o cerere de a relua o sesiune existentă, GDM apelează o metodă privilegiată a Trusei de consolă pentru a debloca acea sesiune. Detaliile exacte despre ce se întâmplă când o sesiune primește un semnal de deblocare sunt nedefinite și specifice fiecărei sesiuni în parte. Cu toate acestea, majoritatea sesiunilor vor debloca un protector de ecran ca răspuns.

Când un utilizator alege să închidă o sesiune, sau dacă GDM sau sesiunea se închid pe neașteptate, sesiunea utilizatorului va fi eliminată din Trusa de consolă.

## Configurația

GDM are mai multe interfețe de configurare. Acestea includ puncte de integrare ale scripturilor, configurarea serviciilor, configurarea programului de întâmpinare, configurări generale ale sesiunii, configurarea integrării cu serviciul de configurări gnome și configurarea sesiunii. Aceste tipuri de integrare sunt detaliate mai jos.

### Puncte de integrare ale scripturilor

Punctele de integrare ale scripturilor GDM pot fi găsite în dosarul `<etc>/gdm/`.

    Xsession
    Init/
    PostLogin/
    PreSession/
    PostSession/

Scripturile `Init`, `PostLogin`, `PreSession`, și `PostSession` funcționează așa cum este descris mai jos.

Pentru fiecare tip de script, cel implicit care va fi executat se numește „Default” și este stocat într-un dosar asociat cu tipul scriptului. Deci scriptul implicit `Init` este `<etc>/gdm/Init/Default`. Un script poate fi furnizat pe fiecare ecran în parte, și dacă există va fi executat în loc de scriptul implicit. Acest gen de scripturi sunt stocate în același dosar ca și scriptul implicit și au același nume ca valoarea ecranului serverului X pentru acel ecran. De exemplu, dacă scriptul `<Init>/:0` există, va fi executat pentru ecranul ":0".

Toate aceste scripturi sunt executate cu permisiuni de administrare și returnează 0 dacă sunt rulate cu succes, și o valoare diferită de zero dacă a existat un eșec care ar trebui să cauzeze sesiunea de autentificare să fie terminată. De asemenea, a se reține că GDM se va bloca până la finalul scriptului, deci dacă unul dintre aceste scripturi rămâne în suspensie, acest lucru va cauza și procesul de autentificare să se blocheze.

Când serverul X pentru interfața grafică de autentificare a fost pornit cu succes, dar înainte ca interfața grafică de autentificare să fie afișată propriu-zis, GDM va executa scriptul `Init`. Acest script este util pentru programele de pornire care ar trebui să fie executate în timp ce ecranul de autentificare este afișat, sau pentru a face o înițializare specială dacă este necesară.

După ce utilizatorul a fost autentificat cu succes, GDM va executa scriptul `PostLogin`. Acest lucru este făcut înainte ca pregătirea unei sesiuni să fie gata, incluzând apelul pam_open_session. Acest script este util pentru a face inițializări de sesiune care trebuie să fie rulate înainte de pornirea sesiunii. De exemplu, puteți pregăti dosarul $HOME al utilizatorului dacă este nevoie.

După ce sesiunea utilizatorului a fost inițializată, GDM va executa scriptul `PreSession`. Acest script este util pentru a face inițializări de sesiune care trebuie să fie executate după ca sesiunea să fie inițializată. Poate fi folosit pentru gestionarea sesiunilor sau a conturilor, de exemplu.

Când un utilizator își închide sesiunea, GDM va execulta scriptul `PostSession`. A se reține că serverul X va fi oprit până în momentul rulării acestui script, deci nu trebuie să fie accesat.

A se reține că scriptul `PostSession` va fi executat chiar dacă afișajul eșuează să răspundă din cauza unei erori I/O sau ceva similar. Astfel, nu este nicio garanție că aplicațiile X vor merge în timpul execuției acestui script.

Toate scripturile menționate mai sus vor stabili variabila mediului `$RUNNING_UNDER_GDM` la `yes`. Dacă scripturile sunt partajate cu alte managere de ecran, acest lucru vă permite să identificați când GDM apelează aceste scripturi, deci puteți să executați un cod specific când GDM este folosit.

### Configurarea pornirii automate

Dosarul `<share>/gdm/autostart/LoginWindow` conține fișiere în formatul specificat de către „FreeDesktop.org - Specificațiile de pornire automată ale aplicațiilor desktop”. Funcționalitățile standard din specificații pot fi folosite pentru a specifica programele care trebuie să repornească automat sau să fie pornite doar dacă o anumită valoare de configurare GConf este stabilită, etc.

Orice fișier `.desktop` din acest dosar va cauza programul asociat să pornească automat împreună cu interfața grafică de întâmpinare. Implicit, GDM este expediat cu fișiere ce vor porni automat inferfața grafică de întâmpinare în sine, aplicația gnome de gestionare a energiei, serviciul de configurări gnome, și managerul de ferestre metacity. Aceste programe sunt necesare pentru ca programul de întâmpinare să funcționeze. Adițional, fișiere desktop sunt furnizate pentru pornirea diferitelor programe AT dacă valorile configurației specificate în secțiunea Configurația accesibilității sunt stabilite.

### Scriptul de sesiune X

Mai există și un script `Xsession` localizat la `<etc>/gdm/Xsession` care este apelat între scripturile `PreSession` și `PostSession`. Acest script nu suporta afișajul pe fiecare ecran separat, la fel ca celelalte scripturi. Acest script este folosit pentru pornirea propriu-zisă a sesiunii. Acest script este executat sub utilizator și va rula orice sesiune care a fost specificată de către fișierul de sesiune desktop pe care utilizatorul l-a selectat să pornească.

### Configurarea serviciului

Serviciul GDM este configurat folosind fișierul `<etc>/gdm/custom.conf`. Valorile implicite sunt stocate în fișierul GConf `gdm.schemas`. Este recomandat ca utilizatorii să modifice fișierul `<etc>/gdm/custom.conf` deoarece fișierul schematic poate fi rescris când un utilizator își actualizează sistemul la o versiune mai noua de GDM.

A se reține că versiunile mai vechi de GDM au suportat opțiuni de configurare adiționale care nu mai sunt suportate în versiunile cele mai recente de GDM.

Fișierul `<etc>/gdm/custom.conf` este în formatul `keyfile`. Cuvintele cheie din paranteze pătrate definesc secțiuni de grupuri, șirurile dinaintea unui semn egal (=) sunt chei și datele de după semnul egal reprezintă valoarea acestora.

Fișierul `<etc>/gdm/custom.conf` suportă secțiunile de grupuri „[daemon]”, „[security]”, și „[xdmcp]”. În fiecare grup, există o pereche particulară cheie/valoare care poate fi specificată să modifice cum GDM funcționează. De exemplu, pentru a activa o autentificare temporizată și a specifica numele utilizatorului autentificării respective ca fiind „dumneavoastră”, ar trebui să modificați fișierul în așa fel încât să conțină următoarele linii:

    [daemon]
    TimedLoginEnable=true
    TimedLogin=dumneavoastră

O listă completă a cheilor de configurare suportate urmează:

#### [chooser]

Multicast

-     Multicast=false

  Dacă este stabilită la true și IPv6 este activat, selectorul va trimite o interogare de difuzări multiple către rețeaua locală și va colecta răspunsurile de la calculatoarele gazdă care s-au alăturat grupului de difuzare multiplă.

MulticastAddr

-     MulticastAddr=ff02::1

  Aceasta este adresa legăturii locale a difuzării multiple.

#### [daemon]

TimedLoginEnable

-     TimedLoginEnable=false

  Dacă utilizatorul precizat în `TimedLogin` ar trebui să fie autentificat după un anumit număr de secunde (stabilite de `TimedLoginDelay`) de inactivitate la ecranul de autentificare. Acest lucru este util pentru terminalele cu acces public sau chiar pentru acasă. Dacă utilizatorul folosește tastatura sau navighează prin meniuri, timpul limită va fi restabilit la `TimedLoginDelay` sau 30 de secunde, oricare e mai mare. Dacă utilizatorul nu furnizează niciun nume de utilizator, ci apasă direct tasta ENTER în timp ce programul autentificării cere un nume de utilizator, GDM va presupune că utilizatorul vrea să deschidă o sesiune imediat, ca utilizatorul cu temporizare. A se reține că nicio parolă nu se va cere pentru acest utilizator, deci fiți prudenți. deși dacă folosiți PAM poate fi configurat să ceară o parolă înaintea autentificării. Consultați secțiunea „Securitatea PAM” a acestui manual pentru mai multe informații, sau pentru ajutor în cazul că această funcționalitate nu funcționează.

TimedLogin

-     TimedLogin=

  Acesta este utilizatorul care ar trebui să deschidă o sesiune după un număr specificat de secunde de inactivitate.

  Dacă valoarea se termină cu o bară verticală | (simbolul țeavă), GDM va executa programul specificat și va folosi orice valoare este returnată la ieșirea programului, ca utilizatorul respectiv. Programul este executat cu variabila mediului DISPLAY configurată în așa fel încât este posibilă specificarea utilizatorului într-o modalitate pe ecrane separate. De exemplu, dacă valoarea este "/usr/bin/getloginuser|", programul "/usr/bin/getloginuser" va fi executat pentru a obține valoarea numelui de utilizator.

TimedLoginDelay

-     TimedLoginDelay=30

  Întârzierea în secunde înainte ca utilizatorul `TimedLogin` să fie autentificat.

AutomaticLoginEnable

-     AutomaticLoginEnable=false

  Dacă este stabilită la adevarat (true), utilizatorul precizat la `AutomaticLogin` ar trebui să fie autentificat imediat. Această funcționalitate necesită ca autentificarea temporizată să aibă o întârziere de 0 secunde.

AutomaticLogin

-     AutomaticLogin=

  Acesta este utilizatorul care ar trebui să fie autentificat automat dacă `AutomaticLoginEnable` este adevărată (true).

  Dacă valoarea se termină cu o bară verticală | (simbolul țeavă), GDM va executa programul specificat și va folosi orice valoare este returnată la ieșirea programului, ca utilizatorul respectiv. Programul este executat cu variabila mediului DISPLAY configurată în așa fel încât este posibilă specificarea utilizatorului într-o modalitate pe ecrane separate. De exemplu, dacă valoarea este "/usr/bin/getloginuser|", programul "/usr/bin/getloginuser" va fi executat pentru a obține valoarea numelui de utilizator.

User

-     User=gdm

  Utilizatorul sub care vor rula programul de întâmpinare și alte programe de interfață grafică. Urmăriți cheia de configurare `Grup` și secțiunea „Securitate->GDM Utilizator și Grup” a acestui manual pentru mai multe informații.

Group

-     Group=gdm

  Numele grupului sub care vor rula programul de întâmpinare și alte programe de interfață grafică. Consultați cheia de configurație `Utilizator` și secțiunea „Securitate->GDM Utilizator și Grup” a acestui manual pentru mai multe informații.

#### Opțiuni de depanare

#### [depanare]

Enable

-     Enable=false

  Pentru a activa depanarea, stabiliți cheia depanării ca fiind adevărată ("true") în fișierul `<etc>/gdm/custom.conf` și reporniți GDM. Apoi, rezultatul depanării va fi trimis către fișierul de jurnalizare al sistemului (`<var>/log/messages` sau `<var>/adm/messages` în funcție de sistemul de operare).

#### Opțiuni ale programului de întâmpinare

#### [greeter]

IncludeAll

-     IncludeAll=true

  Dacă este adevarată (true), navigatorul de fețe va afișa toți utilizatorii de pe calculatorul local. Dacă este fals (false), navigatorul de fețe va afișa doar utilizatorii care au deschis o sesiune recent.

  Când această cheie este adevărată (true), GDM va apela fgetpwent() pentru a obține o listă cu utilizatorii locali ai sistemului. Orice utilizator cu identificatorul mai mic decât 500 (sau 100 la rularea pe Oracle Solaris) va fi filtrat. Navigatorul de fețe va afișa și utilizatorii care au deschis o sesiune anterior pe sistem (de exemplu utilizatorii NIS/LDAP). Obține lista apelând `ck-history` a interfeței Trusei de consolă. Va filtra și utilizatorii care nu au un shell valid (shellurile valide sunt shellurile care sunt returnate de către getusershell() - /sbin/nologin sau /bin/false sunt considerate nevalide chiar dacă sunt returnate de către getusershell() ).

  Dacă este falsă (false), GDM va afișa doar utilizatorii ce au deschis o sesiune anterior pe sistem. (local sau utilizatorii NIS/LDAP), apelând `ck-history` a interfeței Trusei de consolă.

Include

-     Include=

  Stabiliți la o listă de utilizatori care să fie incluși în navigatorul de fețe. Această valoare este stabilită la o listă de utilizatori separați prin virgulă. Implicit, valoarea este goală.

Exclude

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

  Stabiliți la o listă de utilizatori pentru a-i exlude mereu din navigatorul de fețe. Această valoare este stabilită la o listă de utilizatori separați prin virgulă. A se reține că confiturarea din `custom.conf` înlocuiește valoarea implicită, deci dacă doriți să adăugați utilizatori adiționali în listă, trebuie să stabiliți valoarea implicită cu utilizatorii adiționali atașați listei.

#### Opțiuni de securitate

#### [security]

DisallowTCP

-     DisallowTCP=true

  Dacă este adevarată (true), adaugă `-nolisten tcp` în linia de comandă la pornirea serverelor X atașate, deci interzicând conexiunea TCP.

#### Suportul XDCMP

#### [xdmcp]

DisplaysPerHost

-     DisplaysPerHost=1

  Pentru a preveni atacatorii să completeze coada de așteptare, GDM va permite doar o conexiune pentru fiecare calculator de la distanță. Dacă doriți să ofere servicii și calculatoarelor cu mai multe ecrane, trebuie să mariți această valoare.

  A se reține că numarul de AFIȘAJE atașate permise nu este limitat. Doar conexiunile de la distanță prin XDMCP sunt limitate de această opțiune de configurație.

Enable

-     Enable=false

  Stabilirea acesteia la adevărat (true) permite suportul XDMCP permițând ecranelor/terminalelor X de la distanță să fie gestionate de GDM.

  `gdm` ascultă cererile pe portul UDP 177. Consultați opțiunea Port pentru mai multe informații.

  Dacă GDM este compilat în așa fel încât să suporte acest lucru, accesul de la ecranele de la distanță poate fi controlat folosind librăria TCP Wrappers. Numele serviciului este `gdm`.

  Ar trebui să adăugați

      gdm:.domeniul.meu

  în fișierul `<etc>/hosts.allow`, lucru ce depinde de configurația TCP Wrappers a dumneavoastră. Consultați paginile manualului hosts.allow pentru detalii.

  A se reține că XDMCP nu este un protocol foarte securizat și este o idee bună să blocați portul UDP 177 în paravanul dumneavoastră de protecție, exceptând cazul în care chiar aveți nevoie de el.

HonorIndirect

-     HonorIndirect=true

  Permite XDMCP alegerea indirectă (exemplu executarea de la distanță a `gdmchooser`) pentru terminalele X care nu conțin navigatorul de ecran propriu.

MaxPending

-     MaxPending=4

  Pentru a evita atacuri de negare a serviciului, GDM a reparat mărimea fixă a cozii de conexiuni în așteptare. Doar un număr de afișaje configurat (MaxPending) poate fi pornit în același timp.

  A se reține că acest parametru nu limitează numărul de ecrane de la distanță ce pot fi gestionate. Limitează doar numărul de ecrane ce pot inițializa o conexiune simultan.

MaxSessions

-     MaxSessions=16

  Determină numărul maxim de conexiuni ale ecranelor de la distanță ce pot fi gestionate simultan. Exemplu, numărul total de ecrane de la distanță ce pot fi folosite pe calculatorul gazdă.

MaxWait

-     MaxWait=30

  Când GDM este pregătit să gestioneze un ecran, un pachet ACCEPT este trimis ce conține un identificator unic al sesiunii care va fi folosit în conexiunile XDMCP viitoare.

  Apoi, GDM va plasa identificatorul sesiunii în coada de suspensie așteptând ca ecranul să răspundă cu o cerere de GESTIONARE.

  Dacă niciun răspuns nu este primit în maximul de secunde stabilit prin MaxWait, GDM va declara ecranul inactiv și îl va șterge din lista de așteptare, eliberând o fantă pentru alte ecrane.

MaxWaitIndirect

-     MaxWaitIndirect=30

  Parametrul de așteptare maximă indirectă (MaxWaitIndirect) determină numărul maxim de secunde dintre momentul în care utilizatorul selectează un calculator gazdă și interogarea indirectă ulterioară când utilizatorul este conectat la calculatorul gazdă. Când limita de timp este depășită, informația despre calculatorul gazdă selectat este uitată și o fantă indirectă este eliberată pentru alte ecrane. Informația ar putea fi uitată mai înainte dacă sunt mai multe calculatoare gazdă ce încearcă să trimită interogări indirecte decât sunt stabilite prin `MaxPendingIndirect`.

PingIntervalSeconds

-     PingIntervalSeconds=60

  Dacă serverul X nu răspunde într-un număr specificat de secunde, conexiunea este oprită și sesiunea închisă. Când se întamplă acest lucru, serviciul supus este terminat cu un semnal de alarmă. A se reține că GDM 2.20 și versiunile ulterioare înmulțeau această setare cu 2, deci ar putea fi necesar să măriți limita de timp dacă înnoiți GDM 2.20 sau o versiune ulterioară la una mai nouă.

  A se reține că GDM a avut în trecut o cheie de configurație `PingInterval` care era în minute. Pentru cele mai multe scopuri, ar fi bine să aveți această configurare mai mică decât un minut. Cu toate aceastea, în majoritatea cazurilor în care ar fi folosit XDMCP (cum ar fi laboratoare de terminal), o întârziere mai mare de 15 secunde ar însemna că terminalul a fost închis sau repornit și ați vrea să închideți această sesiune.

Port

-     Port=177

  Numărul portului UDP la care `gdm` ar trebui să asculte pentru cereri XDMCP. Nu schimbați această valoare decât dacă știți ce faceți.

Willing

-     Willing=<etc>/gdm/Xwilling

  Când un calculator trimite un pachet de DISPUNERE înapoi după o INTEROGARE, trimite un șir care oferă starea curentă a serverului. Mesajul implicit este identificatorul sistemului, dar este posibilă crearea unui script ce afișează un mesaj personalizat. Dacă scriptul nu există sau cheia este goală, se va trimite mesajul implicit. Dacă scriptul reușește și produce o ieșire, prima linie a ieșirii este trimisă (doar prima linie). Se execută cel mai des la un interval de 3 secunde pentru a preveni posibilele atacurile de negare a serviciului să încarce calculatorul cu pachete de INTEROGARE.

### Configurarea programului simplu de întâmpinare

Programul de întâmpinare implicit este apelat de programul simplu de întâmpinare și este configurat prin GConf. Valorile implicite sunt stocate în GConf în fișierul `gdm-simple-greeter.schemas`. Aceste valori implicite pot fi rescrise dacă utilizatorul "gdm" are un dosar $HOME inscripționabil pentru a stoca configurările GConf. Aceste valori pot fi modificate folosind programele `gconftool-2` sau `gconf-editor`. Opțiunile următoare de configurare sunt suportate:

### Chei de configurare a programului de întâmpinare

/apps/gdm/simple-greeter/banner_message_enable

-     false (boolean)

  Controlează dacă mesajul text al bannerului este afișat.

/apps/gdm/simple-greeter/banner_message_text

-     NULL (șir)

  Specifică mesajul text al bannerului ce va fi afișat în fereastra programului de întâmpinare.

/apps/gdm/simple-greeter/disable_restart_buttons

-     false (boolean)

  Controlează dacă să afișeze sau nu butoanele de repornire în fereastra de autentificare.

/apps/gdm/simple-greeter/disable_user_list

-     false (boolean)

  Dacă este adevărat (true), navigatorul de fețe cu utilizatorii cunoscuți nu va fi afișat în fereastra de autentificare.

/apps/gdm/simple-greeter/logo_icon_name

-     computer (șir)

  Stabiliți numele iconiței temă care să fie folosită ca sigla programului de întâmpinare.

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

-     [] (listă șiruri)

  Stabiliți o listă a limbilor ce vor fi afișate implicit în panoul de autentificare. Valoarea implicită este „[]”. Cu valoarea implicită doar limba implicită pe sistem va fi afișată, și opțiunea „Altele...” care va deschide un dialog ce va afișa lista întreagă a tuturor limbilor disponibile pentru utilizator.

  Nu este nevoie ca utilizatorii să modifice manual această configurare. În schimb, GDM urmărește limbile selectate în această cheie de configurare, și le va afișa în lista de selecție ale limbilor alături de alegerea „Altele...”. În acest mod, limbile folosite des sunt mai ușor de selectat.

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

-     [] (listă șiruri)

  Stabiliți o listă a aranjamentelor de tastatură ce vor fi afișate implicit în panoul de autentificare. Valoarea implicită este „[]”. Cu valoarea implicită doar aranjamentul de tastatură implicit pe sistem va fi afișat, și opțiunea „Altele...” care va deschide un dialog ce va afișa lista întreagă a tuturor aranjamentelor disponibile pentru utilizator.

  Nu este nevoie ca utilizatorii să modifice manual această configurare. În schimb, GDM urmărește aranjamentele de tastatură selectate în această cheie de configurare, și le va afișa în lista de selecție ale aranjamentelor alături de alegerea „Altele...”. În acest mod, aranjamentele de tastatură folosite des sunt mai ușor de selectat.

/apps/gdm/simple-greeter/wm_use_compiz

-     false (boolean)

  Controlează dacă compiz este sau nu folosit ca managerul de ferestre în locul lui metacity.

### Configurarea accesibilității

Această secțiune descrie opțiunile de configurare a accesibilității disponibile în GDM.

#### Dialogul de accesibilitate și cheile GConf

Panoul programului de întâmpinare de pe ecranul de autentificare afișează o iconiță de accesibilitate. Apăsând clic pe acea iconiță veți deschide dialogul de accesibilitate. În acest dialog, există o listă de căsuțe de bifare ce permit utilizatorului să activeze sau dezactiveze uneltele asociate ajutătoare.

Căsuțele de bifare care corespund cu uneltele ajutătoare: tastatura virtuală, lupa pentru ecran și cititorul de ecran se bazează pe trei chei GConf care sunt descrise în această secțiune a documentului. Pentru a activa sau dezactiva aceste căsuțe de bifare, cheia GConf corespunzătoare trebuie să fie stabilită „adevărată” (true) sau „falsă” (false). Când o cheie GConf este stabilită să fie adevărată, uneltele ajutătoare legate de acea cheie sunt pornite. Când cheia GConf este stabilită să fie falsă, toate uneltele ajutătoare legate de acea cheie sunt închise. Aceste chei GConf nu sunt restabilite automat la valoarea implicită atunci când utilizatorul deschide o sesiune. În consecință, uneltele ajutătoare care au fost rulate în timpul ultimei sesiuni de autentificare GDM vor fi pornite automat și la următoarea sesiune.

Celelalte căsuțe de bifare din dialogul de accesibilitate nu au chei GConf corespunzătoare, deoarece niciun program suplimentar nu este pornit pentru a furniza facilitatea de accesibilitate ce o oferă. Aceste opțiuni corespund cu facilitățile de accesibilitate care sunt oferite de serverul X, care vor fi mereu pornite în timpul sesiunii GDM.

#### Cheile GConf de accesibilitate

GDM oferă următoarele chei GConf pentru a controla funcționalitățile de accesibilitate:

#### Cheile de configurare GDM

/desktop/gnome/interface/accessibility

-     false (boolean)

  Controlează dacă infrastructura accesibilității va fi sau nu pornită în același timp cu interfața grafică GDM. Acest lucru este necesar pentru ca multe programe de tehnologie a accesibilității să funcționeze.

/desktop/gnome/applications/at/screen_magnifier_enabled

-     false (boolean)

  Dacă este stabilită, uneltele ajutătoare legate de această cheie GConf vor fi pornite în același timp cu program de inferfață grafică GDM. În mod implicit, aceasta este aplicația lupei pentru ecran.

/desktop/gnome/applications/at/screen_keyboard_enabled

-     false (boolean)

  Dacă este stabilită, uneltele ajutătoare legate de această cheie GConf vor fi pornite în același timp cu program de inferfață grafică GDM. În mod implicit, aceasta este aplicația tastaturii virtuale.

/desktop/gnome/applications/at/screen_reader_enabled

-     false (boolean)

  Dacă este stabilită, uneltele ajutătoare legate de această cheie GConf vor fi pornite în același timp cu program de inferfață grafică GDM. În mod implicit, aceasta este aplicația cititorului de ecran.

#### Legarea cheilor GConf cu uneltele de accesibilitate

Pentru cheile activate GConf: lupa pentru ecran, tastatura virtuală și cititorul de ecran, uneltele ajutătoare care sunt pornite depind de fișierele desktop localizate în dosarul de pornire automată GDM, așa cum este descris în secțiunea „Configurarea pornirii automate” a acestui manual. Orice fișier desktop din dosarul de pornire automată GDM poate fi legat de aceste chei GConf specificând acea cheie ca valoarea condiției de pornire automată (AutostartCondition) din fișierul desktop. Linia condiției de pornire automată din fișierul desktop ar putea fi una din următoarele:

    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

Când o cheie de accesibilitate este stabilită la adevărat, orice program care este legat de acea cheie în fișierul de pornite automată desktop, va fi pornit (cu excepția cazului în care cheia ascunsă, Hidden, din acel fișier desktop este adevărată).

#### Exemplu de modificare a configurării uneltelor de accesibilitate

De exemplu, dacă GNOME este distribuit cu GOK ca tastatura virtuală implicită, acest lucru poate fi înlocuit cu un program diferit dacă se dorește. Pentru a înlocui GOK cu aplicația tastaturii virtuale "onboard" și, suplimentar, a activa unealta ajutătoare "ajustare maus" pentru sportul de staționare, urmatoarea configurare este necesară.

Creați un fișier desktop pentru aplicația onboard și altul pentru aplicația de ajustare a mausului; de exemplu, onboard.desktop și ajustaremaus.desktop. Aceste fișiere trebuie puse în dosarul GDM de pornire automată și să fie în formatul explicat în secțiunea „Configurare pornire automată” a acestui document.

Un exemplu al fișierului `onboard.desktop` ar putea fi:

    [Desktop Entry]
    Encoding=UTF-8
    Name=Tastatură virtuală onboard
    Comment=Folosiți o tastatură virtuală
    TryExec=onboard
    Exec=onboard --size 500x180 -x 20 -y 10
    Terminal=false
    Type=Application
    StartupNotify=true
    Categories=GNOME;GTK;Accesibilitate;
    AutostartCondition=GNOME /desktop/gnome/applications/at/screen_keyboard_enabled

Un exemplu al fișierului `ajustaremaus.desktop` ar putea fi:

    [Desktop Entry]
    Encoding=UTF-8
    Name=Ajustare Maus
    Comment=Apăsați clic staționând cu cursorul
    TryExec=mousetweaks
    Exec=mousetweaks --enable-dwell -m window -c -x 20 -y 240
    Terminal=false
    Type=Application
    StartupNotify=true
    Categories=GNOME;GTK;Accesibilitate;
    AutostartCondition=GNOME /desktop/gnome/applications/at/screen_keyboard_enabled

Observați linia cu condiția de pornire automată care face legătura dintre fișierele desktop și cheile GConf pentru tastatura virtuală.

Pentru a dezactiva pornirea aplicației GOK, fișierul desktop pentru tastatura virtuală GOK trebuie eliminat sau dezactivat. Altfel, aplicațiile onboard și GOK ar fi pornite simultan. Acest lucru se poate face prin ștergerea fișierului gok.desktop din dosarul GDM de pornire automată, sau adăugarea cheii de ascundere "Hidden=true" în fișierul gok.desktop.

După aceste modificări, GOK nu va mai fi pornit atunci când utilizatorul va activa tastatura virtuală în sesiunea GDM; dar aplicațiile onboard și de ajustare maus vor vi deschise în schimb.

### Configurările generale ale sesiunii

Programul de întâmpinare GDM folosește unele din aceleași platforme pe care le folosește și sesiunea desktop. În felul acesta, este influențat de către același numar de configurări GConf. Pentru fiecare configurare, programul de întâmpinare va folosi configurările implicite cu excepția cazului în care au fost înlocuite de către a) regulile obligatorii instalate ale managerului de ecran b) regulile obligatorii ale sistemului. GDM își instalează propriile reguli obligatorii pentru a bloca unele configurări din motive de securitate.

### Serviciul de configurări GNOME

GDM activează următoarele module ale serviciului de configurări gnome: a11y-tastatură, fundal, sunet, setări x.

Acestea sunt responsabile pentru lucruri precum imaginea de fundal, fontul și configurările temei, evenimentele sonore, etc.

De asemenea, și modulele pot fi dezactivate folosind GConf. De exemplu, dacă doriți să dezactivați un modul sonor, deselectați următoarea cheie: `/apps/gdm/simple-greeter/settings-manager-plugins/sound/active`.

### Configurarea sesiunii GDM

Sesiunile GDM sunt specificate folosind Specificațiile intrărilor desktop FreeDesktop.org, care pot fi citite urmărind: http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec.

Implicit, GDM va instala fișierele desktop în dosarul `<share>/xsessions`. GDM va căuta următoarele dosare pentru a găsi fișierele desktop: `<etc>/X11/sessions/`, `<dmconfdir>/Sessions`, `<share>/xsessions`, și `<share>/gdm/BuiltInSessions`. Implicit, `<dmconfdir>` este stabilit la `<etc>/dm/`, excepție făcând cazul în care GDM este configurat să folosească un dosar diferit folosind opțiunea "--with-dmconfdir".

O sesiune poate fi dezactivată modificând fișierul desktop și adăugând următoarea linie: `Hidden=true`.

Un fișier desktop GDM suportă o extensie specifică GDM, o cheie numită „X-GDM-BypassXsession”. Dacă cheia nu este specificată într-un fișier desktop, valoarea implicită este „falsă”. Dacă cheia este specificată ca fiind „adevărată” într-un fișier desktop, GDM va porni programul specificat de către cheia „Exec” din fișierul desktop direct la deschiderea unei sesiuni de utilizator. Nu va executa programul prin scriptul `<etc>/gdm/Xsession`, care reprezintă funcționarea normală. Ținând cont că evitarea scriptului `<etc>/gdm/Xsession` ocolește configurarea sesiunii utilizatorului cu sistemul normal și configurările utilizatorului, sesiunea pornită astfel poate fi folositoare pentru probleme de depanare în sistem sau scripturi ale utilizatorilor care îl pot preveni să fie capabil să deschidă o sesiune.

### Configurarea sesiunii utilizatorului și a limbii

Configurările implicite ale sesiunii utilizatorului și limbii sunt stocate în fișierul `~/.dmrc`. Când un utilizator deschide o sesiune pentru prima dată, acest fișier este creat cu alegerile inițiale ale utilizatorului. Acesta poate modifica aceste valori implicite, modificând direct o valoare la deschiderea unei sesiuni. GDM va ține minte modificarea la autentificările ulterioare.

Fișierul `~/.dmrc` are formatul standard `INI`. Conține o secțiune numită `[Desktop]`, care are doua chei: `Session` și `Language`.

Cheia sesiune, `Session`, specifică numele de bază a fișierului `.desktop` a sesiunii pe care utilizatorul vrea să il folosească în mod normal fără extensia `.desktop`. Cheia limbii, `Language`, specifică limba pe care utilizatorul dorește să o folosească în mod implicit. Dacă oricare dintre aceste key lipsește, valoarea implicită a sistemului va fi folosită. Fișierul ar trebui să arate după cum urmează:

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

## Comenzi GDM

### Comenzile administratorului GDM

Pachetul GDM furnizează următoarele comenzi în `sbindir` destinate folosirii de către administrator:

#### `gdm` Opțiunile liniilor de comandă

`gdm` este principalul serviciu care inaugurează mediul grafic de autentificare și pornește ajutătorii necesari.

#### `gdm` Opțiunile liniilor de comandă

-?, --help

- Oferă o prezentare generala a opțiunilor liniilor de comandă.

--fatal-warnings

- Face ca toate avertismentele să cauzeze închiderea aplicației GDM.

--timed-exit

- Închidere după 30 de secunde. Folositoare pentru depanare.

--version

- Afișează versiunea serviciului GDM.

#### `gdm-restart` Opțiunile liniilor de comandă

`gdm-restart` oprește și repornește GDM, trimițând un semnal HUP către serviciul GDM. Comanda aceasta va închide toate sesiunile, incluzând cele ale utilizatorilor autentificați prin GDM.

#### `gdm-safe-restart` Opțiunile liniilor de comandă

`gdm-safe-restart` oprește și repornește GDM trimițând un semnal USR1 serviciului GDM. GDM va reporni când toți utilizatorii și-au închis sesiunea.

#### `gdm-stop` Opțiunile liniilor de comandă

`gdm-stop` oprește GDM trimițând un semnal TERM către serviciul GDM.

## Depanare

Această secțiune oferă sfaturi ajutătoare despre repararea programului GDM. În general, dacă aveți probleme folosind GDM, puteți trimite un raport al unei defecțiuni către lista de discuții gdm. Informații despre cum să faceți acest lucru puteți găsi la secțiunea Introducere a acestui document.

Dacă GDM eșuează sau nu funcționează corespunzător, este o idee bună să includeți și informațiile de depanare. Pentru a activa depanarea, configurați cheia debug/Enable ca fiind „adevărată” în fișierul `<etc>/gdm/custom.conf` și reporniți GDM. Apoi folosiți GDM până când eșuează, și rezultatul depanării va fi trimis fișierului de jurnalizare al sistemului (`<var>/log/messages` sau `<var>/adm/messages`, depinde de sistemul de operare). Dacă distribuiți acest rezultat comunității GDM printr-un raport de defecțiune sau email, vă rugăm să includeți informația de depanare a programului GDM și nu întregul fișier ținând cont că poate fi foarte mare. Dacă nu vedeți niciun rezultat al programului GDM în jurnalizarea sistemului, este posibil să trebuiască să configurați jurnalizarea sistemului (citiți paginile manualului syslog).

### GDM nu pornește

Există multe probleme ce pot cauza programul GDM să eșueze la pornire, dar această secțiune va prezenta câteva probleme comune și modalități de a urmări o problemă cu pornirea GDM. Unele probleme vor cauza GDM să răspundă cu un mesaj de eroare sau un dialog când se încearcă pornirea, dar poate fi dificil de localizat problemele când GDM eșuează silențios.

Verificați dacă serverul X a fost configurat corespunzător. Fișierul de configurare GDM conține o comandă în secțiunea [server-Standard] care este folosită pentru a porni serverul X. Verificați dacă această comandă funcționează pe sistemul dumneavoastră. Executarea comenzii din terminal ar trebui să pornească serverul X. Dacă acest lucru eșuează, cel mai probabil problema are de-a face cu configurările serverului X. Urmăriți jurnalizarea erorilor serverului X căutând o idee despre problemă. Problema poate fi și că serverul X al dumneavoastră necesită opțiuni de linii de comandă diferite. Dacă este cazul acesta, modificați comanda serverului X din fișierul de configurație pentru a fi corectă pentru sistemul dumneavoastră.

Verificați dacă dosarul `/tmp` are apartenență și permisiuni corespunzătoare și că sistemul de fișiere al calculatorului dumneavoastră nu este plin.

## Licență

Acesta este un program liber; puteți să il redistribuiți și/sau modifcați sub termenii GNU General Public License, după cum a fost publicată de către Free Software Foundation; fie versiunea a 2-a licenței, fie (la alegerea dumneavoastră) orice versiune ulterioară.

Acest program este distribuit în speranța că va fi folositor, dar FĂRĂ NICIO GARANȚIE; chiar și fără garanția implicită de CALITATE ACCEPTABILĂ DIN PUNCT DE VEDERE COMERCIAL sau POTRIVIRE PENTRU UN SCOP PARTICULAR. Consultați GNU General Public License pentru mai multe informații

O copie a licenței GNU General Public License este inclusă ca un apendice în Ghidul utilizatorilor GNOME. Puteți obține o copie a licenței GNU General Public License și de la fundația Free Software Foundation, vizitând situl acestora sau scriind la adresa

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