# GNOME priručnik upravitelja zaslona

0.0
2008-09

GDM je GNOME Upravitelj zaslonom, grafički program za prijavu.

Martin
K.
Petersen

    mkp@mkp.net

George
Lebl

    jirka@5z.com

Jon
McCann

    mccann@jhu.edu

Ray
Strode

    rstrode@redhat.com

Brian
Cameron

    Brian.Cameron@Oracle.COM

1998
1999
Martin K. Petersen
2001
2003
2004
George Lebl
2003
2007
2008
Red Hat, Inc.
2003
2011
Oracle i/ili njegove podružnice. Sva prava pridržana.
Ovaj priručnik opisuje 2.26.0 GNOME Upravitelja zaslona. Posljednji puta je nadopunjen 02/10/2009.

## Izrazi i sporazumi korišteni u ovome priručniku

Ovaj priručnik opisuje 2.26.0 GNOME Upravitelja zaslona. Posljednji puta je nadopunjen 02/10/2009.

Odabiratelj - Program koji se koristi za odabir udaljenog računala i udaljeno upravljanje zaslonom na priključenom zaslonu (`gdm-host-chooser`).

FreeDesktop - Organizacija koja pruža standarde za radne površine, poput Specifikacije unosa radne površine (Desktop Entry Specification) koju koristi GDM. http://www.freedesktop.org.

GDM - GNOME Upravitelj zaslonima. Koristi se za opisivanje softverskog paketa u cjelini.

Dobrodošlica - grafički prozor prijave (pružan od strane `gnome-shell`).

PAM - Priključiv mehanizamm ovjere

XDMCP - X Protokol upravljanja zaslonom

X poslužitelj - Implementacija X Window sustava. Primjerice, Xorg X poslužitelj koji osigurava X.org zaklada http://www.x.org.

Putanje koje počinju riječju u izlomljenim zagradama relativne su prema instalacijskom prefiksu. tj. `<share>/pixmaps/` odnosi se na `/usr/share/pixmaps` ako je GDM podešen s `--prefix=/usr`.

## Pregled

### Uvod

GNOME Upravitelj zaslona (GDM) je upravitelj zaslona koji implementira sve bitne značajke potrebne za upravljanje priključenim i udaljenim zaslonima. GDM je napisan iz početka i ne sadrži XDM ili X Consortium kôd.

Zapamtite da je GDM moguće podešavati, a mnoge postavke podešavanja utječu na sigurnost. Problemi kojih treba biti svjestan istaknuti su u ovom dokumentu.

Zapamtite da pojedini operativni sustavi podešavaju GDM tako da se ponaša drugačije od zadanih vrijednosti kako je opisano u ovom dokumentu. Ako se GDM ne ponaša kao što je dokumentirano, tada provjerite razlikuje li se neko povezano podešavanje od ovdje opisanog.

Za dodatne GDM informacije, posjetite web stranicu projekta na http://wiki.gnome.org/Projects/ GDM.

Za raspravu ili upite o GDM-u, pogledajte popis adrese e-pošte

    gdm-list@gnome.org

Ovaj popis je arhiviran i dobar je izvor za provjeru traženog odgovora na uobičajena pitanja. Ovaj popis je arhiviran na http://mail.gnome.org/archives/gdm-list/ i ima mogućnost pretrage poruka po ključnim riječima.

Pošaljite sve izvještaje grešaka ili zahtjeve za poboljšanjem u "gdm" kategoriju na http://bugzilla.gnome.org .

### Stabilnost sučelja

GDM 2.20 i starija izdanja podržavaju stabilna sučelja podešavanja. Ipak, baza kôda u potpunosti je ponovno napisana za GDM 2.22 i nije potpuno kompatibilna sa starijim izdanjima. To je dijelom zato što stvari funkcioniraju drugačije, stoga neke mogućnosti jednostavno nemaju smisla, dijelom zato što neke mogućnosti nikad nisu imale smisla, a dijelom zato što neke funkcije još nisu ponovno implementirane.

Sučelja koja su i dalje podržana na stabilan način uključuju Init, PreSession, PostSession, PostLogin i Xsession skripte. Pojedine mogućnosti podešavanja pozadinskog programa u `<etc>/gdm/custom.conf` datoteci i dalje su podržane. Podržani su i dalje `~/.dmrc` i lokacije slika preglednika lica.

GDM 2.20 i starija izdanja podržavali su mogućnost upravljanja višestrukim zaslonima s odvojenim grafičkim karticama, poput onih koje se koriste u okruženjima terminalskih poslužitelja, prijavu u prozor putem programa kao što su Xnest ili Xephyr, gdmsetup program, XML temeljene teme dobrodošlice i mogućnost pokretanja XDMCP odabirtatelja sa zaslona prijave. Ove značajke nisu dodane tijekom ponovnog pisanja 2.22 izdanja.

### Funkcionalni opis

GDM je odgovoran za upravljanje zaslonima u sustavu. To uključuje ovjeru korisnika, pokretanje korisničke sesije i prekid korisničke sesije. GDM je moguće podesiti, a načini na koji se može podesiti opisani su u odlomku "GDM podešavanje" ovog dokumenta. GDM je dostupan i korisnicima s invaliditetom.

GDM pruža mogućnost upravljanja zaslonom glavne konzole i zaslonima pokrenutim putem VT-a. Integriran je s drugim programima, kao što je Fast User Switch Applet (FUSA) i gnome-screensaver za upravljanje višestrukim zaslonima na konzoli putem sučelja Virtualni Terminal X poslužitelja (VT). Može upravljati i XDMCP zaslonima.

Neovisno o vrsti zaslona, GDM će učiniti sljedeće kada upravlja zaslonom. Pokrenut će proces X poslužitelja, zatim pokrenuti `Init` skriptu kao korijenski korisnik i pokrenuti program dobrodošlice na zaslonu.

Program dobrodošlice pokreće se kao nepovlašteni "gdm" korisnik/grupa. Ovaj korisnik i grupa opisani su u odjeljku "Sigurnost" ovog dokumenta. Glavne funkcije programa dobrodošlice su pružanje mehanizma za odabir računa prijave i pokretanje dijaloga između korisnika i sustava pri ovjeri tog računa. Proces ovjere pokreću Pluggable Authentication Modules (PAM). PAM moduli određuju koji se upiti (ako postoje) prikazuju korisniku za ovjeru prijave. U prosječnom sustavu, program dobrodošlice tražit će korisničko ime i lozinku za ovjeru prijave. Ipak, pojedini sustavi mogu biti podešeni za korištenje dodatnih mehanizama poput čitača otisaka prstiju ili pametnih kartica. GDM se može podesiti da podržava ove alternativne prijave paralelno s proširenjima prijave programa dobrodošlice i mogućnosti `--enable-split-authentication` `./configure`, ili jedne po jedne putem PAM sustava podešavanja.

Proširenje pametne kartice može se omogućiti ili onemogućiti putem `org.gnome.display-manager.extensions.smartcard.active` ključa postavki.

