# Εγχειρίδιο αναφοράς διαχειριστή οθόνης

## Όροι και συμβάσεις που χρησιμοποιούνται σε αυτό το εγχειρίδιο

Το εγχειρίδιο περιγράφει την έκδοση 2.26.0 του διαχειριστή οθόνης GNOME. Ενημερώθηκε την 10/02/2009.

Chooser - Πρόγραμμα επιλογής απομακρυσμένου συστήματος για την διαχείριση της οθόνης του από την τοπική (`gdm-host-chooser`).

FreeDesktop - Η οργάνωση που παρέχει τα πρότυπα επιφάνειας εργασίας, όπως οι προδιαγραφές εισόδου στην επιφάνεια εργασίας που χρησιμοποιούνται από το GDM. http://www.freedesktop.org.

GDM - GNOME Display Manager. Χρησιμοποιείται για την περιγραφή του πακέτου σαν σύνολο.

Greeter - Το παράθυρο γραφικής σύνδεση (που παρέχεται από το `gnome-shell`).

PAM - Μηχανισμός επικύρωσης με δυνατότητα σύνδεσης

XDMCP -Πρωτόκολλο διαχείρισης της οθόνης X

Xserver -Μια υλοποίηση του X Window System. Για παράδειγμα ο Xorg Xserver που παρέχεται από το X.org Foundation http://www.x.org.

Διαδρομές που αρχίζουν με λέξη εντός παρένθεσης-γωνία είναι σχετικές στο πρόθεμα της εγκατάστασης. Για παράδειγμα `<share>/pixmaps/` αναφέρεται στο `/usr/share/pixmaps` αν το GDM διαμορφώθηκε με πρόθεμα `--prefix=/usr`.

## Επισκόπηση

### Εισαγωγή

Ο διαχειριστής οθόνης GNOME (GDM) υλοποιεί όλα τα σημαντικά χαρακτηριστικά που απαιτούνται για την διαχείριση τοπικών και απομακρυσμένων οθονών. Το GDM γράφηκε εξ αρχής και δεν περιέχει κώδικα από το XDM ή από το X Consortium.

Σημειώστε ότι το GDM είναι διαμορφώσιμο, και πολλές ρυθμίσεις διαμόρφωσης έχουν αντίκτυπο στην ασφάλεια. Θέματα που πρέπει να έχετε υπόψη σας τονίζονται σε αυτό το έγγραφο.

Παρακαλώ σημειώστε ότι κάποια λειτουργικά συστήματα διαμορφώνουν το GDM /ώστε να συμπεριφέρεται διαφορετικά από τις προεπιλεγμένες τιμές που περιγράφονται σε αυτό το έγγραφο. Αν το GDM συμπεριφέρεται διαφορετικά από ότι περιγράφεται στην τεκμηρίωση, ελέγξτε αν κάποια σχετική διαμόρφωση είναι διαφορετική από ότι περιγράφεται εδώ.

Για περισσότερες πληροφορίες σχετικά με το GDM, επισκεφτείτε τον δικτυακό τόπο του έργου στο http://wiki.gnome.org/Projects/GDM.

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

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

### Σταθερότητα διεπαφής

Το GDM 2.20 και τα παλαιότερα υποστήριζαν σταθερές διαμορφώσεις διεπαφής. Όμως, ο κώδικας γράφτηκε εξ αρχής για το GDM 2.22, και δεν είναι πλήρως συμβατός με παλαιότερες εκδόσεις. Αυτό συμβαίνει εν μέρει γιατί οι λειτουργίες είναι διαφορετικές, έτσι κάποιες επιλογές δεν έχουν νόημα, εν μέρει γιατί κάποιες επιλογές δεν είχαν ποτέ νόημα και εν μέρει γιατί κάποιες λειτουργίες δεν έχουν υλοποιηθεί ακόμη στις νεότερες εκδόσεις.

Διεπαφές που συνεχίζουν να υποστηρίζονται με σταθερό τρόπο περιλαμβάνουν τα σενάρια εντολών Init, PreSession, PostSession, PostLogin και Xsession. Κάποιες επιλογές διαμόρφωσης δαίμονα στο αρχείο `<etc>/gdm/custom.conf` υποστηρίζονται ακόμη. Επίσης συνεχίζεται η υποστήριξη για το `~/.dmrc` και τις τοποθεσίες εικόνων του περιηγητή προσώπων.

Το GDM 2.20 και τα προηγούμενα υποστήριζαν την δυνατότητα διαχείρισης πολλαπλών τερματικών με χωριστές κάρτες γραφικών, όπως χρησιμοποιούνται σε περιβάλλοντα εξυπηρετητή τερματικών, την σύνδεση σε ένα παράθυρο μέσω προγραμμάτων σαν το Xnest ή το Xephyr, το πρόγραμμα gdmsetup, θέματα του greeterβασισμένα σε XML και την δυνατότητα να εκτελείται το XDMCP chooser από την οθόνη εισόδου. Αυτές οι λειτουργίες δεν προστέθηκαν ξανά κατά την εκ νέου συγγραφή του 2.22.

### Περιγραφή λειτουργικότητας

Το GDM είναι υπεύθυνο για την διαχείριση τερματικών στο σύστημα. Αυτό περιλαμβάνει επικύρωση χρηστών, εκκίνηση της συνεδρίας χρήστη, τερματισμό της συνεδρίας χρήστη. Το GDM είναι διαμορφώσιμο και οι τρόποι με τους οποίους μπορεί να διαμορφωθεί περιγράφονται στην ενότητα "Διαμόρφωση του GDM" αυτού του εγγράφου. Το GDM είναι επίσης προσβάσιμο για χρήστες που είναι ΑΜΕΑ.

Το GDM παρέχει την δυνατότητα διαχείρισης της κύριας οθόνης κονσόλας, και οθονών που εκκινούνται μέσω VT. Είναι ενοποιημένο με άλλα προγράμματα, όπως το εφαρμογίδιο γρήγορης εναλλαγής χρηστών (FUSA) και την προστασία οθόνης του GNOME για να διαχειρίζεται πολλαπλές οθόνες στην κονσόλα μέσω της διεπαφής του Xserver Virtual Terminal (VT). Επίσης μπορεί να διαχειριστεί οθόνες XDMCP.

Ανεξάρτητα από τον τύπο τερματικού, το GDM θα κάνει τα εξής όταν την διαχειρίζεται. Θα εκκινήσει μια διεργασία Xserver, μετά θα εκτελέσει το σενάριο εντολών `Init` σαν υπερχρήστης, και θα εκκινήσει την εφαρμογή greeter στην οθόνη.

Η εφαρμογή υποδοχής greeter εκτελείται από τον απλό χρήστη/ομάδα "gdm". Ο χρήστης αυτός και η ομάδα περιγράφονται στην ενότητα "Ασφάλεια" αυτού του εγγράφου. Η κύρια λειτουργία της εφαρμογής greeter είναι η επικύρωση του χρήστη. Η διεργασία επικύρωσης ελέγχεται από το άρθρωμα PAM (Pluggable Authentication Modules). Τα αρθρώματα PAM καθορίζουν τι προτροπές (αν υπάρχουν) παρουσιάζονται στο χρήστη για να επικυρωθεί. Σε ένα μέσο σύστημα, η εφαρμογή greeter θα ζητήσει το όνομα χρήστη και τον κωδικό του για επικύρωση. Όμως κάποια συστήματα μπορεί να έχουν διαμορφωθεί ώστε να χρησιμοποιούν εναλλακτικούς μηχανισμούς όπως ένα δακτυλικό αποτύπωμα ή αναγνώστη κάρτας SmartCard. Το GDM μπορεί να ρυθμιστεί ώστε να υποστηρίζει αυτές τις εναλλακτικές λειτουργίες παράλληλα με τις προεκτάσεις σύνδεσης του greeter και της επιλογής `--enable-split-authentication` `./configure`, ή ένα κάθε φορά μέσω της ρύθμισης του συστήματος ΡΑΜ.

Η επέκταση smartcard μπορεί να ενεργοποιηθεί ή να απενεργοποιηθεί από το κλειδί `org.gnome.display-manager.extensions.smartcard.active` του gsettings.

Παρομοίως, η επέκταση του δακτυλικού αποτυπώματος μπορεί να ενεργοποιηθεί ή να απενεργοποιηθεί από το κλειδί `org.gnome.display-manager.extensions.fingerprint.active` του gsettings.

Το GDM και το PAM μπορούν να διαμορφωθούν ώστε να μην απαιτούν εισαγωγή δεδομένων, κάτι που θα έχει σαν αποτέλεσμα την αυτόματη σύνδεση και εκκίνηση μιας συνεδρίας, πράγμα χρήσιμο για κάποια περιβάλλοντα, όπως τα info kiosks.

Εκτός από την επικύρωση, η εφαρμογή υποδοχής greeter επιτρέπει στον χρήστη να επιλέξει ποια συνεδρία θα εκκινήσει και ποια γλώσσα θα χρησιμοποιήσει. Οι συνεδρίες ορίζονται από αρχεία με κατάληξη .desktop και περισσότερες πληροφορίες για αυτά μπορείτε να βρείτε στην ενότητα "Διαμόρφωση" αυτού του εγγράφου. Από προεπιλογή, το GDM είναι διαμορφωμένο να προβάλλει έναν περιηγητή προσώπων ώστε οι χρήστες να μπορούν να επιλέξουν τον λογαριασμό τους κάνοντας κλικ σε μια εικόνα αντί να πληκτρολογήσουν το όνομα χρήστη. Το GDM αποθηκεύει την προεπιλεγμένη συνεδρία και γλώσσα του χρήστη στο αρχείο `~/.dmrc` και χρησιμοποιεί αυτές τις προεπιλογές αν ο χρήστης δεν επιλέξει συνεδρία ή γλώσσα στην οθόνη εισόδου GUI.

Μετά την επικύρωση του χρήστη, ο δαίμονας εκτελεί το σενάριο εντολών `PostLogin` σαν υπερχρήστης, στην συνέχεια εκτελεί το σενάριο εντολών `PreSession` σαν υπερχρήστης. Μετά την εκτέλεση των σεναρίων αυτών, η συνεδρία χρήστη εκκινεί. Όταν ο χρήστης εξέρχεται από την συνεδρία, το σενάριο `PostSession` εκτελείται από τον υπερχρήστη. Αυτά τα σενάρια εντολών παρέχονται σαν σημεία επαφής για διανομές και τελικούς χρήστες για να προσαρμόσουν την διαχείριση συνεδριών. Για παράδειγμα, χρησιμοποιώντας αυτά τα σημεία θα μπορούσατε να ρυθμίσετε ένα μηχάνημα να δημιουργεί κατά την λειτουργία του τον κατάλογο $HOME του χρήστη, και να τον διαγράφει κατά την αποσύνδεση. Η διαφορά μεταξύ των σεναρίων `PostLogin` και `PreSession` είναι ότι το`PostLogin` εκτελείται πριν την εντολή ανοίγματος συνεδρίας από το άρθρωμα pam (pam_open_session call) έτσι είναι το σωστό σημείο για να εκτελεστεί οτιδήποτε πρέπει να εκτελεστεί πριν την εκκίνηση της συνεδρίας του χρήστη. Το σενάριο εντολών `PreSession` καλείται μετά την εκκίνηση της συνεδρίας.

### Πίνακας εφαρμογής υποδοχής, Greeter

