Διαμόρφωση

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

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

Τα σημεία ενσωμάτωσης σεναρίων εντολών του 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.

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

Ο κατάλογος <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 αν τιμές διαμόρφωσης που προσδιορίζονται στην ενότητα διαμόρφωση προσβασιμότητας παρακάτω ρυθμιστούν κατάλληλα.

5.3. Σενάριο εντολών Xsession

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

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

Ο δαίμονας του 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

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

5.4.1. [chooser]

Multicast
Multicast=false

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

MulticastAddr
MulticastAddr=ff02::1

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

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

Το όνομα χρήστη υπό το οποίο το πρόγραμμα greeter και άλλες εφαρμογές GUI εκτελούνται. Ανατρέξτε στο κλειδί διαμόρφωσης Group και στην ενότητα "Security->GDM User And Group" αυτού του εγγράφου για περισσότερες πληροφορίες.

Ομάδα
Group=gdm

Το όνομα ομάδας υπό την οποία η εφαρμογή greeter και άλλα προγράμματα GUI εκτελούνται. Ανατρέξτε στο κλειδί διαμόρφωσης User και στην ενότητα "Security->GDM User And Group" αυτού του εγγράφου για περισσότερες πληροφορίες.

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

[debug]
Ενεργοποίηση
Enable=false

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

5.4.4. Επιλογές του Greeter

[greeter]
IncludeAll
IncludeAll=true

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

Όταν το κλειδί αυτό είναι αληθές, το GDM θα καλέσει την fgetpwent() για να ανακτήσει μία λίστα τοπικών χρηστών του συστήματος. Δε συμπεριλαμβάνονται όλοι οι χρήστες με αναγνωριστικό χρήστη χαμηλότερο του 500 (ή του 100 αν τρέχετε Oracle Solaris). Ο περιηγητής προσώπων επίσης θα προβάλει όλους τους χρήστες που έχουν συνδεθεί προηγουμένως στο σύστημα (για παράδειγμα χρήστες NIS/LDAP). Ανακτά αυτή την λίστα μέσω κλήσης της διεπαφής ck-history του ConsoleKit. Θα αποκλείσει επίσης όλους τους χρήστες που δεν έχουν ένα έγκυρο κέλυφος (έγκυρα κελύφη είναι εκείνα που αποδίδει το getusershell() - τα /sbin/nologin ή /bin/false δε θεωρούνται έγκυρα κελύφη ακόμη και αν το getusershell() τα περιλάβει στα αποτελέσματα του).

Αν είναι ψευδές, τότε το GDM προβάλλει μόνο τους χρήστες που έχουν προηγουμένως συνδεθεί στο σύστημα (τοπικούς ή NIS/LDAP) καλώντας τη διεπαφή ck-history του ConsoleKit.

Include
Include=

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

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

Ορίζεται σε μια λίστα από χρήστες που να αποκλείονται πάντα από τον Περιηγητή προσώπων. Αυτή η τιμή ορίζεται σε μια λίστα από χρήστες που χωρίζονται από κόμμα. Σημειώστε ότι η ρύθμιση στο custom.conf παρακάμπτει την προεπιλογή, οπότε αν θέλετε να προσθέσετε επιπλέον χρήστες στη λίστα, τότε πρέπει να ορίσετε την τιμή στην προεπιλεγμένη τιμή με τους επιπλέον χρήστες να προστίθενται στη λίστα.

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

[security]
Απαγόρευση TCP
DisallowTCP=true

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

5.4.6. Υποστήριξη 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.

PingIntervalSeconds
PingIntervalSeconds=60

Αν ο Xserver δεν ανταποκριθεί στον προσδιορισμένο χρόνο δευτερολέπτων, τότε η σύνδεση σταματάει και η συνεδρίαση τερματίζεται. Όταν αυτό γίνεται ο daemon τερματίζει με ένα σήμα ΣΥΝΑΓΕΡΜΟΥ. Σημειώστε ότι το GDM 2.20 και νωρίτερα πολλαπλασίαζε αυτή την επιλογή επί 2, οπότε μπορεί να είναι απαραίτητο να αυξήσετε το χρονικό όριο αν αναβαθμίζετε από το GDM 2.20 και νωρίτερα σε μία πιο πρόσφατη έκδοση.

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

Θύρα
Port=177

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

Willing
Willing=<etc>/gdm/Xwilling

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

5.5. Απλή διαμόρφωση του 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 σαν διαχειριστής παραθύρων.

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

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

5.6.1. GDM Accessibility Dialog And GConf Keys

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

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

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

5.6.2. Κλειδιά 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. Από προεπιλογή αυτή είναι μία εφαρμογή αναγνώστη οθόνης.

5.6.3. Αντιστοιχίζοντας κλειδιά 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.

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

Για παράδειγμα, αν το 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.

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

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

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

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

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

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

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

Οι συνεδρίες του GDM καθορίζονται χρησιμοποιώντας τις προδιαγραφές της FreeDesktop.org Desktop Entry Specification, τις οποίες μπορείτε να εξετάσετε στο ακόλουθο URL: http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec.

Από προεπιλογή, το GDM θα εγκαταστήσει τα αρχεία desktop στον κατάλογο <share>/xsessions. Το GDM θα ερευνήσει τους παρακάτω καταλόγους με αυτή τη σειρά για αρχεία desktop: <etc>/X11/sessions/, <dmconfdir>/Sessions, <share>/xsessions, and <share>/gdm/BuiltInSessions. Από προεπιλογή το <dmconfdir> ορίζεται σε <etc>/dm/ εκτός και αν το GDM προσαρμοστεί ώστε να χρησιμοποιεί άλλον κατάλογο μέσω του ορίσματος «--with-dmconfdir».

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

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

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

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

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

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

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