Isto tako, proširenje otiska prsta može se omogućiti ili onemogućiti putem `org.gnome.display-manager.extensions.fingerprint.active` gsettings ključa.

GDM i PAM mogu se podesiti da ne zahtijevaju nikakav unos, što će uzrokovati da se GDM automatski prijavi i jednostavno pokrene sesiju, što može biti korisno za pojedina okruženja, poput sustava s jednim korisnikom ili kioscima.

Kao dodatak ovjeri prijave, program dobrodošlice omogućuje korisniku odabir sesije i jezika koji će koristiti. Sesije su određene datotekama koje završavaju .desktop sufiksom, a više informacija o tim datotekama možete pronaći u odlomku "GDM korisnička sesija i podešavanje jezika" u ovom dokumentu. Po zadanome, GDM je podešen za prikaz preglednika lica tako da korisnik može odabrati svoj korisnički račun klikom na sliku umjesto upisivanja svog korisničkog imena. GDM prati korisnikovu zadanu sesiju i jezik u korisnikovoj `~/.dmrc` datoteci i koristit će te zadane postavke ako korisnik nije odabrao sesiju ili jezik u korisničkom sučelju za prijavu.

Nakon ovjere korisnika, pozadinski program pokreće `PostLogin` skriptu kao korijenski korisnik, zatim pokreće `PreSession` skriptu kao korijenski korisnik. Nakon pokretanja ovih skripti, pokreće se korisnička sesija. Kada korisnik izađe iz svoje sesije, `PostSession` skripta se pokreće kao korijenski korisnik. Ove se skripte ponašaju kao spojnice za distribucije i krajnje korisnike u svrhu prilagodbe upravljanja sesijama. Primjerice, korištenjem ovih spojnica možete postaviti sustav koji stvara korisnički $HOME direktorij u hodu i briše ga nakon odjave. Razlika između `PostLogin` i `PreSession` skripti je u tome što se `PostLogin` pokreće prije poziva pam_open_session stoga je ona pravo mjesto za prilagodbu svega potrebnog za pokretanje prije pokretanja korisničke sesije. Skripta `PreSession` poziva se nakon pokretanja sesije.

### Panel dobrodošlice

Program GDM dobrodošlice prikazuje panel pričvršćen na dnu zaslona koji pruža dodatnu funkcionalnost. Kada je korisnik odabran, panel mu omogućuje odabir sesije, jezika i rasporeda tipkovnice koji će koristiti nakon prijave. Izbornik rasporeda tipkovnice još mijenja i raspored tipkovnice koji se koristi pri upisivanju lozinke. Panel sadrži područje usluge prijave za napuštanje ikona stanja. Pojedini primjeri ikona stanja uključuju ikonu baterije trenutnu potrošnje baterije i ikonu omogućavanja značajki pristupačnosti. Program dobrodošlice isto nudi tipke koje korisniku omogućuju isključivanje ili ponovno pokretanje sustava, moguće je podesiti GDM da ne prikazuje te tipke, po potrebi. GDM se može podesiti putem PolicyKita (ili putem RBAC-a na Oracle Solarisu) da od korisnika zahtijeva odgovarajuću ovjeru prije pokretanja isključivanja ili ponovnog pokretanja.

Zapamtite da su značajke rasporeda tipkovnice dostupne samo na sustavima koji podržavaju libxklavier.

### Pristupačnost

GDM podržava "Pristupačnu prijavu", omogućujući korisnicima prijavu na svoju radnu površinu čak i ako ne mogu jednostavno koristiti zaslon, miš ili tipkovnicu na uobičajeni način. Tehnologija pristupačnosti (AT) ima značajke poput zaslonske tipkovnice, čitača zaslona, povećala zaslona i Xserver AccessX pristupačnost tipkovnice. Po potrebi, moguće je omogućiti ikone i upravljanja velikim tekstom i visokim kontrastom. Pogledajte odlomak "Podešavanje pristupačnosti" u dokumentu za više informacija o tome kako se različite značajke pristupačnosti mogu podesiti.

Na pojedinim operativnim sustavima, potrebno je osigurati da GDM korisnik bude član "audio" grupe za AT programe koji zahtijevaju zvučni izlaz (poput tekst-u-govor) kako bi bio funkcionalan.

### GDM preglednik lica

Preglednik lica je sučelje koje korisnicima omogućuje odabir korisničkog imena klikom na sliku. Ova se značajka može omogućiti ili onemogućiti putem GSettings org.gnome.login-screen disable-user-list ključa i uključena je po zadanome. Kada je onemogućena, korisnici moraju ručno upisati svoje puno korisničko ime. Kada je omogućena, prikazuje sve lokalne korisnike koji su dostupni za prijavu na sustav (svi korisnički računi određeni u /etc/passwd datoteci koji imaju valjanu ljusku i dovoljno visok UID) i udaljene korisnike koji su se nedavno prijavili. Preglednik lica u GDM 2.20 i starijim izdanjima pokušao bi prikazati sve udaljene korisnike, što je uzrokovalo probleme s performansama u velikim, poslovnim implementacijama.

Preglednik lica podešen je da prikaže korisnike koji se najčešće prijavljuju na vrhu popisa. Ovo pomaže osigurati korisnicima koji se često prijavljuju brži pronalazak svoje sliku za prijavu.

Preglednik lica podržava "pretragu unaprijed" koja dinamički pomiče odabir lica dok korisnik tipka odgovarajuće korisničko ime na popisu. To znači da će korisnik s dugim korisničkim imenom morati upisati samo prvih nekoliko znakova korisničkog imena prije nego što se odabere ispravna stavka na popisu.

Ikone koje koristi GDM, administrator sustava može instalirati globalno ili se mogu nalaziti u korisničkim osobnim direktorijima. Ako su instalirane globalno, trebale bi biti u `<share>/pixmaps/faces/` direktoriju, a naziv datoteke trebao bi biti ime korisnika. Datoteke sa slikom lica trebale bi biti standardne slike koje GTK+ može čitati, poput PNG ili JPEG formata. Ikone lica smještene u globalnom direktoriju lica moraju biti čitljive GDM korisniku.

Ako nema globalne ikone za korisnika, GDM će datoteku slike tražiti u korisnikovom $HOME direktoriju. GDM će prvo potražiti sliku lica korisnika u `~/.face`. Ako se ne pronađe, pokušat će `~/.face.icon`. Ako i dalje nije pronađena, koristit će vrijednost određenu za "face/picture=" u `~/.gnome2/gdm` datoteci.

Ako korisnik nema određenu sliku lica, GDM će koristiti ikonu "stock_person" određenu u trenutnoj GTK+ temi. Ako takva slika nije određena, vratit će se na generičku sliku lica.

Zapamtite da učitavanje i promjena veličine ikona lica smještenih u osobnim direktorijima udaljenih korisnika može biti dugotrajan zadatak. Budući da nije praktično učitavati slike preko NIS-a ili NFS-a, GDM ne pokušava učitati slike lica iz udaljenih osobnih direktorija.