Η εφαρμογή υποδοχής του GDM, Greeter προβάλλει έναν πίνακα τοποθετημένο στο κάτω μέρος της οθόνης που παρέχει πρόσθετες λειτουργίες. Όταν επιλεγεί χρήστης, ο πίνακας του επιτρέπει να επιλέξει ποια συνεδρία, γλώσσα και διάταξη πληκτρολογίου θα χρησιμοποιήσει μετά την είσοδο του. Ο επιλογέας διάταξης πληκτρολογίου αλλάζει και την διάταξη που χρησιμοποιείται κατά την πληκτρολόγηση του κωδικού. Ο πίνακας περιέχει επίσης μια περιοχή όπου οι υπηρεσίες σύνδεσης τοποθετούν εικονίδια κατάστασης. Μερικά παραδείγματα εικονιδίων κατάστασης περιλαμβάνουν εικονίδιο μπαταρίας για την τρέχουσα χρήση της, και ένα εικονίδιο για την ενεργοποίηση λειτουργιών διευκόλυνσης πρόσβασης. Η εφαρμογή greeter παρέχει επίσης πλήκτρα που επιτρέπουν στον χρήστη να τερματίσει ή να επανεκκινήσει το σύστημα. Είναι δυνατόν να διαμορφωθεί το GDM ώστε να μην παρέχει πλήκτρα τερματισμού και επανεκκίνησης, αν το επιθυμείτε. Το GDM μπορεί επίσης να διαμορφωθεί με το PolicyKit (ή με το RBAC στο Oracle Solaris) ώστε να απαιτεί από τον χρήστη την κατάλληλη έγκριση πριν αποδεχθεί το αίτημα τερματισμού ή επανεκκίνησης.

Σημειώστε ότι λειτουργίες διάταξης πληκτρολογίου είναι διαθέσιμες μόνο σε συστήματα που υποστηρίζουν την libxklavier.

### Προσιτότητα

Το GDM υποστηρίζει "Accessible Login-Προσιτή διαδικασία σύνδεσης", επιτρέποντας στους χρήστες να συνδεθούν στην συνεδρία επιφάνειας εργασίας ακόμη και αν δυσκολεύονται να χρησιμοποιήσουν οθόνη, ποντίκι, ή πληκτρολόγιο με τον συνηθισμένο τρόπο. Λειτουργίες διευκόλυνσης της πρόσβασης (Accessible Tecnology-AT) όπως το πληκτρολόγιο οθόνης, ο αναγνώστης οθόνης, ο μεγεθυντής οθόνης και η προσιτότητα του Xserver AccessX keyboard είναι διαθέσιμες. Είναι επίσης δυνατόν να ενεργοποιηθεί μεγάλο κείμενο ή εικόνες και όργανα ελέγχου υψηλής αντίθεσης, αν χρειαστεί. Ανατρέξτε στην ενότητα "Accessibility Configuration" του εγγράφου για περισσότερες πληροφορίες σχετικά με την διαμόρφωση των διαφόρων λειτουργιών διευκόλυνσης πρόσβασης.

Σε κάποια λειτουργικά συστήματα, είναι απαραίτητο να βεβαιωθείτε ότι ο χρήστης GDM είναι μέλος της ομάδας "audio" για εφαρμογές AT που απαιτούν έξοδο ήχου (όπως η μετατροπή κειμένου σε ομιλία) για να είναι λειτουργικές.

### Περιηγητής προσώπων του GDM

Ο περιηγητής προσώπων είναι η διεπαφή που επιτρέπει στους χρήστες να επιλέξουν το όνομα χρήστη τους πατώντας σε μια εικόνα. Αυτή η λειτουργία μπορεί να ενεργοποιηθεί και να απενεργοποιηθεί μέσα από το κλειδί GSettings org.gnome.login-screen disable-user-list και είναι ενεργή από προεπιλογή. Όταν είναι ανενεργή, οι χρήστες πρέπει να πληκτρολογήσουν το πλήρες όνομα χρήστη χειροκίνητα. Όταν είναι ενεργή, εμφανίζει όλους τους τοπικούς χρήστες που είναι διαθέσιμοι για σύνδεση στο σύστημα (όλους τους λογαριασμούς χρηστών που έχουν οριστεί στο αρχείο /etc/passwd και έχουν έγκυρο κέλυφος και επαρκώς υψηλό UID) και τους απομακρυσμένους χρήστες που συνδέθηκαν πρόσφατα. Ο περιηγητής προσώπων στο GDM 2.20 και σε παλαιότερες εκδόσεις προσπαθούσε να εμφανίσει όλους τους απομακρυσμένους χρήστες, γεγονός που προκαλούσε προβλήματα απόδοσης σε μεγάλες εταιρικές εγκαταστάσεις.

Ο περιηγητής προσώπων είναι διαμορφωμένος να προβάλλει τους χρήστες που συνδέονται πιο συχνά στην αρχή της λίστας. Αυτό είναι χρήσιμο ώστε οι χρήστες που συνδέονται συχνά να μπορούν να βρουν γρήγορα την εικόνα εισόδου που χρησιμοποιούν.

Ο περιηγητής προσώπων υποστηρίζει "έρευνα κατά την πληκτρολόγηση" η οποία μετακινεί δυναμικά την επιλογή προσώπων καθώς ο χρήστης πληκτρολογεί το αντίστοιχο όνομα χρήστη στην λίστα. Αυτό έχει σαν αποτέλεσμα ότι ένας χρήστης με μεγάλο όνομα πρέπει μόνο να πληκτρολογήσει τους πρώτους λίγους χαρακτήρες του ονόματος πριν το σωστό αντικείμενο από την λίστα επιλεγεί.

Οι εικόνες που χρησιμοποιούνται από το GDM μπορούν να εγκατασταθούν συνολικά για το σύστημα ή να τοποθετηθούν στους καταλόγους home των χρηστών. Αν εγκατασταθούν συνολικά για το σύστημα πρέπει να βρίσκονται στον κατάλογο `<share>/pixmaps/faces/` και το όνομα αρχείου πρέπει να είναι το όνομα χρήστη. Τα αρχεία εικόνων προσώπων πρέπει να είναι συνηθισμένες εικόνες που το GTK+ μπορεί να διαβάσει, όπως PNG ή JPEG. Οι εικόνες προσώπων που τοποθετούνται στον κατάλογο συστήματος πρέπει να είναι αναγνώσιμες από τον χρήστη GDM.

Αν δεν έχει οριστεί εικόνα για τον χρήστη σε επίπεδο συστήματος, το GDM θα ψάξει στον κατάλογο $HOME του χρήστη για το αρχείο εικόνας. Το GDM θα ψάξει πρώτα για το αρχείο εικόνας του χρήστη στο `~/.face`. Αν δεν το βρει, θα δοκιμάσει στο `~/.face.icon`. Αν δεν το βρει και πάλι, θα χρησιμοποιήσει την τιμή που ορίζεται για το "face/picture=" στο αρχείο `~/.gnome2/gdm`.

Αν ένας χρήστης δεν έχει ορισμένη εικόνα προσώπου, το GDM θα χρησιμοποιήσει την εικόνα "stock_person" που ορίζεται στο τρέχον θέμα GTK+. Αν δεν έχει οριστεί τέτοια εικόνα, θα χρησιμοποιήσει εναλλακτικά μια εικόνα προσώπου γενικής χρήσης.

Παρακαλώ σημειώστε ότι η φόρτωση και η κλιμάκωση εικόνων προσώπου που βρίσκονται στον κατάλογο home απομακρυσμένου χρήστη μπορεί να είναι μια πολύ χρονοβόρα διαδικασία. Επειδή δεν είναι πρακτικό να φορτώνονται εικόνες μέσω NIS ή NFS, το GDM δεν προσπαθεί να φορτώσει εικόνες προσώπων από απομακρυσμένους καταλόγους home.

Όταν εκκινείται ο περιηγητής, τα έγκυρα ονόματα χρηστών στον υπολογιστή εκτίθενται σε κοινή θέα. Αν είναι ενεργοποιημένο το XDMCP, τότε τα ονόματα χρηστών εκτίθενται σε απομακρυσμένους χρήστες. Αυτό, βέβαια, περιορίζει κάπως την ασφάλεια αφού ένας κακόβουλος χρήστης δεν χρειάζεται να μαντέψει έγκυρα ονόματα χρηστών. Σε κάποια πολύ περιοριστικά περιβάλλοντα ο περιηγητής προσώπων μπορεί να μην είναι ενδεδειγμένη επιλογή.

### XDMCP

Ο δαίμονας GDM μπορεί να διαμορφωθεί έτσι ώστε να παρακολουθεί και να διαχειρίζεται τα αιτήματα X Display Manage Protocol (XDMCP) απομακρυσμένων τερματικών. Από προεπιλογή η υποστήριξη XDMCP είναι απενεργοποιημένη, αλλά μπορεί να ενεργοποιηθεί αν το επιθυμούμε. Αν το GDM έχει υποστήριξη TCP Wrapper, τότε ο δαίμονας θα επιτρέπει την πρόσβαση σε υπολογιστές που έχουν καθοριστεί στην ενότητα υπηρεσία GDM στο αρχείο διαμόρφωσης των TCP Wrappers.

Το GDM περιλαμβάνει διάφορα προληπτικά μέτρα που το κάνουν πιο ανθεκτικό σε επιθέσεις τύπου «denial of service» στην υπηρεσία XDMCP. Πολλές από τις παραμέτρους του πρωτοκόλλου, handshaking timeouts, κλπ μπορούν να ρυθμιστούν με λεπτομέρεια. Η προεπιλεγμένη διαμόρφωση καλύπτει αρκετά καλά τις ανάγκες των περισσότερων συστημάτων.

Το GDM από προεπιλογή παρακολουθεί για αιτήματα XDMCP στην κανονική πόρτα UDP που χρησιμοποιείται για το XDMCP, την πόρτα 177 και θα απαντήσει σε αιτήματα QUERY και BROADCAST_QUERY στέλνοντας ένα πακέτο WILLING στον δημιουργό τους.

Το GDM μπορεί επίσης να διαμορφωθεί έτσι ώστε να αναγνωρίζει έμμεσες αιτήσεις και να παρουσιάζει έναν επιλογέα συστημάτων στην απομακρυσμένη οθόνη. Το GDM θα θυμάται την επιλογή του χρήστη και θα προωθεί τις επόμενες αιτήσεις στον επιλεγμένο διαχειριστή. Το GDM υποστηρίζει επίσης μια επέκταση του πρωτοκόλλου που το κάνει να ξεχνά την ανακατεύθυνση μόλις η σύνδεση του χρήστη επιτευχθεί. Αυτή η επέκταση υποστηρίζεται μόνο αν και οι δύο δαίμονες είναι GDM. Είναι διαφανής και θα αγνοηθεί από το XDM ή άλλους δαίμονες που εφαρμόζουν το XDMCP.

Αν το XDMCP φαίνεται να μην λειτουργεί, βεβαιωθείτε ότι όλοι οι υπολογιστές καθορίζονται στο `/etc/hosts`.

Ανατρέξτε στην ενότητα "Ασφάλεια" για πληροφορίες σχετικές με προβληματισμούς για την ασφάλεια με την χρήση XDMCP.

### Καταγραφή συστήματος

Το GDM χρησιμοποιεί το syslog για την καταγραφή σφαλμάτων και κατάστασης. Μπορεί επίσης να καταγράψει πληροφορίες αποσφαλμάτωσης, οι οποίες είναι χρήσιμες κατά τη διερεύνηση προβλημάτων όταν το GDM δεν λειτουργεί κανονικά. Αυτή η συμπεριφορά μπορεί να ενεργοποιηθεί θέτοντας το κλειδί debug/Enable σε «true» στο αρχείο `<etc>/gdm/custom.conf`.

Τα δεδομένα εξόδου των διαφόρων Xservers αποθηκεύονται στον κατάλογο καταγραφής του GDM, που είναι συνήθως ο `<var>/log/gdm/`. Τα μηνύματα του Xserver αποθηκεύονται σε ένα αρχείο συσχετισμένο με την τιμή οθόνης, `<display>.log`.

