Επισκόπηση
- 2.1. Εισαγωγή
- 2.2. Σταθερότητα διεπαφής
- 2.3. Περιγραφή λειτουργικότητας
- 2.4. Πίνακας εφαρμογής υποδοχής, Greeter
- 2.5. Προσιτότητα
- 2.6. Περιηγητής προσώπων του GDM
- 2.7. XDMCP
- 2.8. Καταγραφή συστήματος
- 2.9. Γρήγορη εναλλαγή χρήστη
2.1. Εισαγωγή
Ο διαχειριστής οθόνης GNOME (GDM) υλοποιεί όλα τα σημαντικά χαρακτηριστικά που απαιτούνται για την διαχείριση τοπικών και απομακρυσμένων οθονών. Το GDM γράφηκε εξ' αρχής και δεν περιέχει κώδικα από το XDM ή από το X Consortium.
Σημειώστε ότι το GDM είναι διαμορφώσιμο, και πολλές ρυθμίσεις διαμόρφωσης έχουν αντίκτυπο στην ασφάλεια. Θέματα που πρέπει να έχετε υπ' όψιν σας τονίζονται σε αυτό το έγγραφο.
Παρακαλώ σημειώστε ότι κάποια λειτουργικά συστήματα διαμορφώνουν το GDM /ώστε να συμπεριφέρεται διαφορετικά από τις προεπιλεγμένες τιμές που περιγράφονται σε αυτό το έγγραφο. Αν το GDM συμπεριφέρεται διαφορετικά από ότι περιγράφεται στην τεκμηρίωση, ελέγξτε αν κάποια σχετική διαμόρφωση είναι διαφορετική από ότι περιγράφεται εδώ.
Για περισσότερες πληροφορίες σχετικά με το GDM, επισκεφτείτε τον δικτυακό τόπο του έργου στην διεύθυνση http://www.gnome.org/projects/gdm και το αντίστοιχο Wiki http://live.gnome.org/GDM.
Για συζητήσεις και ερωτήματα σχετικά με το GDM, χρησιμοποιήστε την λίστα
.Η λίστα αυτή αρχειοθετείται και είναι καλή πρακτική να αναζητάτε απαντήσεις σε κοινά ερωτήματα σε αυτήν. Το αρχείο της βρίσκεται στην διεύθυνση http://mail.gnome.org/archives/gdm-list/ και έχει δυνατότητα αναζήτησης μηνυμάτων με λέξεις κλειδί.Παρακαλώ υποβάλετε τις αναφορές σφαλμάτων και τα αιτήματα σας στην κατηγορία "gdm" στην σελίδα http://bugzilla.gnome.org.
2.2. Σταθερότητα διεπαφής
Το GDM 2.20 και τα παλαιότερα υποστήριζαν σταθερές διαμορφώσεις διεπαφής. Όμως, ο κώδικας γράφτηκε εξ' αρχής για το GDM 2.22, και δεν είναι πλήρως συμβατός με παλαιότερες εκδόσεις. Αυτό συμβαίνει εν μέρει γιατί οι λειτουργίες είναι διαφορετικές, έτσι κάποιες επιλογές δεν έχουν νόημα, εν μέρει γιατί κάποιες επιλογές δεν είχαν ποτέ νόημα και εν μέρει γιατί κάποιες λειτουργίες δεν έχουν υλοποιηθεί ακόμη στις νεότερες εκδόσεις.
Διεπαφές που συνεχίζουν να υποστηρίζονται με σταθερό τρόπο (stable) περιλαμβάνουν τα σενάρια εντολών Init, PreSession, PostSession, PostLogin και Xsession. Κάποιες επιλογές διαμόρφωσης δαίμονα στο αρχείο <etc>/gdm/custom.conf υποστηρίζονται ακόμη. Επίσης συνεχίζεται η υποστήριξη για το ~/.dmrc και τις τοποθεσίες εικόνων του περιηγητή προσώπων.
Το GDM 2.20 και τα προηγούμενα υποστήριζαν την δυνατότητα διαχείρισης πολλαπλών τερματικών με χωριστές κάρτες γραφικών, όπως χρησιμοποιούνται σε περιβάλλοντα εξυπηρετητή τερματικών, την σύνδεση σε ένα παράθυρο μέσω προγραμμάτων σαν το Xnest ή το Xephyr, το πρόγραμμα gdmsetup, θέματα του greeterβασισμένα σε XML και την δυνατότητα να εκτελείται το XDMCP chooser από την οθόνη εισόδου. Αυτές οι λειτουργίες δεν προστέθηκαν ξανά κατά την εκ νέου συγγραφή του 2.22.
2.3. Περιγραφή λειτουργικότητας
Το 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 εκτελείται από τον υπερχρήστη (root). Αυτά τα σενάρια εντολών παρέχονται σαν σημεία επαφής για διανομές και τελικούς χρήστες για να προσαρμόσουν την διαχείριση συνεδριών. Για παράδειγμα, χρησιμοποιώντας αυτά τα σημεία θα μπορούσατε να ρυθμίσετε ένα μηχάνημα να δημιουργεί κατά την λειτουργία του τον κατάλογο $HOME του χρήστη, και να τον διαγράφει κατά την αποσύνδεση. Η διαφορά μεταξύ των σεναρίων PostLogin και PreSession είναι ότι τοPostLogin εκτελείται πριν την εντολή ανοίγματος συνεδρίας από το άρθρωμα pam (pam_open_session call) έτσι είναι το σωστό σημείο για να εκτελεστεί οτιδήποτε πρέπει να εκτελεστεί πριν την εκκίνηση της συνεδρίας του χρήστη. Το σενάριο εντολών PreSession καλείται μετά την εκκίνηση της συνεδρίας.
2.4. Πίνακας εφαρμογής υποδοχής, Greeter
Η εφαρμογή υποδοχής του GDM, Greeter προβάλλει έναν πίνακα τοποθετημένο στο κάτω μέρος της οθόνης που παρέχει πρόσθετες λειτουργίες. Όταν επιλεγεί χρήστης, ο πίνακας του επιτρέπει να επιλέξει ποια συνεδρία, γλώσσα και διάταξη πληκτρολογίου θα χρησιμοποιήσει μετά την είσοδο του. Ο επιλογέας διάταξης πληκτρολογίου αλλάζει και την διάταξη που χρησιμοποιείται κατά την πληκτρολόγηση του κωδικού. Ο πίνακας περιέχει επίσης μια περιοχή όπου οι υπηρεσίες σύνδεσης τοποθετούν εικονίδια κατάστασης. Μερικά παραδείγματα εικονιδίων κατάστασης περιλαμβάνουν εικονίδιο μπαταρίας για την τρέχουσα χρήση της, και ένα εικονίδιο για την ενεργοποίηση λειτουργιών διευκόλυνσης πρόσβασης. Η εφαρμογή greeter παρέχει επίσης πλήκτρα που επιτρέπουν στον χρήστη να τερματίσει ή να επανεκκινήσει το σύστημα. Είναι δυνατόν να διαμορφωθεί το GDM ώστε να μην παρέχει πλήκτρα τερματισμού και επανεκκίνησης, αν το επιθυμείτε. Το GDM μπορεί επίσης να διαμορφωθεί με το PolicyKit (ή με το RBAC στο Oracle Solaris) ώστε να απαιτεί από τον χρήστη την κατάλληλη έγκριση πριν αποδεχθεί το αίτημα τερματισμού ή επανεκκίνησης.
Σημειώστε ότι λειτουργίες διάταξης πληκτρολογίου είναι διαθέσιμες μόνο σε συστήματα που υποστηρίζουν την libxklavier.
2.5. Προσιτότητα
Το GDM υποστηρίζει "Accessible Login-Προσιτή διαδικασία σύνδεσης", επιτρέποντας στους χρήστες να συνδεθούν στην συνεδρία επιφάνειας εργασίας ακόμη και αν δυσκολεύονται να χρησιμοποιήσουν οθόνη, ποντίκι, ή πληκτρολόγιο με τον συνηθισμένο τρόπο. Λειτουργίες διευκόλυνσης της πρόσβασης (Accessible Tecnology-AT) όπως το πληκτρολόγιο οθόνης, ο αναγνώστης οθόνης, ο μεγεθυντής οθόνης και η προσιτότητα του Xserver AccessX keyboard είναι διαθέσιμες. Είναι επίσης δυνατόν να ενεργοποιηθεί μεγάλο κείμενο ή εικόνες και όργανα ελέγχου υψηλής αντίθεσης, αν χρειαστεί. Ανατρέξτε στην ενότητα "Accessibility Configuration" του εγγράφου για περισσότερες πληροφορίες σχετικά με την διαμόρφωση των διαφόρων λειτουργιών διευκόλυνσης πρόσβασης.
Σε κάποια λειτουργικά συστήματα, είναι απαραίτητο να βεβαιωθείτε ότι ο χρήστης GDM είναι μέλος της ομάδας "audio" για εφαρμογές AT που απαιτούν έξοδο ήχου (όπως η μετατροπή κειμένου σε ομιλία) για να είναι λειτουργικές.
2.6. Περιηγητής προσώπων του GDM
Ο περιηγητής προσώπων είναι η διεπαφή που επιτρέπει στους χρήστες να επιλέξουν το όνομα χρήστη τους με κλικ σε εικόνα. Αυτή η λειτουργία μπορεί να ενεργοποιηθεί και να απενεργοποιηθεί χρησιμοποιώντας το κλειδί /apps/gdm/simple-greeter/disable_user_list του GConf και είναι ενεργοποιημένη από προεπιλογή. Όταν είναι ενεργοποιημένη, προβάλλει όλους τους τοπικούς χρήστες που είναι διαθέσιμοι για σύνδεση στο σύστημα (όλους τους λογαριασμούς χρηστών που έχουν οριστεί στο αρχείο /etc/passwd και έχουν έγκυρο κέλυφος-shell- και επαρκώς υψηλό 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, τότε τα ονόματα χρηστών εκτίθενται σε απομακρυσμένους χρήστες. Αυτό, βέβαια, περιορίζει κάπως την ασφάλεια αφού ένας κακόβουλος χρήστης δεν χρειάζεται να μαντέψει έγκυρα ονόματα χρηστών. Σε κάποια πολύ περιοριστικά περιβάλλοντα ο περιηγητής προσώπων μπορεί να μην είναι ενδεδειγμένη επιλογή.
2.7. 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 μπορεί επίσης να διαμορφωθεί έτσι ώστε να αναγνωρίζει έμμεσες (INDIRECT) αιτήσεις και να παρουσιάζει έναν επιλογέα συστημάτων στην απομακρυσμένη οθόνη. Το GDM θα θυμάται την επιλογή του χρήστη και θα προωθεί τις επόμενες αιτήσεις στον επιλεγμένο διαχειριστή. Το GDM υποστηρίζει επίσης μια επέκταση του πρωτοκόλλου που το κάνει να ξεχνά την ανακατεύθυνση μόλις η σύνδεση του χρήστη επιτευχθεί. Αυτή η επέκταση υποστηρίζεται μόνο αν και οι δύο δαίμονες είναι GDM. Είναι διαφανής και θα αγνοηθεί από από το XDM ή άλλους δαίμονες που εφαρμόζουν το XDMCP.
Αν το XDMCP φαίνεται να μην λειτουργεί, βεβαιωθείτε ότι όλοι οι υπολογιστές καθορίζονται στο /etc/hosts.
Ανατρέξτε στην ενότητα "Ασφάλεια" για πληροφορίες σχετικές με προβληματισμούς για την ασφάλεια με την χρήση XDMCP.
2.8. Καταγραφή συστήματος
Το GDM χρησιμοποιεί το syslog για την καταγραφή σφαλμάτων και κατάστασης. Μπορεί επίσης να καταγράψει πληροφορίες αποσφαλμάτωσης, οι οποίες είναι χρήσιμες κατά τη διερεύνηση προβλημάτων όταν το GDM δεν λειτουργεί κανονικά. Αυτή η συμπεριφορά μπορεί να ενεργοποιηθεί θέτοντας το κλειδί debug/Enable σε «true» στο αρχείο <etc>/gdm/custom.conf.
Τα δεδομένα εξόδου των διαφόρων Xservers αποθηκεύονται στον κατάλογο καταγραφής του GDM, που είναι συνήθως ο <var>/log/gdm/. Τα μηνύματα του Xserver αποθηκεύονται σε ένα αρχείο συσχετισμένο με την τιμή οθόνης, <display>.log.
The session output is piped through the GDM daemon to the ~/$XDG_CACHE_HOME/gdm/session.log file which usually expands to ~/.cache/gdm/session.log. The file is overwritten on each login, so logging out and logging back into the same user via GDM will cause any messages from the previous session to be lost.
Note that if GDM can not create this file for some reason, then a fallback file will be created named ~/$XDG_CACHE_HOME/gdm/session.log.XXXXXXXX where the XXXXXXXX are some random characters.
2.9. Γρήγορη εναλλαγή χρήστη
Το GDM επιτρέπει την σύνδεση πολλών χρηστών ταυτόχρονα. Μετά την σύνδεση του πρώτου χρήστη, πρόσθετοι χρήστες μπορούν να συνδεθούν μέσω της εναλλαγής χρηστών στον πίνακα εφαρμογών του GNOME, η με το πλήκτρο "Αλλαγή χρήστη" στον διάλογο κλειδώματος οθόνης της προστασίας οθόνης του GNOME. Η ενεργή συνεδρία μπορεί να αλλαχθεί χρησιμοποιώντας τον ίδιο μηχανισμό. Σημειώστε ότι κάποιες διανομές μπορεί να μην έχουν την εναλλαγή χρηστών στην προεπιλεγμένη διαμόρφωση του πίνακα εφαρμογών. Μπορείτε να την προσθέσετε χρησιμοποιώντας το σχετικό μενού περιεχομένων του πίνακα εφαρμογών.
Σημειώστε ότι αυτή η λειτουργία είναι διαθέσιμη σε συστήματα που υποστηρίζουν εικονικά τερματικά. Αυτό το χαρακτηριστικό δεν θα λειτουργήσει αν δεν είναι διαθέσιμα τα εικονικά τερματικά.