Kada je preglednik uključen, valjana korisnička imena na računalu su svima dostupna. Ako je XDMCP omogućen, tada su korisnička imena dostupna i udaljenim korisnicima. Ovo, naravno, donekle ograničava sigurnost budući da zlonamjerni korisnik ne mora pogađati valjana korisnička imena. U pojedinim vrlo restriktivnim okruženjima preglednik lica možda neće biti prikladan.

### XDMCP

GDM pozadinski program se može podesiti da osluškuje i upravlja zahtjevima Protokola upravljanja X zaslona (XDMCP) s udaljenih zaslona. Po zadanome XDMCP podrška je isključena, ali se po potrebi može omogućiti. Ako je GDM izgrađen s podrškom za TCP Wrapper, tada će pozadinski program odobriti pristup samo poslužiteljima navedenim u odjeljku GDM usluge u TCP Wrappers datoteci podešavanja.

GDM uključuje nekoliko mjera koje ga čine otpornijim na napade uskraćivanjem usluge na XDMCP pozadinskom programu. Mnoštvo parametara protokola, čekanja rukovanja itd. mogu se precizno prilagoditi. Zadano podešavanje trebalo bi razumno raditi na većini sustava.

GDM po zadanome osluškuje XDMCP zahtjeve na normalnom UDP ulazu koji se koristi za XDMCP, ulaz 177 i odgovorit će na QUERY i BROADCAST_QUERY zahtjeve slanjem WILLING paketa pokretaču.

GDM se može podesiti da poštuje INDIREKTNE zahtjeve i predstavlja biratelja poslužitelja udaljenog zaslona. GDM će zapamtiti izbor korisnika i proslijediti sljedeće zahtjeve odabranom upravitelju. GDM još podržava i proširenje protokola koje će zaboraviti preusmjeravanje nakon što korisnikovo povezivanje uspije. Ovo proširenje je podržano samo ako su oba pozadinska programa GDM. Transparentan je i zanemarit će ga XDM ili drugi pozadinski programi koji implementiraju XDMCP.

Ako se čini da XDMCP ne radi, provjerite jesu li svi poslužitelji navedeni u `/etc/hosts` datoteci.

Pogledajte odlomak "Sigurnost" za informacije o sigurnosnim problemima kada se koristi XDMCP.

### Zapisivanje

GDM koristi syslog za zapisivanje grešaka i stanja. Može zapisivati i informacije otklanjanja grešaka, što može biti korisno za pronalaženje problema ako GDM ne radi ispravno. Zapisivanje otklanjanja grešaka može se omogućiti postavljanjem debug/Enable ključa na "istina" u `<etc>/gdm/custom.conf` datoteci.

Zapis iz raznih X poslužitelja pohranjuje se u GDM direktorij zapisa, koji je uobičajeno `<var>/log/gdm/`. Sve poruke X poslužitelja spremaju se u datoteku pridruženu vrijednosti zaslona, `<display>.log`.

Izlaz sesije prenosi se kroz GDM pozadinski program u `~/$XDG_CACHE_HOME/gdm/session.log` datoteku koja se uobičajeno proširuje na `~/.cache/gdm/ session.log`. Datoteka se prebriše pri svakoj prijavi, tako da će odjava i ponovna prijava istog korisnika putem GDM-a uzrokovati gubitak svih poruka iz prijašnje sesije.

Zapamtite da ako GDM iz nekog razloga ne može stvoriti ovu datoteku, stvorit će se pričuvna datoteka naziva `~/$XDG_CACHE_HOME/gdm/session.log.XXXXXXXX` gdje su `XXXXXXXX` neki naizmjenično odabrani znakovi.

### Brza zamjena korisnika

GDM omogućuje istovremenu prijavu više korisnika. Nakon što je jedan korisnik prijavljen, drugi se korisnici mogu prijaviti putem zamjenjivača korisnika na GNOME panelu ili pomoću "Zamijeni korisnika" tipke u dijalogu zaključanog zaslona GNOME čuvara zaslona. Aktivna sesija može se mijenjati naprijed i natrag koristeći isti mehanizam. Zapamtite da pojedine distribucije možda neće dodati zamjenu korisnika zadanom podešavanju panela. Zamjena korisnika može se dodati pomoću sadržajnog izbornika panela.

Zapamtite da je ova značajka dostupna na sustavima koji podržavaju virtualne terminale. Ova značajka neće funkcionirati ako virtualni terminali nisu dostupni.

## Sigurnost

### GDM korisnik i grupe

Iz sigurnosnih razloga preporuča se namjenski ID korisnika i grupe za pravilan rad. Ovaj korisnik i grupa uobičajeno su "gdm" na većini sustava, ali se mogu podesiti za bilo kojeg korisnika ili grupu. Svi GDM GUI programi pokreću se kao ovaj korisnik, tako da se programi koji komuniciraju s korisnikom pokreću u sigurnom okruženju. Ovaj korisnik i grupa trebaju imati ograničene dozvole.

Jedina posebna dozvola koju "gdm" korisnik zahtijeva je mogućnost čitanja i pisanja Xauth datoteka u `<var>/run/gdm` direktorij. Direktorij `<var>/run/gdm` trebao bi imati root:gdm vlasništvo i 1777 dozvole.

Ni pod kojim okolnostima ne bi trebali podesiti GDM korisnika/grupu na korisnika kojem korisnik može lako pristupiti, poput korisnik `nobody`. Svaki korisnik koji dobije pristup Xauth ključu može njuškati i upravljati pokrenutim GUI programima koji su pokrenuti u pridruženoj sesiji ili izvršiti napad uskraćivanjem usluge. Bitno je osigurati pravilno podešen sustav tako da samo "gdm" korisnik ima pristup ovim datotekama i da se nije lako prijaviti na ovaj račun. Primjerice, račun bi trebao biti postavljen tako da nema lozinku ili da dopušta nekorijenskim korisnicima prijavu na račun.

Podešavanje GDM dobrodošlice pohranjeno je u GConf. Kako bi GDM korisnik mogao pisati podešavanje, potrebno je da "gdm" korisnik ima $HOME direktorij s dozvolom pisanja. Korisnici mogu podesiti zadano GConf podešavanje po potrebi kako bi izbjegli da "gdm" korisniku daju $HOME direktorij s dozvolom pisanja. Ipak, pojedine GDM značajke mogu biti onemogućene ako se ne mogu zapisivati podaci o stanju u GConf podešavanju.

### PAM

GDM koristi PAM za ovjeru prijave. PAM je kratica za Pluggable Authentication Module, a koristi ga većina programa koji zahtijevaju ovjeru na vašem računalu. Omogućuje administratoru podešavanje specifičnog ponašanja ovjere za različite programe prijave (kao što su ssh, GUI za prijavu, čuvar zaslona itd.)

PAM je složen i vrlo podesiv, a ova dokumentacija nema namjeru to opširno objašnjavati. Umjesto toga, namjera je dati pregled kako je PAM podešavanje povezano s GDM-om, kako se PAM uobičajeno podešava s GDM-om i koji su poznati problemi. Očekivano je da osoba koja ima potrebu podesiti PAM mora dodatno pročitati PAM dokumentaciju kako bi razumjela PAM podešavanje i pojmove koji se koriste u ovom odlomku.