Τα δεδομένα της συνεδρίας διοχετεύονται μέσω του δαίμονα του GDM στο αρχείο `~/`$XDG_CACHE_HOME`/gdm/session.log` που συνήθως επεκτείνεται στο `~/.cache/gdm/session.log`. Το αρχείο αντικαθίσταται σε κάθε είσοδο, έτσι εξερχόμενοι και συνδεόμενοι ξανά στον ίδιο χρήστη μέσω του GDM κάθε μήνυμα από την προηγούμενη συνεδρία χάνεται.

Σημειώστε ότι αν το GDM δεν μπορεί να δημιουργήσει αυτό το αρχείο για κάποιον λόγο, τότε θα δημιουργηθεί ένα εναλλακτικό αρχείο με όνομα `~/`$XDG_CACHE_HOME`/gdm/session.log.XXXXXXXX` όπου `XXXXXXXX` είναι κάποιοι τυχαίοι χαρακτήρες.

### Γρήγορη εναλλαγή χρήστη

Το GDM επιτρέπει την σύνδεση πολλών χρηστών ταυτόχρονα. Μετά την σύνδεση του πρώτου χρήστη, πρόσθετοι χρήστες μπορούν να συνδεθούν μέσω της εναλλαγής χρηστών στον πίνακα εφαρμογών του GNOME, η με το πλήκτρο "Αλλαγή χρήστη" στον διάλογο κλειδώματος οθόνης της προστασίας οθόνης του GNOME. Η ενεργή συνεδρία μπορεί να αλλαχθεί χρησιμοποιώντας τον ίδιο μηχανισμό. Σημειώστε ότι κάποιες διανομές μπορεί να μην έχουν την εναλλαγή χρηστών στην προεπιλεγμένη διαμόρφωση του πίνακα εφαρμογών. Μπορείτε να την προσθέσετε χρησιμοποιώντας το σχετικό μενού περιεχομένων του πίνακα εφαρμογών.

Σημειώστε ότι αυτή η λειτουργία είναι διαθέσιμη σε συστήματα που υποστηρίζουν εικονικά τερματικά. Αυτό το χαρακτηριστικό δεν θα λειτουργήσει αν δεν είναι διαθέσιμα τα εικονικά τερματικά.

## Ασφάλεια

### Χρήστης και ομάδα GDM

Για λόγους ασφαλείας συνίσταται η χρήση ενός ειδικά δημιουργημένου id χρήστη και ομάδας για σωστή λειτουργία. Αυτός ο χρήστης και η ομάδα είναι συνήθως ο "gdm" στα περισσότερα συστήματα, αλλά μπορεί να διαμορφωθεί σε κάθε χρήστη ή ομάδα. Όλα τα προγράμματα γραφικού περιβάλλοντος του GDM εκτελούνται από αυτόν τον χρήστη, έτσι ώστε τα προγράμματα που αλληλεπιδρούν με τον χρήστη να εκτελούνται σε ένα δοκιμαστήριο. Ο χρήστης και η ομάδα αυτή πρέπει να έχουν περιορισμένα δικαιώματα.

Τα μόνα ειδικά δικαιώματα που χρειάζεται ο χρήστης "gdm"είναι η ανάγνωση και η εγγραφή αρχείων Xauth στον κατάλογο `<var>/run/gdm`. Ο κατάλογος `<var>/run/gdm` πρέπει να έχει ιδιοκτησία root:gdm και δικαιώματα 1777.

Σε καμιά περίπτωση δεν πρέπει να διαμορφώσετε τον χρήστη/ομάδα GDM με τέτοιον τρόπο ώστε ένας χρήστης να μπορεί να έχει εύκολη πρόσβαση σε αυτόν, όπως στην περίπτωση του χρήστη `nobody`. Κάθε χρήστης που αποκτά πρόσβαση σε ένα κλειδί Xauth μπορεί να παρακολουθεί απαρατήρητος και να ελέγχει εκτελούμενα προγράμματα γραφικού περιβάλλοντος στην σχετική συνεδρία ή να εκτελέσει μια επίθεση τύπου denial-of-service στην συνεδρία. Είναι σημαντικό να βεβαιωθείτε ότι το σύστημα είναι διαμορφωμένο κατάλληλα ώστε μόνο ο χρήστης "gdm" να έχει πρόσβαση σε αυτά τα αρχεία και ότι δεν είναι εύκολο να συνδεθεί κάποιος άλλος σε αυτό τον λογαριασμό. Για παράδειγμα, ο λογαριασμός πρέπει να ρυθμιστεί χωρίς κωδικό ή να μην επιτρέπει σε χρήστες χωρίς δικαιώματα root να συνδέονται.

Η διαμόρφωση του GDM greeter είναι αποθηκευμένη στο GConf. Για να επιτρέπεται στον χρήστη GDM η εγγραφή στην διαμόρφωση, είναι απαραίτητο για τον χρήστη "gdm" να έχει έναν εγγράψιμο κατάλογο $HOME. Οι χρήστες μπορούν να τροποποιήσουν την προεπιλεγμένη διαμόρφωση του GConf όπως επιθυμούν για να αποφύγουν την ανάγκη παροχής στον χρήστη "gdm" εγγράψιμου καταλόγου $HOME. Πάντως, κάποια χαρακτηριστικά του GDM μπορεί να απενεργοποιηθούν αν δεν έχει την δυνατότητα να εγγράψει πληροφορίες κατάστασης στην διαμόρφωση του GConf.

### PAM

Το GDM χρησιμοποιεί το PAM για πιστοποίηση κατά την είσοδο. Το PAM είναι συντόμευση για το Pluggable Authentication Module, και χρησιμοποιείται από τα περισσότερα προγράμματα που ζητούν επικύρωση στον υπολογιστή σας. Επιτρέπει στον διαχειριστή να διαμορφώσει συγκεκριμένη συμπεριφορά πιστοποίησης για διαφορετικά προγράμματα σύνδεσης (όπως ssh, είσοδος GUI, προστασία οθόνης, κλπ)

Το PAM είναι πολύπλοκο και έντονα διαμορφώσιμο, αυτή η τεκμηρίωση δεν προτίθεται να το αναλύσει με λεπτομέρεια. Αντίθετα, προτίθεται να παρουσιάσει μια επισκόπηση του τρόπου με τον οποίο η διαμόρφωση του PAM σχετίζεται με το GDM, πως διαμορφώνεται συνήθως το PAM με το GDM, όπως επίσης να παρουσιάσει γνωστά προβλήματα. Αναμένεται ότι κάποιος που χρειάζεται να διαμορφώσει το PAM θα χρειαστεί να μελετήσει περαιτέρω την τεκμηρίωση του PAM για να καταλάβει πως θα το διαμορφώσει και για να κατανοήσει τους όρους που χρησιμοποιούνται σε αυτήν την ενότητα.

Η διαμόρφωση του PAM έχει διαφορετικές, αλλά παρόμοιες, διεπαφές σε διάφορα λειτουργικά συστήματα, για αυτό ελέγξτε τις σελίδες pam.d ή pam.conf man page για λεπτομέρειες. Βεβαιωθείτε ότι διαβάσατε την τεκμηρίωση του PAM και ότι αισθάνεστε άνετα με τις επιπτώσεις στην ασφάλεια των όποιων αλλαγών προτίθεστε να κάνετε στην διαμόρφωση σας.

Σημειώστε ότι, από προεπιλογή, το GDM χρησιμοποιεί το όνομα της υπηρεσίας PAM του "gdm" για κανονική είσοδο και το "gdm-autologin" PAM service name για αυτόματη είσοδο. Αυτές οι υπηρεσίες μπορεί να μην είναι ορισμένες στο δικό σας διαμορφωμένο αρχείο pam.d ή pam.conf. Αν δεν υπάρχει σχετική καταχώρηση, τότε το GDM θα χρησιμοποιήσει την προεπιλεγμένη συμπεριφορά του PAM. Στα περισσότερα συστήματα αυτό θα λειτουργήσει καλά. Εντούτοις, το χαρακτηριστικό της αυτόματης εισόδου μπορεί να μην λειτουργήσει αν η υπηρεσία gdm-autologin δεν είναι ορισμένη.

Το σενάριο `PostLogin` εκτελείται πριν κληθεί το pam_open_session, και το σενάριο `PreSession` καλείται μετά. Αυτό επιτρέπει στον διαχειριστή συστήματος να προσθέσει οποιοδήποτε σενάριο εντολών στην διεργασία σύνδεσης είτε πριν είτε μετά την έγκριση έναρξης της συνεδρίας από το PAM.

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

Το PAM έχει μερικούς περιορισμούς που αφορούν την ικανότητα του να λειτουργεί με πολλούς τύπους μηχανισμών επικύρωσης ταυτόχρονα, όπως να υποστηρίζει την αποδοχή είτε των SmartCard είτε την εισαγωγή με το πληκτρολόγιο του ονόματος χρήστη και του κωδικού στο πρόγραμμα σύνδεσης. Υπάρχουν τεχνικές που χρησιμοποιούνται για να επιτευχθεί αυτό, και είναι καλό να ερευνήσετε πως λύνεται συνήθως αυτό το πρόβλημα όταν ρυθμίζετε μια διαμόρφωση αυτού του τύπου.

Αν η αυτόματη είσοδος δεν λειτουργεί σε ένα σύστημα, ελέγξτε αν το "gdm-autologin" PAM stack είναι ορισμένο στην διαμόρφωση του PAM. Για να επιτύχει αυτό, είναι απαραίτητο να χρησιμοποιήσετε ένα άρθρωμα PAM που απλά δεν κάνει επικύρωση, ή δίνει σαν αποτέλεσμα PAM_SUCCESS από όλες τις δημόσιες διεπαφές του. Θεωρώντας ότι το σύστημα σας έχει ένα άρθρωμα PAM pam_allow.so που λειτουργεί με αυτόν τον τρόπο, μια διαμόρφωση του PAM που ενεργοποιεί το "gdm-autologin" θα ήταν ως εξής:

           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

Η παραπάνω ρύθμιση προκαλεί την αποτροπή δημιουργίας εγγραφής στο lastlog. Αν επιθυμείτε εγγραφή στο lastlog, χρησιμοποιήστε το παρακάτω για την συνεδρία:

           gdm-autologin session required pam_unix_session.so.1

Αν ο υπολογιστής χρησιμοποιείται από περισσότερα άτομα, γεγονός που κάνει την χρήση αυτόματης εισόδου ακατάλληλη επιλογή, μπορεί να θελήσετε να επιτρέπεται σε μερικούς από τους χρήστες η είσοδος χωρίς την εισαγωγή του κωδικού τους. Αυτή η λειτουργία μπορεί να ενεργοποιηθεί με επιλογή ανά χρήστη με το εργαλείο διαχείρισης χρηστών από τα εργαλεία διαχείρισης συστήματος, και επιτυγχάνεται με το να ελέγχεται αν ο χρήστης ανήκει στην ομάδα Unix "nopasswdlogin" πριν ερωτηθεί για τον κωδικό. Για να λειτουργήσει η διαδικασία, το αρχείο διαμόρφωσης του PAM για την υπηρεσία "gdm" πρέπει να περιέχει μία γραμμή όπως η παρακάτω:

          gdm auth  sufficient  pam_succeed_if.so  user ingroup nopasswdlogin

### utmp και wtmp