PAM podešavanje ima različito, ali slično sučelje na raznim operativnim sustavima, stoga provjerite pam.d ili pam.conf stranice priručnika za pojedinosti. Obavezno pročitajte PAM dokumentaciju i upoznajte se sa sigurnosnim implikacijama bilo kakvih promjena koje namjeravate napraviti u svome podešavanju.

Zapamtite da GDM po zadanome koristi PAM "gdm" naziv usluge za normalnu prijavu i PAM "gdm-autologin" naziv usluge za automatsku prijavu. Ove usluge možda nisu određene u vašoj pam.d ili pam.conf datoteci podešavanja. Ako nema unosa, GDM će koristiti zadano PAM ponašanje. Na većini sustava ovo bi trebalo dobro funkcionirati. Ipak, značajka automatske prijave možda neće raditi ako usluga gdm-autologin nije određena.

Skripta `PostLogin` pokreće se prije pam_open_session poziva , a skripta `PreSession` se poziva nakon. Ovo omogućuje administratoru sustava dodavanje bilo koje skripte procesu prijave prije ili nakon što PAM pokrene sesiju.

Ako želite učiniti da GDM radi s drugim vrstama mehanizama ovjere (poput čitača otiska prsta ili pametne kartice), tada bi to trebali implementirati korištenjem servisnog modula PAM za željenu vrstu ovjere, umjesto pokušajem izravne izmjene GDM kôda. Pogledajte PAM dokumentaciju na vašem sustavu. O tome kako to učiniti često se raspravlja na

    gdm-list@gnome.org

mailing listi, tako da možete pogledati arhive popisa za više informacija.

PAM ima određena ograničenja u pogledu mogućnosti rada s više vrsta ovjere istovremeno, poput podrške mogućnosti prihvaćanja pametne kartice i mogućnosti upisivanja korisničkog imena i lozinke u program prijave. Postoje tehnike koje se koriste da bi ovo funkcioniralo, a najbolje je istražiti kako se ovaj problem uobičajeno rješava prilikom postavljanja takvog podešavanja.

Ako automatska prijava ne radi na sustavu, provjerite je li "gdm-autologin" PAM određen u PAM podešavanju. Kako bi ovo funkcioniralo, potrebno je koristiti PAM modul koji jednostavno ne vrši ovjeru ili koji jednostavno vraća PAM_SUCCESS sa svih svojih javnih sučelja. Pod pretpostavkom da vaš sustav ima pam_allow.so PAM modul koji to radi, PAM podešavanje za omogućavanje "gdm-autologin" izgledao bi ovako:

           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

Gornja postavka neće uzrokovati stvaranje unosa posljednje prijave. Ako želite unos posljednje prijave, tada koristite sljedeće za sesiju:

           gdm-autologin session required pam_unix_session.so.1

Ako računalo koristi više ljudi, što automatsku prijavu čini neprikladnom, možete dopustiti pojedinim korisnicima prijavu bez upisa svojih lozinki. Ova se značajka može omogućiti kao mogućnost po korisniku u user-admin alatu iz gnome-system-tools; to se postiže provjerom je li korisnik član Unix grupe pod nazivom "nopasswdlogin" prije nego što se zatraži lozinka. Kako bi ovo radilo, PAM datoteka podešavanja za uslugu "gdm" mora sadržavati redak kao što je:

          gdm auth  sufficient  pam_succeed_if.so  user ingroup nopasswdlogin

### utmp i wtmp

GDM stvara utmp i wtmp unose baze podataka korisničkih računa nakon prijave i odjave u sesiju. Baza podataka utmp sadrži informacije o korisničkom pristupu i informacije računa kojima se pristupa naredbama poput `finger`, `last`, `login` i `who`. Baza podataka wtmp sadrži povijest pristupa korisnika i informacija računa za bazu podataka utmp. Pogledajte utmp i wtmp stranice priručnika na vašem sustavu za više informacija.

### Shema ovjere X poslužitelja

Datoteke ovjere X poslužitelja pohranjuju se u novostvorenom poddirektoriju `<var>/run/gdm` pri pokretanju. Ove se datoteke koriste za pohranjivanje i dijeljenje "lozinke" između X klijenta i X poslužitelja. Ova "lozinka" je jedinstvena za svaku prijavljenu sesiju, stoga korisnici iz jedne sesije ne mogu njuškati korisnike iz druge.

GDM podržava samo MIT-MAGIC-COOKIE-1 shemu ovjere X poslužitelja. Ubičajeno malo se dobiva od drugih shema i do sada nije uložen nikakav trud da se one implementiraju. Budite posebno oprezni pri XDMCP korištenju jer kolačić ovjere X poslužitelja ide preko žice kao običan tekst. Ako je njuškanje moguće, napadač bi mogao jednostavno njuškati vašu lozinku ovjere dok se prijavljujete, bez obzira koja se shema ovjere koristi. Ako je njuškanje moguće i nepoželjno, tada bi trebali koristiti ssh za tuneliranje X povezivanja umjesto XDMCP-a. Možete zamisliti XDMCP kao neku vrstu grafičkog telneta, koji ima iste sigurnosne probleme. U većini slučajeva, ssh -Y treba imati prednost nad GDM-ovim XDMCP značajkama.

### XDMCP sigurnost

Iako je vaš zaslon zaštićen kolačićima, XEvents i pritisci tipki upisani pri upisu lozinki, i dalje će ići preko žice u običnom tekstu. Jednostavno ih je presresti.

XDMCP je prvenstveno koristan za pokretanje malih klijenta poput terminal laboratorija. Ti mali klijenti trebat će mrežu samo za pristup poslužitelju, stoga je najbolje sigurnosno pravilo imati te male klijente na zasebnoj mreži kojoj se ne može pristupiti izvana i mogu se povezati samo s poslužiteljem. Jedina točka s koje trebate pristup izvana je poslužitelj. Ova vrsta postavljanja nikada ne bi trebala koristiti neupravljano čvorište ili drugu mrežu koja se može njuškati.

### XDMCP upravljanje pristupom

XDMCP upravljanje pristupom vrši se pomoću TCP wrappera. Moguće je kompilirati GDM bez podrške za TCP wrapper, tako da ova značajka možda nije podržana na pojedinim operativnim sustavima.

Trebali bi koristiti naziv pozadinskog programa `gdm` u `<etc>/hosts.allow` i `<etc>/hosts.deny` datotekama. Primjerice, za zabranu prijave računala sa `.zla.domena`, dodajte

    gdm: .zla.domena

u `<etc>/hosts.deny`. Još možete dodati

    gdm: .vaša.domena

u `<etc>/hosts.allow` ako inače zabranjujete sve usluge sa svih poslužitelja. Pogledajte hosts.allow(5) stranicu priručnika za pojedinosti.

### Sigurnost vatrozida

Iako GDM pokušava nadmudriti potencijalne napadače koji pokušavaju iskoristiti XDMCP, ipak se savjetuje da blokirate XDMCP ulaz (uobičajeno UDP ulaz 177) na vatrozidu osim ako je stvarno potreban. GDM štiti od napada uskraćivanjem usluge, ali X protokol je još uvijek inherentno nesiguran i trebao bi se koristiti samo u kontroliranim okruženjima. Svako udaljeno povezivanje zauzima mnogo resursa, tako da je mnogo lakše izvršiti napad uskraćivanjem usluge putem XDMCP-a nego napadati web poslužitelj.

Pametno je blokirati sve ulaze X poslužitelja. To su TCP ulazi 6000+ (jedan za svaki broj prikaza) u vatrozidu. Zapamtite da će GDM koristiti brojeve prikaza 20 i više za prilagodljive poslužitelje na zahtjev.

X nije baš siguran protokol kada se koristi preko Interneta, a XDMCP je još manje siguran.

### PolicyKit

GDM se može podesiti da koristi PolicyKit kako bi administratoru sustava dopustio upravljanje omogućavanjem tipki isključivanja i ponovnog pokretanja u zaslonu prijave na zaslonu dobrodošlice.

Tim tipkama se upravlja radnjama `org.freedesktop.consolekit.system.stop-multiple-users` i `org.freedesktop.consolekit.system.restart-multiple-users`. Pravila za ove radnje mogu se postaviti pomoću polkit-gnome-authorization alata ili polkit-auth pragrama naredbenog retka.

### RBAC (Upravljanje pristupom temeljenom na ulogama)

GDM se može podesiti da koristi RBAC umjesto PolicyKita. U ovom se slučaju RBAC podešavanje koristi za upravljanje omogućavanjem tipki isključivanja i ponovnog pokretanja u zaslonu prijave na zaslonu dobrodošlice.

Primjerice, na Oracle Solarisu, "solaris.system.shutdown" ovjera se koristi za upravljanje ovim. Jednostavno promijenite `/etc/user_attr` datoteku tako da "gdm" korisnik ima ovu ovlast.

## Podrška za ConsoleKit

GDM uključuje podršku za objavljivanje podataka prijave korisnika s radnim okvirom korisnika i sesijom prijave poznatim kao ConsoleKit. ConsoleKit može pratiti sve trenutno prijavljene korisnike. U tom smislu, može se koristiti kao zamjena za utmp ili utmpx datoteke koje su dostupne na većini Unixoidnih operativnih sustava.

Kada GDM treba stvoriti novi proces prijave korisnika, pozvat će povlašteni način ConsoleKita kako bi otvorio novu sesiju za korisnika. U ovom trenutku GDM isto pruža ConsoleKit informacije o ovoj korisničkoj sesiji poput: ID korisnika, X11 naziva zaslona koji će biti povezan sa sesijom, naziv poslužitelja s kojeg sesija potječe (korisno u slučaju XDMCP sesije ), je li ova sesija priključena ili nije, itd. Kao entitet koji pokreće korisnički proces, GDM je u jedinstvenom položaju da zna sve o korisničkoj sesiji i da mu se vjeruje da će pružiti ove informacije. Korištenje ovog povlaštenog načina ograničeno je korištenjem sigurnosnih pravila sabirnice poruka D-Bus sustava.

U slučaju da se korisnik s postojećom sesijom ovjeri na GDM i zatraži nastavak te postojeće sesije, GDM poziva povlašteni način ConsoleKita za otključavanje dotične sesije. Točne pojedinosti o tome što se događa kada sesija primi ovaj signal za otključavanje nisu određene i specifične su za sesiju. Ipak, većina sesija će kao odgovor otključati čuvar zaslona.

Kada se korisnik odluči odjaviti ili ako se GDM ili sesija neočekivano prekinu, korisnička sesija bit će poništena s ConsoleKita.

## Podešavanje

GDM has a number of configuration interfaces. These include scripting integration points, daemon configuration, greeter configuration, general session settings, integration with gnome-settings-daemon configuration, and session configuration. These types of integration are described in detail below.

### Scripting Integration Points

The GDM script integration points can be found in the `<etc>/gdm/` directory:

    Xsession
    Init/
    PostLogin/
    PreSession/
    PostSession/

The `Init`, `PostLogin`, `PreSession`, and `PostSession` scripts all work as described below.

For each type of script, the default one which will be executed is called "Default" and is stored in a directory associated with the script type. So the default `Init` script is `<etc>/gdm/Init/Default`. A per-display script can be provided, and if it exists it will be run instead of the default script. Such scripts are stored in the same directory as the default script and have the same name as the Xserver DISPLAY value for that display. For example, if the `<Init>/:0` script exists, it will be run for DISPLAY ":0".

All of these scripts are run with root privilege and return 0 if run successfully, and a non-zero return code if there was any failure that should cause the login session to be aborted. Also note that GDM will block until the scripts finish, so if any of these scripts hang, this will cause the login process to also hang.

When the Xserver for the login GUI has been successfully started, but before the login GUI is actually displayed, GDM will run the `Init` script. This script is useful for starting programs that should be run while the login screen is showing, or for doing any special initialization if required.

After the user has been successfully authenticated GDM will run the `PostLogin` script. This is done before any session setup has been done, including before the pam_open_session call. This script is useful for doing any session initialization that needs to happen before the session starts. For example, you might setup the user's $HOME directory if needed.

After the user session has been initialized, GDM will run the `PreSession` script. This script is useful for doing any session initialization that needs to happen after the session has been initialized. It can be used for session management or accounting, for example.

When a user terminates their session, GDM will run the `PostSession` script. Note that the Xserver will have been stopped by the time this script is run, so it should not be accessed.

Note that the `PostSession` script will be run even when the display fails to respond due to an I/O error or similar. Thus, there is no guarantee that X applications will work during script execution.

All of the above scripts will set the `$RUNNING_UNDER_GDM` environment variable to `yes`. If the scripts are also shared with other display managers, this allows you to identify when GDM is calling these scripts, so you can run specific code when GDM is used.

### Podešavanje automatskog pokretanja

The `<share>/gdm/autostart/LoginWindow` directory contains files in the format specified by the "FreeDesktop.org Desktop Application Autostart Specification". Standard features in the specification may be used to specify programs that should auto-restart or only be launched if a GConf configuration value is set, etc.

Any `.desktop` files in this directory will cause the associated program to automatically start with the login GUI greeter. By default, GDM is shipped with files which will autostart the gdm-simple-greeter login GUI greeter itself, the gnome-power-manager application, the gnome-settings-daemon, and the metacity window manager. These programs are needed for the greeter program to work. In addition, desktop files are provided for starting various AT programs if the configuration values specified in the Accessibility Configuration section below are set.

### Xsession skripta

There is also an `Xsession` script located at `<etc>/gdm/Xsession` which is called between the `PreSession` and the `PostSession` scripts. This script does not support per-display like the other scripts. This script is used for actually starting the user session. This script is run as the user, and it will run whatever session was specified by the Desktop session file the user selected to start.

### Podešavanje pozadinskog programa