Το GDM δημιουργεί εγγραφές utmp και wtmp στην βάση δεδομένων παρακολούθησης χρήστη κατά την είσοδο και την έξοδο από την συνεδρία. Η βάση δεδομένων utmp περιέχει πληροφορίες πρόσβασης και παρακολούθησης του χρήστη που είναι διαθέσιμες με εντολές όπως `finger`, `last`, `login` και `who`. Η βάση δεδομένων wtmp περιέχει το ιστορικό πρόσβασης του χρήστη και πληροφορίες δραστηριότητας για την βάση δεδομένων utmp. Ανατρέξτε στις utmp και wtmp σελίδες τεκμηρίωσης του συστήματος σας για περισσότερες λεπτομέρειες.

### Σχήμα πιστοποίησης εξυπηρετητή X

Τα αρχεία πιστοποίησης του X server αποθηκεύονται σε ένα νέο κάθε φορά υποκατάλογο του `<var>/run/gdm` κατά την εκκίνηση. Αυτά τα αρχεία περιέχουν το "password" που χρησιμοποιείται μεταξύ των X clients και του X server. Αυτό το "password" είναι μοναδικό για κάθε συνδεδεμένη συνεδρία, έτσι ώστε οι χρήστες μιας συνεδρίας δεν μπορούν να παρακολουθούν απαρατήρητοι τους χρήστες μιας άλλης.

Το GDM υποστηρίζει μόνο το σχήμα πιστοποίησης εξυπηρετητή Χ MIT-MAGIC-COOKIE-1. Υπό κανονικές συνθήκες λίγα μπορούμε να κερδίσουμε από τα άλλα σχήματα, και δεν έχουν γίνει προσπάθειες για την υλοποίηση τους μέχρι τώρα. Να είστε ιδιαίτερα προσεκτικοί όταν χρησιμοποιείτε το XDMCP γιατί το cookie πιστοποίησης του Xserver ταξιδεύει στο δίκτυο σαν απλό κείμενο. Αν είναι δυνατή η υποκλοπή, τότε ένας επιτιθέμενος θα μπορούσε απλά να υποκλέψει τον κωδικό πιστοποίησης σας κατά την είσοδο σας, ανεξάρτητα από το σχήμα πιστοποίησης που χρησιμοποιείτε. Αν η υποκλοπή είναι δυνατή και ανεπιθύμητη, θα πρέπει να χρησιμοποιήσετε ssh για την πραγματοποίηση μιας σύνδεσης X παρά το XDMCP. Μπορείτε να θεωρήσετε το XDMCP σαν ένα είδος telnet για γραφικό περιβάλλον, που έχει τα ίδια ζητήματα ασφάλειας με αυτό. Στις περισσότερες περιπτώσεις, το ssh -Y θα έπρεπε να προτιμάται έναντι των λειτουργιών XDMCP του GDM.

### Ασφάλεια XDMCP

Αν και η οθόνη σας προστατεύεται από cookies, τα Xevents και επομένως τα πατήματα των πλήκτρων κατά την εισαγωγή κωδικών θα ταξιδέψουν στο δίκτυο σαν απλό κείμενο. Είναι τετριμμένο να υποκλαπούν.

ΤΟ XDMCP είναι κυρίως χρήσιμο για την λειτουργία λεπτών πελατών όπως σε εργαστήρια με τερματικά. Αυτοί οι λεπτοί πελάτες θα χρειαστούν το δίκτυο μόνο για πρόσβαση στον εξυπηρετητή, έτσι φαίνεται σαν καλύτερη πολιτική ασφαλείας να έχετε αυτά τα τερματικά σε χωριστό δίκτυο στο οποίο δεν μπορεί να έχει πρόσβαση ο έξω κόσμος, και το οποίο μπορεί να συνδεθεί μόνο στον εξυπηρετητή. Το μόνο σημείο από το οποίο χρειάζεστε πρόσβαση στο εξωτερικό δίκτυο είναι ο εξυπηρετητής. Αυτός ο τύπος διαμόρφωσης δεν πρέπει ποτέ να χρησιμοποιεί έναν κόμβο χωρίς διαχείριση ή άλλον μη ασφαλή τύπο δικτύου.

### Έλεγχος πρόσβασης του XDMCP

Ο έλεγχος πρόσβασης του XDMCP πραγματοποιείται χρησιμοποιώντας TCP wrappers. Είναι δυνατόν να μεταγλωττιστεί το GDM χωρίς υποστήριξη TCP wrapper, έτσι αυτό το χαρακτηριστικό μπορεί να μην υποστηρίζεται σε κάποια λειτουργικά συστήματα.

Πρέπει να χρησιμοποιείτε το όνομα δαίμονα `gdm` στα αρχεία `<etc>/hosts.allow` και `<etc>/hosts.deny`. Για παράδειγμα για να αρνηθείτε σε υπολογιστές από το `.evil.domain` την σύνδεση, στην συνέχεια προσθέστε

    gdm: .evil.domain

στο `<etc>/hosts.deny`. Επίσης μπορεί να χρειαστεί να προσθέσετε

    gdm: .your.domain

στο αρχείο σας `<etc>/hosts.allow` αν συνήθως αποκλείετε όλες τις υπηρεσίες από όλους τους υπολογιστές. Δείτε την hosts.allow(5) man page για λεπτομέρειες.

### Ασφάλεια firewall

Ακόμη και αν το GDM προσπαθεί να είναι πιο αποτελεσματικό από επίδοξους επιτιθέμενους που προσπαθούν να εκμεταλλευτούν το XDMCP, είναι συνετό να κρατάτε κλειστή την θύρα του XDMCP (κανονικά είναι η θύρα UDP 177) στο firewall εκτός και αν την χρειάζεστε πραγματικά. Το GDM προσέχει για επιθέσεις τύπου denial of service, αλλά το πρωτόκολλο X είναι ακόμη εγγενώς ανασφαλές και θα έπρεπε να χρησιμοποιείται μόνο σε ελεγχόμενα περιβάλλοντα. Επίσης κάθε απομακρυσμένη σύνδεση καταναλώνει πολλούς πόρους, έτσι είναι πολύ ευκολότερο να πραγματοποιηθεί μια επίθεση denial of service μέσω XDMCP παρά μέσω ενός διακομιστή διαδικτύου.

Είναι επίσης συνετό να κλείσετε όλες τις θύρες του εξυπηρετητή X. Αυτές είναι οι θύρες 6000+ (μία για κάθε αριθμό τερματικού) στο firewall. Σημειώστε ότι το GDM θα χρησιμοποιήσει αριθμούς τερματικού από 20 και πάνω για ευέλικτους εξυπηρετητές όταν ζητηθεί.

Το X δεν είναι πολύ ασφαλές πρωτόκολλο για χρήση στο διαδίκτυο και το XDMCP είναι ακόμη πιο ανασφαλές.

### PolicyKit

Το GDM μπορεί να διαμορφωθεί για να χρησιμοποιεί το PolicyKit ώστε να επιτρέπει στον διαχειριστή συστήματος να ελέγχει αν η οθόνη εισόδου θα παρέχει τα πλήκτρα τερματισμού και επανεκκίνησης στην οθόνη του greeter.

Αυτά τα πλήκτρα ελέγχονται από τις ενέργειες `org.freedesktop.consolekit.system.stop-multiple-users` και `org.freedesktop.consolekit.system.restart-multiple-users` αντίστοιχα. Οι κανόνες για αυτές τις ενέργειες μπορούν να ρυθμιστούν χρησιμοποιώντας το εργαλείο polkit-gnome-authorization, ή το πρόγραμμα γραμμής εντολών polkit-auth.

### RBAC (Έλεγχος προσπέλασης βάσει ρόλου)

Το GDM μπορεί να διαμορφωθεί έτσι ώστε να χρησιμοποιεί το RBAC αντί για το PolicyKit. Σε αυτή την περίπτωση, η διαμόρφωση με το RBAC χρησιμοποιείται για να ελέγχει αν η οθόνη εισόδου θα παρέχει τα πλήκτρα τερματισμού και επανεκκίνησης στην οθόνη του greeter.

Για παράδειγμα, στο Oracle Solaris, η έγκριση του "solaris.system.shutdown" χρησιμοποιείται για να το ελέγχει. Απλά μετατρέψτε το αρχείο `/etc/user_attr` έτσι ώστε ο χρήστης "gdm" να έχει αυτή την εξουσιοδότηση.

## Υποστήριξη για το ConsoleKit

Το GDM περιλαμβάνει υποστήριξη για την δημοσίευση πληροφοριών εισόδου χρήστη με το σύστημα παρακολούθησης λογαριασμών χρηστών και συνεδριών γνωστό σαν ConsoleKit. Το ConsoleKit έχει την δυνατότητα να καταγράφει όλους τους χρήστες που είναι συνδεδεμένοι κάθε στιγμή. Από αυτή την άποψη, μπορεί να χρησιμοποιηθεί σαν αντικαταστάτης των αρχείων utmp και utmpx που είναι διαθέσιμα στα περισσότερα λειτουργικά συστήματα τύπου Unix.

Όταν το GDM πρόκειται να δημιουργήσει μια νέα διεργασία εισόδου για κάποιον χρήστη θα καλέσει μια προνομιούχα μέθοδο του ConsoleKit για να εκκινήσει μια καινούργια συνεδρία για αυτόν. Σε αυτό το σημείο το GDM παρέχει στο ConsoleKit πληροφορίες σχετικές με την συνεδρία του χρήστη όπως το ID του χρήστη, το όνομα της οθόνης X11 που θα συνδεθεί με την συνεδρία, το όνομα του υπολογιστή δικτύου από τον οποίον προέρχεται η συνεδρία (χρήσιμο στην περίπτωση συνεδρίας XDMCP), αν η συνεδρία είναι συνδεδεμένη ή όχι, κλπ. Σαν οντότητα που αρχίζει την διεργασία του χρήστη, το GDM είναι στην μοναδική θέση να γνωρίζει και να το εμπιστευόμαστε να παρέχει αυτές τις πληροφορίες σχετικά με την συνεδρία του χρήστη. Η χρήση αυτής της προνομιούχας μεθόδου περιορίζεται από την χρήση των κανόνων ασφαλείας D-Bus system message bus.

Στην περίπτωση που κάποιος χρήστης με υπάρχουσα εγκεκριμένη συνεδρία που είναι κλειδωμένη ζητήσει να την επαναλάβει το GDM καλεί μια προνομιούχα μέθοδο του ConsoleKit για να την ξεκλειδώσει. Οι ακριβείς λεπτομέρειες του τι συμβαίνει όταν η συνεδρία λαμβάνει αυτό το σήμα ξεκλειδώματος είναι απροσδιόριστες και ιδιαίτερες για την συνεδρία. Εντούτοις, οι περισσότερες συνεδρίες θα ξεκλειδώσουν την προστασία οθόνης σε απάντηση.

Όταν ο χρήστης επιλέξει την έξοδο από την συνεδρία, ή το GDM είτε η συνεδρία σταματήσουν απρόσμενα η συνεδρία του χρήστη θα σταματήσει να καταγράφεται από το ConsoleKit.

## Διαμόρφωση

Το GDM έχει ένα σύνολο διεπαφών διαμόρφωσης. Αυτές περιλαμβάνουν σημεία ενσωμάτωσης σεναρίων εντολών κελύφους, διαμόρφωση δαιμόνων, διαμόρφωση του greeter, γενικές ρυθμίσεις συνεδρίας, συγχώνευση με την διαμόρφωση του gnome-settings-daemon, και διαμόρφωση συνεδρίας. Αυτοί οι τρόποι ενοποίησης λειτουργιών περιγράφονται με λεπτομέρεια παρακάτω.

### Σημεία ενσωμάτωσης σεναρίου εντολών φλοιού

Τα σημεία ενσωμάτωσης σεναρίων εντολών του GDM μπορείτε να τα βρείτε στον κατάλογο `<etc>/gdm/`:

    Xsession
    Init/
    PostLogin/
    PreSession/
    PostSession/