The GDM daemon is configured using the `<etc>/gdm/custom.conf` file. Default values are stored in GConf in the `gdm.schemas` file. It is recommended that end-users modify the `<etc>/gdm/custom.conf` file because the schemas file may be overwritten when the user updates their system to have a newer version of GDM.

Note that older versions of GDM supported additional configuration options which are no longer supported in the latest versions of GDM.

The `<etc>/gdm/custom.conf` file is in the `keyfile` format. Keywords in brackets define group sections, strings before an equal sign (=) are keys and the data after equal sign represents their value. Empty lines or lines starting with the hash mark (#) are ignored.

The file `<etc>/gdm/custom.conf` supports the "[daemon]", "[security]", and "[xdmcp]" group sections. Within each group, there are particular key/value pairs that can be specified to modify how GDM behaves. For example, to enable timed login and specify the timed login user to be a user named "you", you would modify the file so it contains the following lines:

    [daemon]
    TimedLoginEnable=true
    TimedLogin=you

A full list of supported configuration keys follow:

#### [chooser]

Multicast

      Multicast=false

  If true and IPv6 is enabled, the chooser will send a multicast query to the local network and collect responses from the hosts who have joined multicast group.

MulticastAddr

      MulticastAddr=ff02::1

  This is the Link-local multicast address.

#### [daemon]

TimedLoginEnable

      TimedLoginEnable=false

  If the user given in `TimedLogin` should be logged in after a number of seconds (set with `TimedLoginDelay`) of inactivity on the login screen. This is useful for public access terminals or perhaps even home use. If the user uses the keyboard or browses the menus, the timeout will be reset to `TimedLoginDelay` or 30 seconds, whichever is higher. If the user does not enter a username but just hits the ENTER key while the login program is requesting the username, then GDM will assume the user wants to login immediately as the timed user. Note that no password will be asked for this user so you should be careful, although if using PAM it can be configured to require password entry before allowing login. Refer to the "Security->PAM" section of the manual for more information, or for help if this feature does not seem to work.

TimedLogin

      TimedLogin=

  This is the user that should be logged in after a specified number of seconds of inactivity.

  If the value ends with a vertical bar | (the pipe symbol), then GDM will execute the program specified and use whatever value is returned on standard out from the program as the user. The program is run with the DISPLAY environment variable set so that it is possible to specify the user in a per-display fashion. For example if the value is "/usr/bin/getloginuser|", then the program "/usr/bin/getloginuser" will be run to get the user value.

TimedLoginDelay

      TimedLoginDelay=30

  Delay in seconds before the `TimedLogin` user will be logged in.

AutomaticLoginEnable

      AutomaticLoginEnable=false

  If true, the user given in `AutomaticLogin` should be logged in immediately. This feature is like timed login with a delay of 0 seconds.

AutomaticLogin

      AutomaticLogin=

  This is the user that should be logged in immediately if `AutomaticLoginEnable` is true.

  If the value ends with a vertical bar | (the pipe symbol), then GDM will execute the program specified and use whatever value is returned on standard out from the program as the user. The program is run with the DISPLAY environment variable set so that it is possible to specify the user in a per-display fashion. For example if the value is "/usr/bin/getloginuser|", then the program "/usr/bin/getloginuser" will be run to get the user value.

Korisnik

      User=gdm

  The username under which the greeter and other GUI programs are run. Refer to the `Group` configuration key and to the "Security->GDM User And Group" section of this document for more information.

Group

      Group=gdm

  The group name under which the greeter and other GUI programs are run. Refer to the `User` configuration key and to the "Security->GDM User And Group" section of this document for more information.

#### Mogućnosti otklanjanja grešaka

##### [debug]

Enable

      Enable=false

  To enable debugging, set the debug/Enable key to "true" in the `<etc>/gdm/custom.conf` file and restart GDM. Then debug output will be sent to the system log file (`<var>/log/messages` or `<var>/adm/messages` depending on your Operating System).

#### Greeter mogućnosti

##### [greeter]

IncludeAll

      IncludeAll=true

  If true, then the face browser will show all users on the local machine. If false, the face browser will only show users who have recently logged in.

  When this key is true, GDM will call fgetpwent() to get a list of local users on the system. Any users with a user id less than 500 (or 100 if running on Oracle Solaris) are filtered out. The Face Browser also will display any users that have previously logged in on the system (for example NIS/LDAP users). It gets this list via calling the `ck-history` ConsoleKit interface. It will also filter out any users which do not have a valid shell (valid shells are any shell that getusershell() returns - /sbin/nologin or /bin/false are considered invalid shells even if getusershell() returns them).

  If false, then GDM more simply only displays users that have previously logged in on the system (local or NIS/LDAP users) by calling the `ck-history` ConsoleKit interface.

Include

      Include=

  Set to a list of users to always include in the Face Browser. This value is set to a list of users separated by commas. By default, the value is empty.

Exclude

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

  Set to a list of users to always exclude in the Face Browser. This value is set to a list of users separated by commas. Note that the setting in the `custom.conf` overrides the default value, so if you wish to add additional users to the list, then you need to set the value to the default value with additional users appended to the list.

#### Mogućnosti sigurnosti

##### [security]

DisallowTCP

      DisallowTCP=true

  If true, then always append `-nolisten tcp` to the command line when starting attached Xservers, thus disallowing TCP connection. This is a more secure configuration if you are not using remote connections.

#### XDCMP Support

##### [xdmcp]

DisplaysPerHost

      DisplaysPerHost=1

  To prevent attackers from filling up the pending queue, GDM will only allow one connection for each remote computer. If you want to provide display services to computers with more than one screen, you should increase this value.

  Note that the number of attached DISPLAYS allowed is not limited. Only remote connections via XDMCP are limited by this configuration option.

Enable

      Enable=false

  Setting this to true enables XDMCP support allowing remote displays/X terminals to be managed by GDM.

  `gdm` listens for requests on UDP port 177. See the Port option for more information.

  If GDM is compiled to support it, access from remote displays can be controlled using the TCP Wrappers library. The service name is `gdm`

  You should add

      gdm:.my.domain

  to your `<etc>/hosts.allow`, depending on your TCP Wrappers configuration. See the hosts.allow man page for details.

  Please note that XDMCP is not a particularly secure protocol and that it is a good idea to block UDP port 177 on your firewall unless you really need it.

HonorIndirect

      HonorIndirect=true

  Enables XDMCP INDIRECT choosing (i.e. remote execution of `gdmchooser`) for X-terminals which do not supply their own display browser.

MaxPending

      MaxPending=4

  To avoid denial of service attacks, GDM has fixed size queue of pending connections. Only MaxPending displays can start at the same time.

  Please note that this parameter does not limit the number of remote displays which can be managed. It only limits the number of displays initiating a connection simultaneously.

MaxSessions

      MaxSessions=16

  Determines the maximum number of remote display connections which will be managed simultaneously. I.e. the total number of remote displays that can use your host.

MaxWait

      MaxWait=30

  When GDM is ready to manage a display an ACCEPT packet is sent to it containing a unique session id which will be used in future XDMCP conversations.

  GDM will then place the session id in the pending queue waiting for the display to respond with a MANAGE request.

  If no response is received within MaxWait seconds, GDM will declare the display dead and erase it from the pending queue freeing up the slot for other displays.

MaxWaitIndirect

      MaxWaitIndirect=30

  The MaxWaitIndirect parameter determines the maximum number of seconds between the time where a user chooses a host and the subsequent indirect query where the user is connected to the host. When the timeout is exceeded, the information about the chosen host is forgotten and the indirect slot freed up for other displays. The information may be forgotten earlier if there are more hosts trying to send indirect queries then `MaxPendingIndirect`.

PingIntervalSeconds

      PingIntervalSeconds=60

  If the Xserver does not respond in the specified number of seconds, then the connection is stopped and the session ended. When this happens the daemon dies with an ALARM signal. Note that GDM 2.20 and earlier multiplied this setting by 2, so it may be necessary to increase the timeout if upgrading from GDM 2.20 and earlier to a newer version.

  Note that GDM in the past used to have a `PingInterval` configuration key which was also in minutes. For most purposes you'd want this setting to be lower than one minute. However since in most cases where XDMCP would be used (such as terminal labs), a lag of more than 15 or so seconds would really mean that the terminal was turned off or restarted and you would want to end the session.

Ulaz

      Port=177

  The UDP port number `gdm` should listen to for XDMCP requests. Do not change this unless you know what you are doing.

Willing

      Willing=<etc>/gdm/Xwilling

  When the machine sends a WILLING packet back after a QUERY it sends a string that gives the current status of this server. The default message is the system ID, but it is possible to create a script that displays customized message. If this script does not exist or this key is empty the default message is sent. If this script succeeds and produces some output, the first line of it's output is sent (and only the first line). It runs at most once every 3 seconds to prevent possible denial of service by flooding the machine with QUERY packets.

### Jednostavno Greeter podešavanje

The GDM default greeter is called the simple Greeter and is configured via GConf. Default values are stored in GConf in the `gdm-simple-greeter.schemas` file. These defaults can be overridden if the "gdm" user has a writable $HOME directory to store GConf settings. These values can be edited using the `gconftool-2` or `gconf-editor` programs. The following configuration options are supported:

#### Greeter Configuration Keys

/apps/gdm/simple-greeter/banner_message_enable

      false (boolean)

  Controls whether the banner message text is displayed.

/apps/gdm/simple-greeter/banner_message_text

      NULL (string)

  Specifies the text banner message to show on the greeter window.

/apps/gdm/simple-greeter/disable_restart_buttons

      false (boolean)

  Controls whether to show the restart buttons in the login window.

/apps/gdm/simple-greeter/disable_user_list

      false (boolean)

  If true, then the face browser with known users is not shown in the login window.

/apps/gdm/simple-greeter/logo_icon_name

      computer (string)

  Set to the themed icon name to use for the greeter logo.

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

      [] (string list)

  Set to a list of languages to be shown by default in the login window. Default value is "[]". With the default setting only the system default language is shown and the option "Other..." which pops-up a dialog box showing a full list of available languages which the user can select.

  Users are not intended to change this setting by hand. Instead GDM keeps track of any languages selected in this configuration key, and will show them in the language combo box along with the "Other..." choice. This way, commonly selected languages are easier to select.

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

      [] (string list)

  Set to a list of keyboard layouts to be shown by default in the login panel. Default value is "[]". With the default setting only the system default keyboard layout is shown and the option "Other..." which pops-up a dialog box showing a full list of available keyboard layouts which the user can select.

  Users are not intended to change this setting by hand. Instead GDM keeps track of any keyboard layouts selected in this configuration key, and will show them in the keyboard layout combo box along with the "Other..." choice. This way, commonly selected keyboard layouts are easier to select.

/apps/gdm/simple-greeter/wm_use_compiz

      false (boolean)

  Controls whether compiz is used as the window manager instead of metacity.

### Podešavanje pristupačnosti

This section describes the accessibility configuration options available in GDM.

#### GDM Accessibility Dialog And GConf Keys

The GDM greeter panel at the login screen displays an accessibility icon. Clicking on that icon opens the GDM Accessibility Dialog. In the GDM Accessibility Dialog, there is a list of checkboxes, so the user can enable or disable the associated assistive tools.

The checkboxes that correspond to the on-screen keyboard, screen magnifier and screen reader assistive tools act on the three GConf keys that are described in the next section of this document. By enabling or disabling these checkboxes, the associated GConf key is set to "true" or "false". When the GConf key is set to true, the assistive tools linked to this GConf key are launched. When the GConf key is set to "false", any running assistive tool linked to this GConf key are terminated. These GConf keys are not automatically reset to a default state after the user has logged in. Consequently, the assistive tools that were running during the last GDM login session will automatically be launched at the next GDM login session.

The other checkboxes in the GDM Accessibility Dialog do not have corresponding GConf keys because no additional program is launched to provide the accessibility features that they offer. These other options correspond to accessibility features that are provided by the Xserver, which is always running during the GDM session.

#### Accessibility GConf Keys

GDM offers the following GConf keys to control its accessibility features:

##### GDM Configuration Keys

/desktop/gnome/interface/accessibility

      false (boolean)

  Controls whether the Accessibility infrastructure will be started with the GDM GUI. This is needed for many accessibility technology programs to work.

/desktop/gnome/applications/at/screen_magnifier_enabled

      false (boolean)

  If set, then the assistive tools linked to this GConf key will be started with the GDM GUI program. By default this is a screen magnifier application.

/desktop/gnome/applications/at/screen_keyboard_enabled

      false (boolean)

  If set, then the assistive tools linked to this GConf key will be started with the GDM GUI program. By default this is an on-screen keyboard application.

/desktop/gnome/applications/at/screen_reader_enabled

      false (boolean)

  If set, then the assistive tools linked to this GConf key will be started with the GDM GUI program. By default this is a screen reader application.

#### Linking GConf Keys to Accessibility Tools

For the screen_magnifier_enabled, the screen_keyboard_enabled, and the screen_reader_enabled GConf keys, the assistive tool which gets launched depends on the desktop files located in the GDM autostart directory as described in the "Autostart Configuration" section of this manual. Any desktop file in the GDM autostart directory can be linked to these GConf key via specifying that GConf key in the AutostartCondition value in the desktop file. So the exact AutostartCondition line in the desktop file could be one of the following:

    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

When an accessibility key is true, then any program which is linked to that key in a GDM autostart desktop file will be launched (unless the Hidden key is set to true in that desktop file). A single GConf key can even start multiple assistive tools if there are multiple desktop files with this AutostartCondition in the GDM autostart directory.

#### Example Of Modifying Accessibility Tool Configuration

For example, if GNOME is distributed with GOK as the default on-screen keyboard, then this could be replaced with a different program if desired. To replace GOK with the on-screen keyboard application "onboard" and additionally activate the assistive tool "mousetweaks" for dwelling support, then the following configuration is needed.

Create a desktop file for onboard and a second one for mousetweaks; for example, onboard.desktop and mousetweaks.desktop. These files must be placed in the GDM autostart directory and be in the format as explained in the "Autostart Configuration" section of this document.

The following is an example `onboard.desktop` file:

    [Desktop Entry]
    Encoding=UTF-8
    Name=Onboard Onscreen Keyboard
    Comment=Use an on-screen keyboard
    TryExec=onboard
    Exec=onboard --size 500x180 -x 20 -y 10
    Terminal=false
    Type=Application
    StartupNotify=true
    Categories=GNOME;GTK;Accessibility;
    AutostartCondition=GNOME /desktop/gnome/applications/at/screen_keyboard_enabled

The following is an example `mousetweaks.desktop` file:

    [Desktop Entry]
    Encoding=UTF-8
    Name=Software Mouse-Clicks
    Comment=Perform clicks by dwelling with the pointer
    TryExec=mousetweaks
    Exec=mousetweaks --enable-dwell -m window -c -x 20 -y 240
    Terminal=false
    Type=Application
    StartupNotify=true
    Categories=GNOME;GTK;Accessibility;
    AutostartCondition=GNOME /desktop/gnome/applications/at/screen_keyboard_enabled

Note the line with the AutostartCondition that links both desktop files to the GConf key for the on-screen keyboard.

To disable GOK from starting, the desktop file for the GOK on-screen keyboard must be removed or deactivated. Otherwise onboard and GOK would simultaneously be started. This can be done by removing the gok.desktop file from the GDM autostart directory, or by adding the "Hidden=true" key setting to the gok.desktop file.

After making these changes, GOK will no longer be started when the user activates the on-screen keyboard in the GDM session; but onboard and mousetweaks will instead be launched.

### Opće postavke sesije

The GDM Greeter uses some of the same framework that your desktop session will use. And so, it is influenced by a number of the same GConf settings. For each of these settings the Greeter will use the default value unless it is specifically overridden by a) GDM's installed mandatory policy b) system mandatory policy. GDM installs its own mandatory policy to lock down some settings for security.