Τα σενάρια εντολών `Init`, `PostLogin`, `PreSession` και `PostSession` λειτουργούν όπως περιγράφεται παρακάτω.

Για κάθε τύπο σεναρίου εντολών, το προεπιλεγμένο που θα εκτελείται ονομάζεται "Default" και είναι αποθηκευμένο σε έναν κατάλογο σχετικό με τον τύπο του σεναρίου. Έτσι το προεπιλεγμένο σενάριο `Init` βρίσκεται στο `<etc>/gdm/Init/Default`. Ένα σενάριο ανά οθόνη μπορεί να οριστεί, και αν υπάρχει θα εκτελεστεί αντί του προεπιλεγμένου. Αυτά τα σενάρια αποθηκεύονται στον ίδιο κατάλογο με τα προεπιλεγμένα και έχουν το ίδιο όνομα με την τιμή του Xserver DISPLAY για την κάθε οθόνη. Για παράδειγμα, αν υπάρχει το σενάριο `<Init>/:0`, θα εκτελεστεί για το DISPLAY ":0".

Όλα αυτά τα σενάρια εκτελούνται με δικαιώματα root και δίνουν αποτέλεσμα 0 αν ολοκληρωθούν με επιτυχία, ή αποτέλεσμα διαφορετικό από το μηδέν αν έχει υπάρξει οποιαδήποτε αποτυχία που θα προκαλούσε την ματαίωση της εισόδου στην συνεδρία. Σημειώστε επίσης ότι το GDM θα μπλοκάρει-παγώσει μέχρι το τέλος της εκτέλεσης του σεναρίου, έτσι αν κάποιο από αυτά τα σενάρια κρεμάσει, αυτό θα προκαλέσει το κρέμασμα και της διεργασίας εισόδου.

Όταν ο Xserver για το GUI εισόδου εκκινήσει με επιτυχία, αλλά πριν το GUI προβληθεί, το GDM θα εκτελέσει το σενάριο `Init`. Αυτό το σενάριο είναι χρήσιμο για την εκκίνηση προγραμμάτων που πρέπει να εκτελούνται κατά την προβολή της οθόνης εισόδου, ή για την υλοποίηση οποιασδήποτε ειδικής αρχικοποίησης απαιτείται.

Μετά την επιτυχημένη πιστοποίηση του χρήστη το GDM θα εκτελέσει το σενάριο `PostLogin`. Αυτό γίνεται πριν πραγματοποιηθεί οποιαδήποτε ρύθμιση της συνεδρίας, συμπεριλαμβανομένης της κλήσης του pam_open_session. Αυτό το σενάριο είναι χρήσιμο για την πραγματοποίηση οποιασδήποτε αρχικοποίησης της συνεδρίας που πρέπει να γίνει πριν την εκκίνηση της. Για παράδειγμα, μπορείτε να ρυθμίσετε τον κατάλογο $HOME του χρήστη αν χρειάζεται.

Μετά την έναρξη της συνεδρίας του χρήστη, το GDM θα εκτελέσει το σενάριο `PreSession`. Αυτό το σενάριο είναι χρήσιμο για οποιαδήποτε ενέργεια στην αρχή της συνεδρίας που πρέπει να γίνει μετά την εκκίνηση της συνεδρίας. Μπορεί να χρησιμοποιηθεί για την διαχείριση της συνεδρίας ή για καταγραφή δεδομένων της, για παράδειγμα.

Όταν ο χρήστης τερματίσει την συνεδρία του, το GDM θα εκτελέσει το σενάριο `PostSession`. Σημειώστε ότι ο Xserver θα έχει σταματήσει την στιγμή που θα εκτελείται αυτό το σενάριο, έτσι δεν θα πρέπει να είναι αναγκαία η πρόσβαση σε αυτόν.

Σημειώστε ότι το σενάριο `PostSession` θα εκτελεστεί ακόμη και όταν η οθόνη αποτύχει να ανταποκριθεί λόγω κάποιου λάθους I/O ή συναφούς. Κατά συνέπεια, δεν υπάρχει βεβαιότητα ότι οι εφαρμογές X θα δουλέψουν κατά την εκτέλεση του σεναρίου.

Όλα τα παραπάνω σενάρια θα ρυθμίσουν την μεταβλητή περιβάλλοντος `$RUNNING_UNDER_GDM` σε `yes`. Αν τα σενάρια χρησιμοποιούνται και από άλλους διαχειριστές οθόνης, αυτό σας επιτρέπει να αναγνωρίσετε πότε το GDM καλεί αυτά τα σενάρια, έτσι ώστε να εκτελείτε συγκεκριμένο κώδικα όταν χρησιμοποιείται το GDM.

### Ρύθμιση αυτόματης εκκίνησης

Ο κατάλογος `<share>/gdm/autostart/LoginWindow` περιέχει αρχεία στην μορφή που ορίζει η "FreeDesktop.org Desktop Application Autostart Specification". Τυποποιημένες λειτουργίες από τις προδιαγραφές μπορούν να χρησιμοποιηθούν για προσδιοριστεί αν προγράμματα θα πρέπει να επανεκκινούν αυτόματα ή θα εκκινούν μόνο αν έχει οριστεί μια τιμή στην διαμόρφωση του GConf, κλπ.

Οποιοδήποτε αρχείο `.desktop` σε αυτόν τον κατάλογο θα προκαλέσει την αυτόματη εκκίνηση του συνδεδεμένου προγράμματος με την οθόνη εισόδου του greeter. Από προεπιλογή, το GDM αποστέλλεται με αρχεία που εκκινούν αυτόματα το ίδιο το gdm-simple-greeter, την εφαρμογή gnome-power-manager, τον δαίμονα gnome-settings-daemon, και τον διαχειριστή παραθύρων metacity. Αυτές οι εφαρμογές είναι απαραίτητες στο greeter για να λειτουργήσει. Επιπρόσθετα, αρχεία desktop παρέχονται για την εκκίνηση διαφόρων εφαρμογών AT αν τιμές διαμόρφωσης που προσδιορίζονται στην ενότητα διαμόρφωση προσβασιμότητας παρακάτω ρυθμιστούν κατάλληλα.

### Σενάριο εντολών Xsession

Υπάρχει επίσης ένα σενάριο εντολών `Xsession` που βρίσκεται στο `<etc>/gdm/Xsession` και που καλείται μεταξύ των σεναρίων `PreSession` και`PostSession`. Αυτό το σενάριο δεν υποστηρίζει ενέργειες ανά τερματικό όπως τα άλλα. Χρησιμοποιείται για την εκκίνηση της συνεδρίας του χρήστη. Εκτελείται από τον χρήστη, και θα εκτελεστεί όποια συνεδρία και αν προσδιορίστηκε από το αρχείο Desktop session που επέλεξε ο χρήστης για να εκκινήσει.

### Διαμόρφωση δαίμονα

Ο δαίμονας του GDM ρυθμίζεται χρησιμοποιώντας το αρχείο `<etc>/gdm/custom.conf`. Οι προεπιλεγμένες τιμές είναι αποθηκευμένες στο αρχείο του GConf `gdm.schemas`. Συνίσταται οι τελικοί χρήστες να μετατρέπουν το αρχείο `<etc>/gdm/custom.conf` επειδή το αρχείο gdm.schemas μπορεί να επανεγγραφεί κατά την αναβάθμιση του συστήματος με μια νεότερη έκδοση του GDM.

Σημειώστε ότι παλαιότερες εκδόσεις του GDM υποστήριζαν πρόσθετες επιλογές διαμόρφωσης που δεν υποστηρίζονται πλέον στις τελευταίες εκδόσεις του GDM.

Το αρχείο `<etc>/gdm/custom.conf` είναι σε μορφή `keyfile`. Λέξεις κλειδί σε αγκύλες καθορίζουν ενότητες ομάδων, συμβολοσειρές πριν το σημείο ίσον (=) είναι κλειδιά και τα δεδομένα μετά το σημείο ίσον αντιπροσωπεύουν την τιμή τους. Οι άδειες γραμμές ή εκείνες που αρχίζουν με το σημείο δίεση (#) αγνοούνται.

Το `<etc>/gdm/custom.conf` υποστηρίζει τις ενότητες ομάδων "[daemon]", "[security]", και "[xdmcp]". Μέσα σε κάθε ομάδα, υπάρχουν ιδιαίτερα ζεύγη κλειδιού/τιμής που μπορούν να προσδιοριστούν για να μετατραπεί η συμπεριφορά του GDM. Για παράδειγμα, για να ενεργοποιήσουμε χρονομετρούμενη σύνδεση και να ορίσουμε ότι ο χρήστης της πρέπει να έχει το όνομα "you", θα πρέπει να τροποποιήσουμε το αρχείο ώστε να περιέχει τις παρακάτω γραμμές:

    [daemon]
    TimedLoginEnable=true
    TimedLogin=you

Ακολουθεί πλήρης λίστα υποστηριζόμενων κλειδιών διαμόρφωσης:

#### [chooser]

Multicast

-     Multicast=false

  Αν είναι αληθές και το IPv6 είναι ενεργοποιημένο, η εφαρμογή chooser θα στείλει multicast query στο τοπικό δίκτυο και θα συλλέξει απαντήσεις από τους υπολογιστές που ανήκουν στην ομάδα multicast.

MulticastAddr

-     MulticastAddr=ff02::1

  Αυτός είναι η multicast διεύθυνση Link-local.

#### [daemon]

Ενεργοποίηση σύνδεσης με καθορισμένη καθυστέρηση

-     TimedLoginEnable=false

  Αν ο χρήστης που ορίζεται στο `TimedLogin` πρέπει να συνδεθεί μετά από έναν αριθμό δευτερολέπτων (που ρυθμίζονται με το `TimedLoginDelay`) αδράνειας στην οθόνη εισόδου. Αυτό είναι χρήσιμο για δημόσια τερματικά ή και για οικιακούς χρήστες. Αν ο χρήστης χρησιμοποιήσει το πληκτρολόγιο ή περιηγηθεί στο μενού, το διάστημα αναμονής θα επαναρυθμιστεί σε `TimedLoginDelay` ή σε 30 δευτερόλεπτα, όποιο από τα δύο είναι το μεγαλύτερο. Αν ο χρήστης δεν εισάγει όνομα αλλά απλά πατήσει το πλήκτρο ENTER ενώ το πρόγραμμα εισόδου ζητά το όνομα χρήστη, τότε το GDM θα υποθέσει ότι ο χρήστης θέλει να συνδεθεί άμεσα σαν ο χρήστης με την χρονομετρούμενη σύνδεση. Σημειώστε ότι δεν θα ζητηθεί κωδικός για αυτόν τον χρήστη έτσι πρέπει να είστε προσεκτικοί, αν και χρησιμοποιώντας το PAM αυτό μπορεί να διαμορφωθεί έτσι ώστε να απαιτεί εισαγωγή κωδικού πριν επιτραπεί η σύνδεση. Ανατρέξτε στην ενότητα "Security->PAM" του εγχειριδίου για περισσότερες πληροφορίες, ή για βοήθεια αν αυτό το χαρακτηριστικό φαίνεται να μην λειτουργεί.

Σύνδεση σε καθορισμένο χρονικό διάστημα

-     TimedLogin=

  Αυτός είναι ο χρήστης που πρέπει να συνδεθεί μετά από ένα καθορισμένο αριθμό δευτερολέπτων αδράνειας.

  Αν η τιμή τελειώνει με κάθετη γραμμή | (το σύμβολο της εντολής pipe-διοχέτευση), τότε το GDM θα εκτελέσει την εφαρμογή που καθορίζεται και θα χρησιμοποιήσει όποια τιμή αποδοθεί στην κανονική έξοδο από αυτήν, σαν τιμή χρήστη. Το πρόγραμμα εκτελείται με την μεταβλητή περιβάλλοντος DISPLAY ρυθμισμένη έτσι ώστε να είναι δυνατόν να προσδιορίζεται ο χρήστης ανά τερματικό. Για παράδειγμα αν η τιμή είναι "/usr/bin/getloginuser|", τότε θα εκτελεστεί το πρόγραμμα "/usr/bin/getloginuser" για να βρεθεί η τιμή που ορίζει τον χρήστη.

Σύνδεση με καθορισμένη χρονική καθυστέρηση

-     TimedLoginDelay=30

  Καθυστέρηση σε δευτερόλεπτα πριν ο χρήστης `TimedLogin` συνδεθεί.

Ενεργοποίηση αυτόματης σύνδεσης

-     AutomaticLoginEnable=false

  Αν αληθές, ο χρήστης που ορίζεται στο `AutomaticLogin` πρέπει να συνδεθεί άμεσα. Αυτό το χαρακτηριστικό είναι σαν το timed login με καθυστέρηση 0.

Αυτόματη σύνδεση

-     AutomaticLogin=

  Αυτός είναι ο χρήστης που πρέπει να συνδεθεί αμέσως αν το `AutomaticLoginEnable` είναι αληθές.

  Αν η τιμή τελειώνει με κάθετη γραμμή | (το σύμβολο της εντολής pipe-διοχέτευση), τότε το GDM θα εκτελέσει την εφαρμογή που καθορίζεται και θα χρησιμοποιήσει όποια τιμή αποδοθεί στην κανονική έξοδο από αυτήν, σαν τιμή χρήστη. Το πρόγραμμα εκτελείται με την μεταβλητή περιβάλλοντος DISPLAY ρυθμισμένη έτσι ώστε να είναι δυνατόν να προσδιορίζεται ο χρήστης ανά τερματικό. Για παράδειγμα αν η τιμή είναι "/usr/bin/getloginuser|", τότε θα εκτελεστεί το πρόγραμμα "/usr/bin/getloginuser" για να βρεθεί η τιμή που ορίζει τον χρήστη.

Χρήστης

-     User=gdm

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

Ομάδα

-     Group=gdm

  The group name 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.

#### Επιλογές αποσφαλμάτωσης

#### [debug]

Ενεργοποίηση

-     Enable=false

  Για να ενεργοποιήσετε την αποσφαλμάτωση, ορίστε το κλειδί debug/Enable σε «true» στο αρχείο `<etc>/gdm/custom.conf` και επανεκκινήστε το GDM. Μετά, η έξοδος αποσφαλμάτωσης θα καταγράφεται στο αρχείο καταγραφής συστήματος (`<var>/log/messages` ή `<var>/adm/messages` ανάλογα με το Λειτουργικό σας σύστημα).

#### Επιλογές ασφαλείας

#### [security]

Απαγόρευση TCP

-     DisallowTCP=true

  Αν αληθές, τότε πάντα επισυνάπτει το όρισμα `-nolisten tcp` στην γραμμή εντολών κατά την εκκίνηση συνδεδεμένων Xservers, κατά συνέπεια απαγορεύει συνδέσεις TCP. Αυτή είναι μια πιο ασφαλής διαμόρφωση αν δεν χρησιμοποιείτε απομακρυσμένες συνδέσεις.

#### Υποστήριξη XDCMP

#### [xdmcp]

Οθόνες-τερματικά ανά υπολογιστή δικτύου

-     DisplaysPerHost=1

  Για να μην επιτρέπει σε επιτιθέμενους να γεμίζουν την λίστα αναμονής, το GDM επιτρέπει μία μόνο σύνδεση για κάθε απομακρυσμένο υπολογιστή. Αν θέλετε να παρέχετε υπηρεσίες οθόνης σε υπολογιστές με περισσότερες από μία οθόνες, πρέπει να αυξήσετε αυτή την τιμή.

  Σημειώστε ότι ο αριθμός συνδεδεμένων τερματικών δεν περιορίζεται. Μόνο οι απομακρυσμένες συνδέσεις μέσω XDMCP περιορίζονται από αυτή την επιλογή διαμόρφωσης.

Ενεργοποίηση

-     Enable=false

  Ρυθμίζοντας την τιμή σε true ενεργοποιείται η υποστήριξη XDMCP επιτρέποντας την διαχείριση από το GDM απομακρυσμένων οθονών/τερματικών X.

  Το `gdm` παρακολουθεί για αιτήσεις στην θύρα UDP 177. Δείτε την επιλογή θύρας για περισσότερες πληροφορίες.

  Αν το GDM μεταγλωττιστεί έτσι ώστε να το υποστηρίζει, η πρόσβαση από απομακρυσμένες οθόνες μπορεί να ελεγχθεί χρησιμοποιώντας την βιβλιοθήκη του TCP Wrapper. Το όνομα της υπηρεσίας είναι `gdm`

  Θα πρέπει να προσθέσετε το

      gdm:.my.domain

  στο αρχείο `<etc>/hosts.allow`, σε συνάρτηση με την διαμόρφωση του TCP Wrapper που έχετε. Δείτε την σελίδα hosts.allow man page για λεπτομέρειες.

  Παρακαλώ σημειώστε ότι το XDMCP δεν είναι ιδιαίτερα ασφαλές πρωτόκολλο και ότι είναι καλή ιδέα να φράξετε την θύρα UDP 177 στο τείχος προστασίας εκτός και αν το χρειάζεστε πραγματικά.

HonorIndirect

-     HonorIndirect=true

  Ενεργοποιεί την δυνατότητα XDMCP INDIRECT choosing (π.χ. απομακρυσμένη εκτέλεση του `gdmchooser`) για τερματικά-X που δεν παρέχουν τον δικό τους περιηγητή οθόνης.

MaxPending

-     MaxPending=4

  Για την αποφυγή επιθέσεων τύπου denial of service, το GDM έχει σταθερό μέγεθος λίστας αναμονής συνδέσεων που εκκρεμούν. Μόνο ο αριθμός των οθονών που δίνει η τιμή του MaxPending μπορούν να εκκινήσουν ταυτόχρονα.

  Παρακαλώ σημειώστε ότι αυτή η παράμετρος δεν περιορίζει τον αριθμό των απομακρυσμένων οθονών που μπορούμε να διαχειριστούμε. Περιορίζει μόνο τον αριθμό των οθονών που εκκινούν μια σύνδεση ταυτόχρονα.

MaxSessions

-     MaxSessions=16

  Καθορίζει τον μέγιστο αριθμό απομακρυσμένων συνδέσεων με οθόνες που θα είναι υπό διαχείριση ταυτόχρονα. Π.χ. ο συνολικός αριθμός απομακρυσμένων οθονών που επιτρέπεται να χρησιμοποιήσουν τον υπολογιστή σας.

MaxWait

-     MaxWait=30

  Όταν το GDM είναι έτοιμο να διαχειριστεί μια οθόνη στέλνει ένα πακέτο ACCEPT σε αυτό που περιέχει ένα μοναδικό id συνεδρίας το οποίο θα χρησιμοποιηθεί σε μελλοντικές συνομιλίες XDMCP.

  Το GDM τοποθετεί το session id στην εκκρεμή λίστα αναμονής περιμένοντας το τερματικό να απαντήσει με ένα αίτημα MANAGE.

  Αν δεν ληφθεί απάντηση μέσα σε διάστημα MaxWait δευτερολέπτων, το GDM δηλώνει το τερματικό dead και το διαγράφει από την εκκρεμή λίστα αναμονής ελευθερώνοντας την θέση για άλλες οθόνες.

MaxWaitIndirect

-     MaxWaitIndirect=30

  Η παράμετρος MaxWaitIndirect καθορίζει τον μέγιστο αριθμό δευτερολέπτων μεταξύ της στιγμής που ο χρήστης επιλέγει έναν υπολογιστή και το επακόλουθο έμμεσο αίτημα όπου ο χρήστης συνδέεται στον υπολογιστή. Όταν το όριο χρόνου ξεπερνιέται, η πληροφορία για τον επιλεγμένο υπολογιστή απορρίπτεται και η έμμεση υποδοχή ελευθερώνεται για άλλες οθόνες. Η πληροφορία μπορεί να απορριφθεί νωρίτερα αν υπάρχουν περισσότεροι υπολογιστές που προσπαθούν να στείλουν έμμεσα ερωτήματα τότε `MaxPendingIndirect`.

Θύρα

-     Port=177

  Ο αριθμός της θύρας UDP που το `gdm` παρακολουθεί για αιτήματα XDMCP. Μην κάνετε αλλαγές εκτός και αν γνωρίζετε τι κάνετε.

Willing

-     Willing=<etc>/gdm/Xwilling

  Όταν το μηχάνημα απαντά με ένα πακέτο WILLING μετά από ένα QUERY στέλνει μια συμβολοσειρά που δίνει την τρέχουσα κατάσταση αυτού του εξυπηρετητή. Το προεπιλεγμένο μήνυμα είναι το ID του συστήματος, αλλά είναι δυνατόν να δημιουργηθεί ένα σενάριο εντολών που προβάλλει προσαρμοσμένο μήνυμα. Αν το σενάριο αυτό δεν υπάρχει ή το κλειδί είναι κενό αποστέλλεται το προεπιλεγμένο μήνυμα. Αν το σενάριο εκτελεστεί με επιτυχία και δώσει κάποιο αποτέλεσμα, η πρώτη γραμμή της εξόδου του στέλνεται (και μόνο η πρώτη γραμμή). Εκτελείται το πολύ μία φορά κάθε 3 δευτερόλεπτα για να προλάβει πιθανό denial of service πλημμυρίζοντας το μηχάνημα με πακέτα QUERY.

### Απλή διαμόρφωση του greeter

Η προεπιλεγμένη εφαρμογή greeter του GDM ονομάζεται simple greeter και διαμορφώνεται μέσω του GConf. Οι προεπιλεγμένες τιμές αποθηκεύονται στο GConf στο αρχείο `gdm-simple-greeter.schemas`. Αυτές οι προεπιλογές μπορούν να παρακαμφθούν αν ο χρήστης "gdm" έχει εγγράψιμο κατάλογο $HOME για να αποθηκεύσει τις ρυθμίσεις GConf. Αυτές οι τιμές μπορούν να μετατραπούν χρησιμοποιώντας τις εφαρμογές `gconftool-2` ή `gconf-editor`. Οι παρακάτω επιλογές διαμόρφωσης υποστηρίζονται:

### Κλειδιά διαμόρφωσης του greeter

/apps/gdm/simple-greeter/banner_message_enable

-     false (boolean)

  Ελέγχει αν το μήνυμα κειμένου banner προβάλλεται.

/apps/gdm/simple-greeter/banner_message_text

-     NULL (συμβολοσειρά)

  Καθορίζει το κείμενο του μηνύματος banner που θα προβάλλεται στο παράθυρο του greeter.

/apps/gdm/simple-greeter/disable_restart_buttons

-     false (boolean)

  Ελέγχει αν θα προβάλλονται τα πλήκτρα τερματισμού και επανεκκίνησης στο παράθυρο εισόδου.

/apps/gdm/simple-greeter/disable_user_list

-     false (boolean)

  Αν αληθές, ο περιηγητής προσώπων με γνωστούς χρήστες δεν προβάλλεται στο παράθυρο εισόδου.

/apps/gdm/simple-greeter/logo_icon_name

-     computer (συμβολοσειρά)

  Ορισμός του ονόματος της προσαρμοσμένης εικόνας για χρήση με το greeter.

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

-     [] (string list)

  Ρύθμιση μιας λίστας γλωσσών που θα προβάλλονται από προεπιλογή στο παράθυρο εισόδου. Η προεπιλεγμένη τιμή είναι "[]". Με τις αρχικές ρυθμίσεις μόνο η προεπιλεγμένη γλώσσα του συστήματος εμφανίζεται και η επιλογή "Other..." η οποία αναπτύσσει ένα παράθυρο διαλόγου που δείχνει μια πλήρη λίστα των διαθέσιμων γλωσσών από τις οποίες μπορεί να επιλέξει ο χρήστης.

  Δεν αναμένεται από τους χρήστες να αλλάξουν αυτή την ρύθμιση χειροκίνητα. Αντίθετα το GDM καταγράφει κάθε γλώσσα που επιλέχθηκε σε αυτό το κλειδί διαμόρφωσης και θα την προβάλει στο σύνθετο πλαίσιο μαζί με την επιλογή "Other...". Με αυτό τον τρόπο οι συχνότερα χρησιμοποιούμενες γλώσσες είναι ευκολότερο να επιλεγούν.

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

-     [] (string list)

  Ρύθμιση μιας λίστας διατάξεων πληκτρολογίου που θα προβάλλεται από προεπιλογή στον πίνακα εισόδου. Η προεπιλεγμένη τιμή είναι "[]". Με τις αρχικές ρυθμίσεις μόνο η προεπιλεγμένη διάταξη πληκτρολογίου του συστήματος εμφανίζεται και η επιλογή "Other..." η οποία αναπτύσσει ένα παράθυρο διαλόγου που περιέχει μια πλήρη λίστα διαθέσιμων διατάξεων πληκτρολογίου που μπορεί να επιλέξει ο χρήστης.

  Δεν αναμένεται από τους χρήστες να αλλάξουν αυτή την ρύθμιση χειροκίνητα. Αντίθετα το GDM καταγράφει κάθε διάταξη πληκτρολογίου που επιλέγεται σε αυτό το κλειδί διαμόρφωσης και την προβάλλει στο σύνθετο πλαίσιο μαζί με την επιλογή "Other...". Με αυτόν τον τρόπο, οι συχνά χρησιμοποιούμενες διατάξεις πληκτρολογίου είναι ευκολότερο να επιλεγούν.

/apps/gdm/simple-greeter/wm_use_compiz

-     false (boolean)

  Ελέγχει αν χρησιμοποιείται το compiz αντί για το metacity σαν διαχειριστής παραθύρων.

### Διαμόρφωση προσιτότητας

Αυτή η ενότητα περιγράφει τις επιλογές διαμόρφωσης της διευκόλυνσης πρόσβασης που διαθέτει το GDM.

#### GDM Accessibility Dialog And GConf Keys

Ο πίνακας εφαρμογών του greeter του GDM προβάλλει στην οθόνη εισόδου ένα εικονίδιο προσιτότητας. Με κλικ στο εικονίδιο ανοίγει ο διάλογος προσιτότητας του GDM, εκεί υπάρχει μία λίστα πλαισίων ελέγχου, ώστε να μπορεί ο χρήστης να ενεργοποιήσει ή να απενεργοποιήσει τα σχετικά εργαλεία διευκόλυνσης της πρόσβασης.

Τα πλαίσια ελέγχου που αντιστοιχούν στα εργαλεία υποβοήθησης πληκτρολόγιο οθόνης, μεγεθυντής οθόνης και αναγνώστης οθόνης επηρεάζουν τα τρία κλειδιά GConf που περιγράφονται στην επόμενη ενότητα αυτού του εγγράφου. Ενεργοποιώντας ή απενεργοποιώντας αυτά τα πλαίσια, τα αντίστοιχα κλειδιά GConf ορίζονται σε "true" ή "false". Όταν το κλειδί GConf ρυθμίζεται σε "true" -αληθές- το συνδεδεμένο στο κλειδί εργαλείο υποβοήθησης εκκινεί. Όταν το κλειδί GConf ρυθμίζεται σε "false" -ψευδές- κάθε συνδεδεμένο εργαλείο προσιτότητας που εκτελείται τερματίζεται. Αυτά τα κλειδιά GConf δεν επανέρχονται σε μία προεπιλεγμένη κατάσταση μετά την είσοδο του χρήστη. Επομένως, τα εργαλεία υποβοήθησης της πρόσβασης που εκτελούνταν κατά την τελευταία συνεδρία εισόδου του GDM θα εκκινήσουν αυτόματα στην επόμενη συνεδρία σύνδεσης του GDM.

Τα άλλα πλαίσια ελέγχου στον διάλογο προσιτότητας του GDM δεν έχουν αντιστοιχα κλειδιά GConf επειδή δεν εκκινούν πρόσθετες εφαρμογές για να παρέχουν τις λειτουργίες διευκόλυνσης της πρόσβασης που προσφέρουν. Αυτές οι επιλογές αντιστοιχούν σε λειτουργίες προσιτότητας που παρέχονται από τον εξυπηρετητή Χ, ο οποίος εκτελείται πάντα κατά την συνεδρία GDM.

#### Κλειδιά GConf διαμόρφωσης προσιτότητας

Το GDM παρέχει τα παρακάτω κλειδιά GConf για τον έλεγχο των λειτουργιών προσιτότητας που προσφέρει:

#### Κλειδιά διαμόρφωσης του GDM

/desktop/gnome/interface/accessibility

-     false (boolean)

  Ελέγχει αν η υποδομή προσιτότητας θα εκκινηθεί με το γραφικό περιβάλλον του GDM. Αυτό είναι αναγκαίο για να λειτουργήσουν πολλές εφαρμογές της κατηγορίας τεχνολογίας προσιτότητας.

/desktop/gnome/applications/at/screen_magnifier_enabled

-     false (boolean)

  Αν καθοριστεί, τα εργαλεία υποβοήθησης που αντιστοιχούν σε αυτό το κλειδί GConf θα εκκινήσουν με την εφαρμογή γραφικού περιβάλλοντος του GDM. Από προεπιλογή αυτή είναι μια εφαρμογή μεγέθυνσης της οθόνης.

/desktop/gnome/applications/at/screen_keyboard_enabled

-     false (boolean)

  Αν καθοριστεί, τα εργαλεία υποβοήθησης που αντιστοιχούν σε αυτό το κλειδί GConf θα εκκινήσουν με την εφαρμογή γραφικού περιβάλλοντος του GDM. Από προεπιλογή αυτή είναι μία εφαρμογή προβολής πληκτρολογίου οθόνης.

/desktop/gnome/applications/at/screen_reader_enabled

-     false (boolean)

  Αν καθοριστεί, τα εργαλεία υποβοήθησης που αντιστοιχούν σε αυτό το κλειδί GConf θα εκκινήσουν με την εφαρμογή γραφικού περιβάλλοντος του GDM. Από προεπιλογή αυτή είναι μία εφαρμογή αναγνώστη οθόνης.

#### Αντιστοιχίζοντας κλειδιά GConf σε εργαλεία υποβοήθησης της πρόσβασης

Για το κλειδί GConf screen_magnifier_enabled, το screen_keyboard_enabled, και το screen_reader_enabled, το εργαλείο υποβοήθησης που εκκινεί εξαρτάταιαπό τα αρχεία desktop που βρίσκονται στο κατάλογο autostart του GDM όπως περιγράφεται στην ενότητα "Ρύθμιση αυτόματης εκκίνησης" αυτού του εγχειριδίου. Κάθε αρχείο desktop στον κατάλογο autostart του GDM μπορεί να αντιστοιχηθεί με αυτά τα κλειδιά GConf μέσω προσδιορισμού του συγκεκριμένου κλειδιού GConf στην τιμή AutostartCondition στο αρχείο desktop. Έτσι η ακριβής γραμμή AutostartCondition στο αρχείο desktop θα μπορούσε να είναι μία από τις παρακάτω:

    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

Όταν ένα κλειδί προσιτότητας είναι αληθές, τότε κάθε εφαρμογή που είναι συνδεδεμένη με αυτό το κλειδί σε ένα αρχείο αυτόματης εκκίνησης desktop του GDM θα εκκινηθεί (εκτός και αν το κλειδί Hidden έχει καθοριστεί σε true στο ίδιο αρχείο desktop). Ένα μοναδικό κλειδί GConf μπορεί δηλαδή να εκκινήσει πολλαπλά εργαλεία υποβοήθησης αν υπάρχουν τα αντίστοιχα πολλαπλά αρχεία desktop με αυτή την AutostartCondition στον κατάλογο autostart του GDM.

#### Παράδειγμα μετατροπής της διαμόρφωσης εργαλείου προσιτότητας

Για παράδειγμα, αν το GNOME διανέμεται με το GOK σαν το προεπιλεγμένο πληκτρολόγιο οθόνης, τότε αυτό θα μπορούσε να αντικατασταθεί με μία διαφορετική εφαρμογή αν το επιθυμείτε. Για να αντικαταστήσετε το GOK με την εφαρμογή πληκτρολογίου οθόνης "onboard" και επιπρόσθετα να ενεργοποιήσετε το εργαλείο υποβοήθησης "mousetweaks" για υποστήριξη κρατήματος κλικ, τότε χρειάζεται η παρακάτω διαμόρφωση.

Δημιουργήστε ένα αρχείο desktop για το onboard και ένα δεύτερο για το mousetweaks, για παράδειγμα, onboard.desktop και mousetweaks.desktop. Αυτά τα αρχεία πρέπει να τοποθετηθούν στον κατάλογο autostart του GDM και να είναι στην μορφή που περιγράφηκε στην ενότητα "Ρύθμιση αυτόματης εκκίνησης" αυτού του εγγράφου.

Το παρακάτω είναι ένα παράδειγμα αρχείου `onboard.desktop`:

    [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

Το παρακάτω είναι ένα παράδειγμα αρχείου `mousetweaks.desktop`:

    [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

Προσέξτε την γραμμή με την AutostartCondition που συνδέει και τα δύο αρχεία desktop με το κλειδί GConf για το πληκτρολόγιο οθόνης.

Για να απενεργοποιήσετε την εκκίνηση του GOK, το αρχείο desktop για το πληκτρολόγιο οθόνης GOK πρέπει να απομακρυνθεί ή να απενεργοποιηθεί. Διαφορετικά η κάρτα και το GOK θα εκκινήσουν ταυτόχρονα. Αυτό μπορεί να επιτευχθεί αφαιρώντας το αρχείο gok.desktop από τον κατάλογο autostart του GDM, ή προσθέτοντας τον ορισμό κλειδιού "Hidden=true" στο αρχείο gok.desktop.

Μετά την πραγματοποίηση αυτών των αλλαγών, το GOK δεν θα εκκινεί πλέον όταν ο χρήστης ενεργοποιεί το πληκτρολόγιο οθόνης στην συνεδρία GDM· αντί γι' αυτό θα εκκινούν το onboard και το mousetweaks.

### Γενικές ρυθμίσεις συνεδρίας

O greeter του GDM χρησιμοποιεί ένα μέρος από την δομή που η συνεδρία της επιφάνειας εργασίας χρησιμοποιεί επίσης. Και έτσι, επηρεάζεται από έναν αριθμό όμοιων ρυθμίσεων του GConf. Για κάθε μία από αυτές τις ρυθμίσεις ο greeter θα χρησιμοποιήσει τις προεπιλεγμένες τιμές εκτός και αν παρακάμπτονται συγκεκριμένα από α) εγκατεστημένους επιτακτικούς κανόνες του GDM β) επιτακτικούς κανόνες του συστήματος. Το GDM εγκαθιστά τους δικούς του επιτακτικούς κανόνες για να αποκλείσει κάποιες ρυθμίσεις για λόγους ασφαλείας.

### Δαίμονας ρυθμίσεων του GNOME

Το GDM ενεργοποιεί τα εξής πρόσθετα του gnome-settings-daemon: a11y-keyboard, background, sound, xsettings.

Αυτά είναι υπεύθυνα για πράγματα όπως η εικόνα παρασκηνίου, οι ρυθμίσεις γραμματοσειράς και θέματος, ηχητικά γεγονότα, κλπ.

Τα πρόσθετα μπορούν επίσης να απενεργοποιηθούν χρησιμοποιώντας το GConf. Για παράδειγμα, αν θέλετε να απενεργοποιήσετε το πρόσθετο ήχου τότε απενεργοποιήστε το ακόλουθο κλειδί: `/apps/gdm/simple-greeter/settings-manager-plugins/sound/active`.

### Διαμόρφωση της συνεδρίας GDM

Οι συνεδρίες του GDM καθορίζονται χρησιμοποιώντας τις προδιαγραφές της FreeDesktop.org Desktop Entry Specification, τις οποίες μπορείτε να εξετάσετε στο ακόλουθο 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>/gdm/BuiltInSessions`, and `<share>/xsessions`. By default the `<dmconfdir>` is set to `<etc>/dm/` unless GDM is configured to use a different directory via the "--with-dmconfdir" option.

Μια συνεδρία μπορεί να απενεργοποιηθεί μετατρέποντας το αρχείο desktop με την προσθήκη μιας γραμμής που περιέχει `Hidden=true`.

Τα αρχεία desktop του GDM υποστηρίζουν μια επέκταση ειδική για το GDM, ένα κλειδί που ονομάζεται «X-GDM-BypassXsession». Αν το κλειδί δεν καθορίζεται σε ένα αρχείο desktop, η τιμή από προεπιλογή είναι «false». Αν αυτό το κλειδί ορίζεται σε «true» σε ένα αρχείο desktop, τότε το GDM θα εκκινήσει το πρόγραμμα που καθορίζεται στο κλειδί «Exec» του αρχείου desktop όταν ξεκινά τη συνεδρία του χρήστη. Δε θα τρέξει το πρόγραμμα μέσω του σεναρίου `<etc>/gdm/Xsession`, που είναι η κανονική συμπεριφορά. Αφού η παράκαμψη του σεναρίου `<etc>/gdm/Xsession` αποφεύγει την έναρξη της συνεδρίας του χρήστη με τις κανονικές ρυθμίσεις του συστήματος και του χρήστη, οι συνερδίες που ξεκινούν με αυτόν τον τρόπο είναι χρήσιμες για προβλήματα αποσφαλμάτωσης στα σενάρια του συστήματος ή του χρήστη που μπορεί να αποτρέπουν ένα χρήστη από την έναρξη μιας συνεδρίας.

### Συνεδρία χρήστη του GDM και διαμόρφωση γλώσσας

Οι προεπιλογές του χρήστη για την συνεδρία και την γλώσσα αποθηκεύονται στο αρχείο `~/.dmrc`. Όταν ένας χρήστης συνδέεται για πρώτη φορά, αυτό το αρχείο δημιουργείται με τις αρχικές του επιλογές. Ο χρήστης μπορεί να αλλάξει αυτές τις τιμές απλά επιλέγοντας διαφορετική τιμή κατά την είσοδο του. Το GDM θα αποθηκεύσει την αλλαγή για τις επόμενες συνδέσεις.

Το αρχείο `~/.dmrc` είναι σε τυποποιημένη μορφή `INI`. Έχει μια ενότητα με όνομα `[Desktop]` η οποία έχει δύο κλειδιά: `Session` και `Language`.

Το κλειδί `Session` καθορίζει το όνομα του αρχείου `.desktop` της συνεδρίας που ο χρήστης επιθυμεί να χρησιμοποιεί κανονικά χωρίς την επέκταση `.desktop`. Το κλειδί `Language` καθορίζει την γλώσσα που ο χρήστης επιθυμεί να χρησιμοποιεί από προεπιλογή. Αν οποιαδήποτε από αυτά τα κλειδιά λείπει, χρησιμοποιείται η προεπιλογή του συστήματος. Το αρχείο κανονικά θα είναι όπως παρακάτω:

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

## Εντολές GDM

### Εντολές GDM για τον χρήστη root

Το πακέτο GDM παρέχει τις παρακάτω εντολές στο `sbindir` που προορίζονται για εκτέλεση από τον χρήστη root:

#### Επιλογές γραμμής εντολών `gdm`

Το `gdm` είναι ο κύριος δαίμονας που ρυθμίζει το περιβάλλον γραφικής σύνδεσης και ξεκινά τους αναγκαίους βοηθούς.

#### Επιλογές γραμμής εντολών `gdm`

-?, --help

- Δίνει μια σύντομη επισκόπηση των επιλογών της γραμμής εντολών.

--fatal-warnings

- Όρισε όλες οι προειδοποιήσεις να προκαλούν τον τερματισμό του GDM.

--timed-exit

- Έξοδος μετά από 30 δευτερόλεπτα. Χρήσιμο για την αποσφαλμάτωση.

--version

- Εκτύπωση της έκδοσης του δαίμονα του GDM.

#### `gdm-restart` Επιλογές γραμμής εντολών

Το `gdm-restart` τερματίζει και επανεκκινεί το GDM στέλνοντας στον δαίμονα του GDM ένα σήμα HUP. Αυτή η εντολή θα τερματίσει άμεσα όλες τις συνεδρίες και θα αποσυνδέσει τους χρήστες που είναι συνδεδεμένοι με το GDM.

#### `gdm-safe-restart` Επιλογές γραμμής εντολών

Το `gdm-safe-restart` τερματίζει και επανεκκινεί το GDM στέλνοντας στον δαίμονα του GDM ένα σήμα USR1. Το GDM θα επανεκκινηθεί μόλις όλοι οι χρήστες αποσυνδεθούν.

#### `gdm-stop` Επιλογές γραμμής εντολών

Το `gdm-stop` τερματίζει το GDM στέλνοντας στον δαίμονα του GDM ένα σήμα TERM.

## Αντιμετώπιση προβλημάτων

Αυτή η ενότητα παρουσιάζει χρήσιμες συμβουλές για να βάλετε το GDM σε λειτουργία. Γενικά, αν έχετε ένα πρόβλημα χρησιμοποιώντας το GDM, μπορείτε να υποβάλετε μία αναφορά σφάλματος ή να στείλετε email στην λίστα gdm-list. Πληροφορίες σχετικές με το πως μπορείτε να το κάνετε βρίσκονται στην εισαγωγή του εγγράφου.

Αν το GDM αποτυγχάνει να λειτουργήσει κανονικά, είναι πάντα καλή ιδέα να συμπεριλαμβάνετε πληροφορίες αποσφαλμάτωσης. Για να ενεργοποιήσετε την αποσφαλμάτωση, ορίστε το κλειδί debug/Enable σε «true» στο αρχείο `<etc>/gdm/custom.conf` και επανεκκινείστε το GDM. Μετά χρησιμοποιήστε το GDM μέχρι το σημείο που αποτυγχάνει, και το αποτέλεσμα της αποσφαλμάτωσης θα σταλεί στο αρχείο καταγραφής του συστήματός σας (`<var>/log/messages` ή `<var>/adm/messages` ανάλογα με το λειτουργικό σύστημα). Αν μοιραστείτε αυτό το αποτέλεσμα με την κοινότητα του GDM μέσω μιας αναφοράς σφάλματος η με ένα email, παρακαλούμε να συμπεριλάβετε μόνο τις σχετικές με το GDM πληροφορίες αποσφαλμάτωσης και όχι ολόκληρο το αρχείο αφού μπορεί να είναι πολύ μεγάλο. Αν δεν δείτε κάποιο αποτέλεσμα σχετικό με το GDM στο αρχείο καταγραφής του συστήματος, μπορεί να χρειαστεί να διαμορφώσετε το syslog (ανατρέξτε στην σελίδα syslog man page).

### Το GDM δεν εκκινεί

Υπάρχουν πολλά προβλήματα που μπορούν να προκαλέσουν την αποτυχία εκκίνησης του GDM, αλλά αυτή η ενότητα θα παρουσιάσει λίγα συνηθισμένα προβλήματα και πως να προσεγγίσουμε την αναζήτηση του προβλήματος με την εκκίνηση τουGDM. Μερικά προβλήματα θα προκαλέσουν την απάντηση του GDM με μήνυμα λάθους όταν προσπαθεί να εκκινήσει, αλλά μπορεί να είναι δύσκολος ο εντοπισμός του προβλήματος όταν το GDM αποτυγχάνει σιωπηρά.

Πρώτα βεβαιωθείτε ότι ο Xserver είναι διαμορφωμένος κατάλληλα. Το αρχείο διαμόρφωσης του GDM περιέχει μια εντολή στην ενότητα [server-Standard] που χρησιμοποιείται για την εκκίνηση του Xserver. Επιβεβαιώστε ότι αυτή η εντολή λειτουργεί στο σύστημα σας. Εκτελώντας την εντολή αυτή στο τερματικό θα πρέπει να εκκινήσει ο εξυπηρετητής X. Αν αυτό αποτύχει, τότε το πρόβλημα είναι πιθανόν με την διαμόρφωση του Xserver σας. Ανατρέξτε στο αρχείο καταγραφής σφαλμάτων του Xserver για να πάρετε μια ιδέα του ποιο μπορεί να είναι το πρόβλημα. Το πρόβλημα μπορεί επίσης να είναι ότι ο δικός Xserver απαιτεί διαφορετικά ορίσματα γραμμής εντολών. Αν είναι έτσι, τότε μετατρέψτε την εντολή εκκίνησης του Xserver στο αρχείο διαμόρφωσης του GDM έτσι ώστε να είναι σωστή για το σύστημα σας.

Επίσης βεβαιωθείτε ότι ο κατάλογος `/tmp` έχει κατάλληλη ιδιοκτησία και δικαιώματα, και ότι το σύστημα αρχείων του μηχανήματος δεν είναι γεμάτο. Αυτά τα προβλήματα θα προκαλέσουν την αποτυχία εκκίνησης του GDM.

## Άδεια χρήσης

Αυτό το πρόγραμμα είναι ελεύθερο λογισμικό. Επιτρέπεται η αναδιανομή ή/και τροποποίησή του υπό τους όρους της Γενικής Άδειας Δημόσιας Χρήσης GNU όπως αυτή δημοσιεύεται από το Ίδρυμα Ελεύθερου Λογισμικού -FSF- είτε της έκδοσης 2 της άδειας, είτε (κατ' επιλογήν) οποιασδήποτε μεταγενέστερης έκδοσης.

Αυτό το πρόγραμμα διανέμεται με την ελπίδα ότι θα είναι χρήσιμο, αλλά ΧΩΡΙΣ ΚΑΜΜΙΑ ΑΠΟΛΥΤΩΣ ΕΓΓΥΗΣΗ - χωρίς ακόμη και την έμμεση εγγύηση ΕΜΠΟΡΕΥΣΙΜΟΤΗΤΑΣ ή ΚΑΤΑΛΛΗΛΟΤΗΤΑΣ ΓΙΑ ΣΥΓΚΕΚΡΙΜΕΝΟ ΣΚΟΠΟ. Δείτε για περισσότερες λεπτομέρειες την Γενική Άδεια Δημόσιας Χρήσης GNU -GNU General Public License.

Αντίγραφο της Γενικής Άδειας Δημόσιας Χρήσης GNU -GPL περιλαμβάνεται ως παράρτημα στον Οδηγό χρήστη GNOME. Επίσης, αντίγραφο της Γενικής Άδειας Δημόσιας Χρήσης GNU -GPL μπορείτε να παραλάβετε από το Ίδρυμα Ελεύθερου Λογισμικού -FSS- είτε επισκεπτόμενοι τον ιστότοπο του, είτε γράφοντας στη διεύθυνση

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