### GNOME postavke pozadinskog programa

GDM enables the following gnome-settings-daemon plugins: a11y-keyboard, background, sound, xsettings.

These are responsible for things like the background image, font and theme settings, sound events, etc.

Plugins can also be disabled using GConf. For example, if you want to disable the sound plugin then unset the following key: `/apps/gdm/simple-greeter/settings-manager-plugins/sound/active`.

### Podešavanje GDM sesije

GDM sessions are specified using the FreeDesktop.org Desktop Entry Specification, which can be referenced at the following URL: http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec.

By default, GDM will install desktop files in the `<share>/xsessions` directory. GDM will search the following directories in this order to find desktop files: `<etc>/X11/sessions/`, `<dmconfdir>/Sessions`, `<share>/xsessions`, and `<share>/gdm/BuiltInSessions`. By default the `<dmconfdir>` is set to `<etc>/dm/` unless GDM is configured to use a different directory via the "--with-dmconfdir" option.

A session can be disabled by editing the desktop file and adding a line as follows: `Hidden=true`.

GDM desktop files support a GDM-specific extension, a key named "X-GDM-BypassXsession". If the key is not specified in a desktop file, the value defaults to "false". If this key is specified to be "true" in a desktop file, then GDM will launch the program specified by the desktop file "Exec" key directly when starting the user session. It will not run the program via the `<etc>/gdm/Xsession` script, which is the normal behavior. Since bypassing the `<etc>/gdm/Xsession` script avoids setting up the user session with the normal system and user settings, sessions started this way can be useful for debugging problems in the system or user scripts that might be preventing a user from being able to start a session.

### GDM User Session and Language Configuration

The user's default session and language choices are stored in the `~/.dmrc` file. When a user logs in for the first time, this file is created with the user's initial choices. The user can change these default values by simply changing to a different value when logging in. GDM will remember this change for subsequent logins.

The `~/.dmrc` file is in the standard `INI` format. It has one section called `[Desktop]` which has two keys: `Session` and `Language`.

The `Session` key specifies the basename of the session `.desktop` file that the user wishes to normally use without the `.desktop` extension. The `Language` key specifies the language that the user wishes to use by default. If either of these keys is missing, the system default is used. The file would normally look as follows:

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

## GDM naredbe

### GDM naredbe korijenskog korisnika

The GDM package provides the following commands in `sbindir` intended to be run by the root user:

#### `gdm` Command Line Options

`gdm` is the main daemon which sets up graphical login environment and starts necessary helpers.

##### `gdm` Command Line Options

-?, --help

  Gives a brief overview of the command line options.

--fatal-warnings

  Make all warnings cause GDM to exit.

--timed-exit

  Exit after 30 seconds. Useful for debugging.

--version

  Print the version of the GDM daemon.

#### `gdm-restart` Command Line Options

`gdm-restart` stops and restarts GDM by sending the GDM daemon a HUP signal. This command will immediately terminate all sessions and log out users currently logged in with GDM.

#### `gdm-safe-restart` Command Line Options

`gdm-safe-restart` stops and restarts GDM by sending the GDM daemon a USR1 signal. GDM will be restarted as soon as all users log out.

#### `gdm-stop` Command Line Options

`gdm-stop` stops GDM by sending the GDM daemon a TERM signal.

## Rješavanje problema

This section discusses helpful tips for getting GDM working. In general, if you have a problem using GDM, you can submit a bug or send an email to the gdm-list mailing list. Information about how to do this is in the Introduction section of the document.

If GDM is failing to work properly, it is always a good idea to include debug information. To enable debugging, set the debug/Enable key to "true" in the `<etc>/gdm/custom.conf` file and restart GDM. Then use GDM to the point where it fails, and debug output will be sent to the system log file (`<var>/log/messages` or `<var>/adm/messages` depending on your Operating System). If you share this output with the GDM community via a bug report or email, please only include the GDM related debug information and not the entire file since it can be large. If you do not see any GDM syslog output, you may need to configure syslog (refer to the syslog man page).

### GDM se neće pokrenuti

There are a many problems that can cause GDM to fail to start, but this section will discuss a few common problems and how to approach tracking down a problem with GDM starting. Some problems will cause GDM to respond with an error message or dialog when it tries to start, but it can be difficult to track down problems when GDM fails silently.

First make sure that the Xserver is configured properly. The GDM configuration file contains a command in the [server-Standard] section that is used for starting the Xserver. Verify that this command works on your system. Running this command from the console should start the Xserver. If it fails, then the problem is likely with your Xserver configuration. Refer to your Xserver error log for an idea of what the problem may be. The problem may also be that your Xserver requires different command-line options. If so, then modify the Xserver command in the GDM configuration file so that it is correct for your system.

Also make sure that the `/tmp` directory has reasonable ownership and permissions, and that the machine's file system is not full. These problems will cause GDM to fail to start.

## Licenca

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

A copy of the GNU General Public License is included as an appendix to the GNOME Users Guide. You may also obtain a copy of the GNU General Public License from the Free Software Foundation by visiting their Web site or by writing to

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