Κεφάλαιο 12: Τα Απαραίτητα για την Διαχείριση του Συστήματος Ώπα, ώπα ώπα... Ξέρω τι σκέφτεστε. Δεν είμαι Διαχειριστής Συστημάτων! Και ούτε θέλω να γίνω!. Το γεγονός είναι, ότι είστε διαχειριστής σε όσους υπολογιστές έχετε τον κωδικό του root. Αυτός μπορεί να είναι ο προσωπικός σας υπολογιστής με έναν ή δύο χρήστες, ή μπορεί να είναι ένας μεγάλος εξυπηρετητής με πολλές εκατοντάδες. Ανεξαρτήτως, πρέπει να γνωρίζετε πως να διαχειρίζεστε τους χρήστες, και πως να τερματίζετε το σύστημα με ασφάλεια. Αυτές οι εργασίες φαντάζουν απλές, αλλά έχουν μερικές ιδιοτροπίες που πρέπει να θυμάστε. 12.1 Χρήστες και Ομάδες Όπως αναφέρθηκε στο Κεφάλαιο 8, δεν πρέπει φυσιολογικά να χρησιμοποιείτε το σύστημά σας συνδεδεμένος σαν root. Σε αντίθεση, πρέπει να δημιουργήσετε έναν κανονικό λογαριασμό χρήστη για καθημερινή χρήση, και να χρησιμοποιείτε τον λογαριασμό root μόνο για εργασίες διαχείρισης. Για να δημιουργήσετε έναν χρήστη, μπορείτε είτε να χρησιμοποιήσετε εργαλεία που παρέχονται με το Slackware, είτε μπορείτε να επεξεργασθείτε τα αρχεία των κωδικών με το χέρι. Παρεχόμενα Αρχεία Διαταγών (Scripts) Ο πιο εύκολος τρόπος διαχείρισης χρηστών και ομάδων είναι με τα παρεχόμενα αρχεία διαταγών και προγράμματα. Το Slackware περιλαμβάνει τα προγράμματα adduser, userdel(8), chfn(1), chsh(1), και passwd(1) για την συναλλαγή με τους χρήστες. Οι εντολές groupadd(8), groupdel(8), και groupmod(8) είναι για τις συναλλαγές με τις ομάδες. Με εξαίρεση τα chfn, chsh, και passwd, γιατί αυτά τα προγράμματα μπορεί να τα εκτελέσει μόνο ο root, και γι' αυτό βρίσκονται μέσο στο /usr/sbin. Τα chfn, chsh, και passwd που μπορούν όλοι να εκτελέσουν βρίσκονται στο /usr/bin. Χρήστες μπορούν να προστεθούν με το πρόγραμμα adduser. Θα ξεκινήσουμε βλέποντας όλη την διαδικασία, βλέποντας όλες τις ερωτήσεις που θα γίνουν και μία μικρή περιγραφή από το τι σημαίνει η κάθε μία. Η προκαθορισμένη απάντηση είναι μέσα στις αγκύλες, και μπορεί να επιλεχθεί για σχεδόν όλες τις ερωτήσεις, εκτός και αν θέλετε να αλλάξετε κάτι. # adduser Login name for new user []: jellyd Αυτό είναι το όνομα που θα χρησιμοποιεί ο χρήστης για να συνδεθεί. Παραδοσιακά, τα ονόματα των χρηστών είναι οκτώ ή λιγότεροι χαρακτήρες και όλοι είναι πεζά γράμματα. (μπορεί να χρησιμοποιήσετε περισσότερους από οκτώ χαρακτήρες, ή να χρησιμοποιήσετε ψηφία, αλλά να το αποφεύγετε αυτό εκτός και αν υπάρχει κάποιος αρκετά σημαντικός λόγος). Μπορείτε επίσης να δώσετε το όνομα χρήστη ως παράμετρο στην γραμμή εντολών: # adduser jellyd Σε κάθε περίπτωση, αφού δώσετε το όνομα χρήστη, η adduser θα σας ζητήσει την ταυτότητα χρήστη (user ID):
User ID ('UID') [ defaults to next available ]: Η ταυτότητα χρήστη (UID) είναι το πως είναι πραγματικά καθορισμένες οι ιδιοκτησίες στο Linux. Κάθε χρήστης έχει ένα μοναδικό αριθμό, ξεκινώντας από το 1000 στο Slackware. Μπορείτε να επιλέξετε ένα UID για το νέο χρήστη, ή μπορείτε να αφήσετε την adduser να αναθέσει στο χρήστη το επόμενο διαθέσιμο. Initial group [users]: Όλοι οι χρήστες τοποθετούνται μέσα στην ομάδα των users αυτόματα. Εάν θέλετε μπορείτε να τοποθετήσετε τον νέο χρήστη σε μία διαφορετική ομάδα, αν και δεν προτείνετε εκτός και αν ξέρετε καλά τι κάνετε. Additional groups (comma separated) []: Αυτή η ερώτηση επιτρέπει την πρόσθεση του νέου χρήστη σε περισσότερες ομάδες. Είναι πιθανό για έναν χρήστη να είναι σε διάφορες ομάδες την ίδια στιγμή. Αυτό είναι χρήσιμο εάν έχετε εγκαταστήσει ομάδες για εργασίες όπως για την μετατροπή αρχείων για ιστοσελίδες, παίξιμο παιχνιδιών, και άλλα. Για παράδειγμα, κάποιες ιστοσελίδες ορίζουν την ομάδα wheel σαν την μόνη ομάδα που μπορεί να χρησιμοποιήσει την εντολή su. Ή, η προκαθορισμένη εγκατάσταση του Slackware χρησιμοποιεί την ομάδα sys για χρήστες που έχουν δικαιοδοσία να παίζουν ήχους μέσο της εσωτερικής κάρτας ήχου. Home directory [/home/jellyd] Οι προσωπικοί φάκελοι (home directories) αυτόματα τοποθετούνται κάτω από το /home. Εάν έχετε ένα πολύ μεγάλο σύστημα, είναι πιθανό να έχετε μεταφέρει τους προσωπικούς φακέλους σε κάποια άλλη περιοχή (ή σε πολλές περιοχές). Αυτό το βήμα επιτρέπει τον ορισμό της τοτοθεσίας του προσωπικού φακέλου του χρήστη. Shell [ /bin/bash ] Ο bash είναι ο προκαθορισμένος φλοιός στο Slackware Linux, και είναι καλός για τους περισσότερους ανθρώπους. Εάν ο νέος σας χρήστης έχει εμπειρία από UNIX, μπορεί να έχει οικειότητα με κάποιον άλλο. Μπορείτε να αλλάξετε τον φλοιό του τώρα, ή μπορεί να τον αλλάξει αργότερα μόνος του με τη χρήση της εντολής chsh. Expiry date (YYYY-MM-DD) []: Οι λογαριασμοί μπορούν να ρυθμιστούν έτσι ώστε να λήγουν σε μια συγκεκριμένη ημερομηνία. Από το σύστημα, δεν υπάρχει ημερομηνία λήξης. Μπορείτε να το αλλάξετε αυτό, εάν το θέλετε. Αυτή η επιλογή μπορεί να φανεί χρήσιμη σε ανθρώπους που λειτουργούν έναν Παροχέα Υπηρεσιών Διαδικτύου (ISP) που μπορεί να θέλει να κάνει έναν λογαριασμό να λήγει μία συγκεκριμένη ημερομηνία, εκτός και αν παραλάβει την πληρωμή του για τον επόμενο χρόνο.
New account will be created as follows: --------------------------------------- Login name: jellyd UID: [ Next available ] Initial group: users Additional groups: [ None ] Home directory: /home/jellyd Shell: /bin/bash Expiry date: [ Never ] Αυτό ήταν... εάν θέλετε να το απορρίψετε, πατήστε CONTROL+C. Αλλιώς, πατήστε ENTER για να συνεχίσετε δημιουργώντας τον λογαριασμό. Τώρα βλέπετε όλες τις πληροφορίες που είχατε εισάγει για την δημιουργία του νέου λογαριασμού και έχετε την δυνατότητα να ακυρώσετε την δημιουργία του. Εάν είχατε εισάγει κάτι λάθος, πρέπει να πατήσετε CONTROL+C και να το κάνετε από την αρχή. Σε άλλη περίπτωση, μπορείτε να πατήσετε ENTER και ο λογαριασμός θα δημιουργηθεί. Creating new account... Changing the user information for jellyd Enter the new value, or press return for the default Full Name []: Jeremy Room Number []: Smith 130 Work Phone []: Home Phone []: Other []: Όλες αυτές οι πληροφορίες είναι προαιρετικές. Δεν είναι ανάγκη να εισάγετε κάτι σε όποιο δεν θέλετε, και ο χρήστης μπορεί να το αλλάξει οποιοδήποτε στιγμή με την chfn. Όμως, μπορεί να είναι χρήσιμο να βάλετε έστω ένα πλήρες όνομα και έναν αριθμό τηλεφώνου, για την περίπτωση που θέλετε να έρθετε σε επαφή με αυτό το άτομο. Changing password for jellyd Enter the new password (minimum of 5, maximum of 127 characters) Please use a combination of upper and lower case letters and numbers. New password: Re-enter new password: Password changed. Account setup complete. Πρέπει να εισάγετε έναν κωδικό για τον νέο χρήστη. Γενικά, εάν ο νέος χρήστης δεν είναι παρών (φυσική παρουσία) αυτή τη στιγμή, διαλέξτε έναν προκαθορισμένο κωδικό και πείτε του να τον αλλάξει με κάτι πιο ασφαλές. Σημείωση: Διαλέγοντας έναν Κωδικό: Το να έχεις έναν ασφαλή κωδικό είναι η πρώτη γραμμή άμυνας ενάντια στο σπάσιμο του. Δεν θέλεις να έχεις έναν κωδικό που είναι εύκολο να τον μαντέψει κανείς, γιατί αυτό κάνει εύκολη την εισβολή κάποιου στο σύστημά σου. Το ιδανικό, είναι ένας κωδικός με τυχαίους χαρακτήρες, συμπεριλαμβανομένων κεφαλαίων και πεζών γραμμάτων, αριθμών, και τυχαίων χαρακτήρων. (Ένας χαρακτήρας TAB ίσως να μην είναι μία σοφή επιλογή, ανάλογα με το τι τύπου υπολογιστές χρησιμοποιείς για να συνδεθείς). Υπάρχουν πολλά πακέτα λογισμικού που μπορούν να δημιουργήσουν τυχαίους κωδικούς για εσάς, ψάξτε
στο διαδίκτυο για αυτά τα εργαλεία. Γενικά, απλά χρησιμοποιήστε την απλή λογική: μην διαλέγετε κωδικό που είναι κάποιου τα γενέθλια, μια συνηθισμένη φράση, κάτι που βρήκατε στο γραφείο σας, ή οτιδήποτε είναι εύκολα συσχετίσιμο με εσάς. Ένας κωδικός όπως secure1 ή οποιονδήποτε κωδικό βλέπετε εκτυπωμένο ή στο διαδίκτυο είναι επίσης κακός. Το να αφαιρείτε χρήστες δεν είναι καθόλου δύσκολο. Απλά τρέξτε το userdel με το όνομα του λογαριασμού που θέλετε. Πρέπει να επιβεβαιώσετε ότι ο χρήστης δεν είναι συνδεδεμένος, και ότι δεν υπάρχουν διαδικασίες (processes) που να εκτελεί αυτός ο χρήστης. Επίσης, να θυμάστε ότι εφόσον διαγράψατε τον χρήστη, όλες οι πληροφορίες του κωδικού του χάνονται. # userdel jellyd Αυτή η εντολή αφαιρεί αυτόν τον ενοχλητικό χρήστη jellyd από το σύστημά. Καλό χορό της ελευθερίας! :) Ο χρήστης αφαιρέθηκε από τα αρχεία /etc/passwd, /etc/shadow, και /etc/group, αλλά δεν αφαιρέθηκε ο προσωπικός φάκελος του χρήστη. Εάν θέλετε να διαγράψετε και τον προσωπικό φάκελο του, θα χρησιμοποιήσετε στη θέση της παραπάνω την εντολή: # userdel -r jellyd Η προσωρινή ακύρωση ενός λογαριασμού θα καλυφθεί στην επόμενη παράγραφο στους κωδικούς, εφόσον μία προσωρινή ακύρωση συνεπάγεται με την αλλαγή του κωδικού. Η αλλαγή άλλων δεδομένων του λογαριασμού καλύπτεται στην παράγραφο 12.1.3. Τα προγράμματα για την πρόσθεση και αφαίρεση ομάδων είναι πολύ απλά. Το grouadd θα προσθέσει μία εγγραφή στο αρχείο /etc/group και ένα μοναδικό αριθμό ταυτότητας (group ID), ενώ το groupdel θα αφαιρέσει μία συγκεκριμένη ομάδα. Είναι προσωπική σας επιλογή η επεξεργασία του /etc/group για να προσθέσετε χρήστες σε μία ομάδα. Για παράδειγμα, για να προσθέσετε μία ομάδα που λέγετε cvs: # groupadd cvs Και για να την αφαιρέσετε: # groupdel cvs Αλλάζοντας Κωδικούς Το πρόγραμμα passwd αλλάζει τους κωδικούς μεταβάλλοντας το αρχείο /etc/shadow. Αυτό το αρχείο έχει όλους τους κωδικούς για το σύστημα κρυπτογραφημένους. Για να αλλάξεις τον προσωπικό κωδικό σου, πρέπει να πατήσεις:
% passwd Changing password for chris Old password: Enter the new password (minumum of 5, maximum of 127 characters) Please use a combination of upper and lower case letters and numbers. New password: Όπως μπορείτε να δείτε, πρέπει να εισάγετε τον παλιό σας κωδικό. Δεν θα εμφανιστεί στην οθόνη καθώς τον πληκτρολογείτε, ακριβώς όπως και όταν συνδέεστε. Μετά, πρέπει να εισάγετε τον νέο σας κωδικό. Το passwd εκτελεί πολλούς ελέγχους στο νέο σας κωδικό, και θα σας ενημερώσει εάν ο νέος κωδικός σας δεν περνάει τους ελέγχους του. Μπορείτε να αγνοήσετε αυτές τις προειδοποιήσεις εάν θέλετε. Θα σας ζητηθεί να εισάγετε και δεύτερη φορά το νέο κωδικό σας για επιβεβαίωση. Εάν είστε root, μπορείτε να αλλάξετε τον κωδικό και των άλλων χρηστών: # passwd ted Μετά θα πρέπει να ακολουθήσετε την ίδια διαδικασία όπως παραπάνω, εκτός του ότι δεν θα χρειαστεί να εισάγετε τον παλιό κωδικό του χρήστη. (Ένα από τα πολλά προνόμια του να είσαι root...). Εάν είναι ανάγκη, μπορείτε επίσης να απενεργοποιήσετε προσωρινά έναν λογαριασμό, και να τον ενεργοποιήσετε ξανά αργότερα εάν χρειαστεί. Και η απενεργοποίηση και η ενεργοποίηση ενός λογαριασμού μπορεί να γίνει με το passwd. Για να απενεργοποιήσετε έναν λογαριασμό, κάντε το παρακάτω ως root: # passwd -l david Αυτό θα αλλάξει τον λογαριασμό του david με κάτι που δεν θα ταιριάζει με καμία κρυπτογραφημένη τιμή. Μπορείτε να ενεργοποιήσετε ξανά τον λογαριασμό χρησιμοποιώντας το: # passwd -u david Τώρα, ο λογαριασμός του david είναι πάλι κανονικός. Η απενεργοποίηση λογαριασμών μπορεί να φανεί χρήσιμη εάν ο χρήστης δεν παίζει με τους κανόνες που έχετε βάλει στο σύστημα, ή εάν έχουν βγάλει ένα πολύ μεγάλο αντίγραφο του xeyes(1) στην X επιφάνεια εργασίας σας. Αλλάζοντάς τα Στοιχεία των Χρηστών Υπάρχουν δύο ειδών πληροφορίες που μπορούν οι χρήστες να αλλάξουν ανά πάσα στιγμή: ο φλοιός τους και οι πληροφορίες που εμφανίζονται στο finger. Το Slackware Linux χρησιμοποιεί τις εντολές chsh (change shell άλλαξε φλοιό) και chfn (change finger άλλαξε τις πληροφορίες για το finger) για να μεταβάλλουν αυτές τις τιμές. Ο κάθε χρήστης μπορεί να επιλέξει όποιον φλοιό θέλει από λίστα στο αρχείο /etc/shells. Για τους περισσότερους ανθρώπους, ο /bin/bash θα είναι μια χαρά. Άλλοι μπορεί να έχουν οικειότητα με έναν φλοιό που χρησιμοποιούν στη δουλειά τους ή το σχολείο τους και να θέλουν να χρησιμοποιήσουν αυτόν που ήδη γνωρίζουν. Για να αλλάξετε τον φλοιό, χρησιμοποιήστε την
εντολή chsh: % chsh Password: Changing the login shell for chris Enter the new value, or press return for the default Login Shell [/bin/bash]: Αφού εισάγετε τον κωδικό σας, γράψτε το πλήρες μονοπάτι για τον νέο φλοιό. Ελέγξτε ότι βρίσκετε στη λίστα στο /etc/shells(5) πρώτα. Ο χρήστης root μπορεί επίσης να αλλάξει τον φλοιό όλων των χρηστών εκτελώντας την εντολή chsh και μετά το όνομα χρήστη σαν παράμετρο. Οι πληροφορίες για το finger είναι προαιρετικές όπως το πλήρες όνομα, αριθμοί τηλεφώνων, και αριθμός δωματίου. Αυτό μπορεί να αλλάξει με την χρήση της chfn, και ακολουθείτε η ίδια διαδικασία με αυτή της δημιουργίας του λογαριασμού. Ως συνήθως, ο root μπορεί να αλλάξει οποιουδήποτε τις πληροφορίες του finger. 12.2 Χρήστες και Ομάδες, ο Δύσκολος Τρόπος Φυσικά, είναι πιθανό να εισάγεις, να αλλάζεις, και να αφαιρείς χρήστες και ομάδες χωρίς την χρήση αρχείων διαταγών και προγραμμάτων που έχει το Slackware. Δεν είναι πραγματικά δύσκολο, πιθανόν όμως μετά την ανάγνωση αυτής της διαδικασίας, να το βρείτε πολύ ευκολότερη τη χρήση αρχείων διαταγών. Έτσι κι αλλιώς, είναι σημαντικό όμως να γνωρίζετε το πως αποθηκεύονται πραγματικά οι πληροφορίες του κωδικού σας, για την περίπτωση που θα χρειαστεί να ανακτήσετε αυτά τα δεδομένα και δεν έχετε τα εργαλεία του Slackware στην διάθεσή σας. Αρχικά, θα προσθέσουμε έναν χρήστη στα αρχεία /etc/passwd(5), /etc/shadow(5), και στο /etc/group(5). Το αρχείο passwd περιέχει μερικές πληροφορίες για τους χρήστες του συστήματος, αλλά (αρκετά περίεργα) όχι τους κωδικούς τους. Αυτό συνέβαινε, αλλά αποσύρθηκε πριν πολύ καιρό για λόγους ασφαλείας. Το αρχείο passwd πρέπει να μπορούν να το διαβάσουν όλοι οι χρήστες, αλλά δεν θέλεις οι κρυπτογραφημένοι κωδικοί σου να είναι ορατοί σε όλον τον κόσμο, γιατί έτσι οι εισβολείς μπορεί να τους χρησιμοποιήσουν σαν σημείο εκκίνησης για την αποκρυπτογράφηση του κωδικού ενός χρήστη. Σε αντίθεση με αυτό, οι κρυπτογραφημένοι κωδικοί φυλάσσονται σε ένα αρχείο σκιά (shadow file), που μπορεί να το διαβάσει μόνο ο root, και οι κωδικοί όλων εισάγονται μέσα στο αρχείο passwd απλά ως x. Στο αρχείο group καταγράφονται οι ομάδες και το σε ποιες ανήκει ο κάθε ένας. Μπορείτε να χρησιμοποιήσετε την εντολή vipw για να επεξεργασθείτε το αρχείο /etc/passwd με ασφάλεια, και την vigr για το αρχείο /etc/group. Χρησιμοποιήστε την vipw -s για την ασφαλή επεξεργασία του αρχείου /etc/shadow. (το Ασφαλής σε αυτό το σημείο σημαίνει ότι κάποιος άλλος δεν θα μπορεί να επεξεργαστεί το αρχείο που εσείς επεξεργάζεστε την ίδια στιγμή. Εάν είστε ο μόνος διαχειριστής συστήματος, θα είστε πιθανότατα ασφαλής, αλλά είναι καλό να αποκτήσετε καλές συνήθειες από την αρχή). Ας εξετάσουμε το αρχείο /etc/passwd και ας δούμε πως προσθέτουμε έναν χρήστη σε αυτό. Μία τυπική εγγραφή στο αρχείο passwd μοιάζει κάπως έτσι: chris:x:1000:100:chris Lumens,Room 2,,:/home/chris:/bin/bash Κάθε γραμμή είναι μία εγγραφή για έναν χρήστη, και τα πεδία σε κάθε γραμμή χωρίζονται με άνω και κάτω τελεία. Τα πεδία είναι το όνομα χρήστη, ο κρυπτογραφημένος κωδικός (το x για όλους
στο Slackware, εφόσον το Slackware χρησιμοποιεί κωδικούς σκιές), η ταυτότητα χρήστη (User ID), η ταυτότητα ομάδας (group ID), οι προαιρετικές πληροφορίες του finger (χωρισμένες με κόμμα), ο προσωπικός φάκελος, και ο φλοιός. Για να εισάγετε έναν νέο χρήστη με το χέρι, προσθέστε μία νέα γραμμή στο τέλος του αρχείου, και συμπληρώστε την με τα κατάλληλα δεδομένα. Τα δεδομένα που εισάγετε πρέπει να πληρούν κάποιες προδιαγραφές, ή ο νέος σας χρήστης θα έχει πρόβλημα στην σύνδεση του στο σύστημα. Πρώτα, ελέγξτε ότι το πεδίο του κωδικού είναι ένα x, και ότι και το όνομα και η ταυτότητα χρήστη είναι μοναδικά. Προσθέστε τον χρήστη σε μία ομάδα, είτε 1000 (που είναι η ομάδα users στο Slackware) είτε η προκαθορισμένη ομάδα σας (χρησιμοποιήστε τον αριθμό της, όχι το όνομα). Δώστε στον χρήστη ένα προσωπικό φάκελο (που θα δημιουργήσετε αργότερα) και έναν φλοιό (να θυμάστε, οι φλοιοί που ισχύουν υπάρχουν στο /etc/shells). Μετά, θα πρέπει να προσθέσετε μία εγγραφή στο αρχείο /etc/shadow, που κρατά τους κρυπτογραφημένους κωδικούς. Μία τυπική εγγραφή μοιάζει κάπως έτσι: chris:$1$w9bsw/n9$uwlr2brer6yybs.caep7r.:11055:0:99999:7::: Ξανά, η κάθε γραμμή είναι μία εγγραφή για ένα άτομο, με κάθε πεδίο χωρισμένο με άνω και κάτω τελεία. Τα πεδία είναι (στη σειρά) όνομα χρήστη, κρυπτογραφημένος κωδικός, ημέρες από την εποχή (Epoch) (Ιανουάριος 1, 1970) όπου άλλαξε τελευταία φορά ο κωδικός, ημέρες πριν από από την πιθανή αλλαγή του, ημέρες μετά τις οποίες πρέπει να αλλάξει ο κωδικός, ημέρες πριν από την λήξη για την ενημέρωση του χρήστη, ημέρες μετά την λήξη για την απενεργοποίηση του λογαριασμού, ημέρες από την εποχή που απενεργοποιήθηκε ο λογαριασμός, και ένα δεσμευμένο πεδίο. Όπως μπορείτε να δείτε, τα περισσότερα από αυτά είναι πληροφορίες για τη λήξη του λογαριασμού. Εάν δεν χρησιμοποιείτε πληροφορίες λήξης, θα χρειαστεί να συμπληρώσετε μόνο κάποια πεδία με κάποιες ειδικές τιμές. Αλλιώς, θα πρέπει να κάνετε κάποιους υπολογισμούς και να πάρετε κάποιες αποφάσεις πριν συμπληρώσετε τα πεδία. Για ένα νέο χρήστη, απλά βάλτε κάποια τυχαία σκουπίδια στο πεδίο του κωδικού. Μην ανησυχείτε για το ποιος είναι ο κωδικός αυτή τη στιγμή, γιατί θα τον αλλάξετε σε ένα λεπτό. Ο μόνος χαρακτήρας που δεν μπορείτε να συμπεριλάβετε στο πεδίο του κωδικού είναι η άνω και κάτω τελεία. Αφήστε το πεδίο Μέρες από την αλλαγή του κωδικού κενό. Συμπληρώστε 0,99999 και 7 όπως βλέπετε στο παράδειγμα παραπάνω, και αφήστε τα άλλα πεδία κενά. (Για αυτούς που νομίζουν ότι βλέπουν τον κρυπτογραφημένο κωδικό μου παραπάνω και πιστεύουν ότι έχουν ένα πλεονέκτημα για να μπουν στο σύστημα μου, προχωρήστε. Εάν μπορείτε να σπάσετε αυτόν τον κωδικό, θα γνωρίζετε τον κωδικό ενός προστατευμένου με firewall πειραματικού συστήματος. Τώρα αυτό κι αν είναι χρήσιμο :) ). Όλοι οι φυσιολογικοί χρήστες είναι μέλη της ομάδας users σε ένα τυπικό Slackware σύστημα. Ωστόσο, εάν θέλετε να δημιουργήσετε μία νέα ομάδα, ή να προσθέσετε έναν χρήστη σε περαιτέρω ομάδες, θα πρέπει να μεταβάλετε το αρχείο /etc/group. Εδώ υπάρχει μια τυπική εγγραφή: cvs::102:chris,logan,david,root Τα πεδία είναι το όνομα ομάδας, κωδικός ομάδας, ταυτότητα ομάδας, και τα μέλη της ομάδας, χωρισμένα με κόμμα. Η δημιουργία μιας νέας ομάδας είναι απλά η πρόσθεση μιας νέας γραμμής με μοναδική ταυτότητα ομάδας, και μια λίστα με όλους τους χρήστες που θέλετε να ανήκουν στην ομάδα. Όποιος χρήστης μπει στη νέα ομάδα και είναι συνδεδεμένος θα πρέπει να αποσυνδεθεί και να επανασυνδεθεί για να λειτουργήσουν αυτές οι αλλαγές.
Σε αυτό το σημείο, μπορεί να είναι καλή ιδέα να χρησιμοποιήσετε τις εντολές pwck και grpck για να επιβεβαιώσετε ότι οι αλλαγές που κάνατε είναι μόνιμες. Πρώτα, χρησιμοποιήστε τις pwck -r και grpck -r: η επιλογή -r δεν κάνει αλλαγές, αλλά καταγράφει τις αλλαγές που θα σας ζητηθούν να κάνετε εάν τρέξετε την εντολή χωρίς την επιλογή. Μπορείτε να χρησιμοποιήσετε αυτή την έξοδο για να αποφασίσετε εάν χρειάζεστε περαιτέρω μετατροπές σε κάποιο αρχείο, για να τρέξετε την pwck ή την grpck χωρίς την επιλογή -r, ή απλά να αφήσετε τις αλλαγές σας ως έχουν. Σε αυτό το σημείο, πρέπει να χρησιμοποιήσετε την εντολή passwd για την δημιουργία ενός κατάλληλου κωδικού για τον χρήστη. Μετά, χρησιμοποιήστε την mkdir, για να δημιουργήσετε τον προσωπικό φάκελο του χρήστη στην τοποθεσία που ορίσατε στο αρχείο /etc/passwd, και χρησιμοποιήστε την chown για να αλλάξετε τον ιδιοκτήτη του νέου φακέλου στο νέο χρήστη. Η αφαίρεση ενός χρήστη είναι απλή διαδικασία διαγραφής όλων των εγγραφών που υπάρχουν για αυτόν τον χρήστη. Αφαιρέστε την εγγραφή του χρήστη από το /etc/passwd και το /etc/shadow, και διαγράψτε το όνομα χρήστη από όποια ομάδα άνηκε στο αρχείο /etc/group. Εάν επιθυμείτε, διαγράψτε τον προσωπικό φάκελο του χρήστη, το αρχείο μηνυμάτων του (spool mail file), και το ημερολόγιο (crontab) του (εάν υπάρχει). Η αφαίρεση των ομάδων είναι όμοια: διαγράψτε την εγγραφή της ομάδας από το /etc/group. 12.3 Τερματίζοντας το Σύστημα Κατάλληλα Είναι πολύ σημαντικό να τερματίζετε το σύστημά σας σωστά. Απλός γυρνώντας το OFF με τον διακόπτη ενέργειας μπορεί να προκαλέσει σοβαρή ζημία στο σύστημα αρχείων σας. Όταν το σύστημα λειτουργεί, τα αρχεία χρησιμοποιούνται ακόμα και αν δεν κάνετε τίποτα. Να θυμάστε ότι υπάρχουν πολλές διαδικασίες που τρέχουν στο παρασκήνιο όλη την ώρα. Αυτές οι διαδικασίες διαχειρίζονται το σύστημα και κρατάνε πολλά αρχεία ανοιχτά. Όταν η ενέργεια του συστήματος επιλέγετε στο OFF, αυτά τα αρχεία δεν κλείνουν σωστά και μπορεί να καταστραφούν. Ανάλογα με το ποια αρχεία καταστρέφονται, το σύστημα μπορεί να γίνει παντελώς άχρηστο! Σε κάθε περίπτωση, θα πρέπει να περνάτε από μία μεγάλη διαδικασία έλεγχου του συστήματος αρχείων στην επόμενη επανεκκίνηση. Σημείωση: Εάν ρυθμίσατε το σύστημα σας με ένα journalling σύστημα αρχείων, όπως το ext3 ή το reiserfs, θα είστε μερικώς προστατευμένοι από καταστροφές του συστήματος αρχείων, και ο έλεγχος κατά την επανεκκίνηση θα είναι συντομότερος από ότι θα ήταν με τη χρήση ενός συστήματος αρχείων χωρίς journalling, όπως το etx2. Ωστόσο, αυτό το δίχτυ ασφαλείας δεν είναι δικαιολογία για τον λάθος τερματισμό του συστήματος! Ένα jouranlling σύστημα αρχείων σημαίνει ότι προστατεύει τα αρχεία σας από γεγονότα πέρα από το έλεγχο σας, όχι από την δικιά την τεμπελιά. Σε κάθε περίπτωση, όταν θέλετε να επανεκκινήσετε ή να τερματίσετε τον υπολογιστή σας, είναι σημαντικό να το κάνετε σωστά. Υπάρχουν πολλοί τρόποι να το κάνετε αυτό, μπορείτε να διαλέξετε οποιονδήποτε πιστεύετε ότι είναι ο πιο διασκεδαστικός (ή αυτόν που έχει την λιγότερη δουλειά). Εφόσον ο τερματισμός με την επανεκκίνηση είναι όμοιες διαδικασίες, οι περισσότεροι τρόποι τερματισμού του συστήματος μπορούν να χρησιμοποιηθούν και για επανεκκίνηση. Η πρώτη μέθοδος είναι μέσο του προγράμματος shutdown(8), και είναι πιθανότατα η πιο δημοφιλής. Η shutdown μπορεί να χρησιμοποιηθεί για επανεκκίνηση ή τερματισμό του συστήματος σε συγκεκριμένο χρόνο, και μπορεί να προβάλει ένα μήνυμα σε όλους τους συνδεδεμένους χρήστες του συστήματος λέγοντας τους ότι το σύστημα θα τερματιστεί. Η πιο βασική χρήση της shutdown για τον τερματισμό είναι:
# shutdown -h now Σε αυτή την περίπτωση, δεν θα στείλουμε ένα δικό μας μήνυμα στους χρήστες, θα δουν το προκαθορισμένο μήνυμα της shutdown. Το now είναι ο χρόνος που θέλουμε να τερματίσουμε το σύστημα, και το -h σημαίνει τη διακοπή (halt) του συστήματος. Αυτός δεν είναι πολύ φιλικός τρόπος για να λειτουργείς ένα σύστημα με πολλούς χρήστες, αλλά είναι πολύ καλό για τον προσωπικό υπολογιστή σας. Μία καλύτερη μέθοδος σε ένα σύστημα με πολλούς χρήστες θα είναι να δώσεις σε όλους μία μικρή προειδοποίηση: # shutdown -h +60 Αυτό θα τερματίσει το σύστημα σε μία ώρα (60 λεπτά), το οποίο είναι πολύ καλό για ένα φυσιολογικό σύστημα με πολλούς χρήστες. Τα κρίσιμα συστήματα πρέπει να έχουν τους χρόνους κατεβάσματος τους προγραμματισμένους (scheduled), και πρέπει να παράγουν προειδοποιήσεις για το χρόνο τερματισμού τους σε κάθε κατάλληλη τοποθεσία που χρησιμοποιείτε για προειδοποιήσεις (ηλ. Ταχυδρομείο, πίνακας ανακοινώσεων, /etc/motb, οτιδήποτε). Η επανεκκίνηση του συστήματος χρησιμοποιεί την ίδια εντολή, αλλά αλλάζει το -h με -r. # shutdown -r now Μπορείτε να χρησιμοποιήσετε την ίδια σημειογραφία για το χρόνο στην shutdown -r όπως στην shutdown -h. Υπάρχουν πολλά ακόμα πράγματα που μπορείτε να κάνετε με την shutdown για να ελέγξετε πότε θα τερματίζετε ή θα επανεκκινήσετε το μηχάνημα σας, δείτε την man σελίδα για περισσότερες πληροφορίες. Ο δεύτερος τρόπος τερματισμού ενός υπολογιστή είναι οι εντολές halt(8) και reboot(8). Όπως φαίνεται από τα ονόματα, η halt θα τερματίσει αμέσως το λειτουργικό σύστημα, και η reboot θα επανεκκινήσει το σύστημα. (Η reboot είναι ουσιαστικά ένας συμβολικός σύνδεσμος του halt). Καλούνται ως εξής: # halt # reboot Ένας χαμηλότερου επιπέδου τρόπος επανεκκίνησης ή τερματισμού του συστήματος είναι να μιλήσετε κατευθείαν στο init. Όλες οι άλλες μέθοδοι είναι απλά βολικοί τρόποι επικοινωνίας με το init, αλλά μπορείτε κατευθείαν να του πείτε τι να κάνει χρησιμοποιώντας την telinit(8) (σημειώστε ότι γράφετε με ένα μόνο l ). Με τη χρήση της telinit λέτε στο init σε ποιο runlevel να πάει, το οποίο θα τρέξει ένα ειδικό αρχείο διαταγών. Αυτό το αρχείο διαταγών θα τερματίσει τις διαδικασίες που χρειάζονται για αυτό το runlevel. Αυτό λειτουργεί για την επανεκκίνηση και τον τερματισμό γιατί και τα δύο είναι ειδικά runlevels. # telinit 0 Το runlevel 0 είναι η κατάσταση τερματισμού. Λέγοντας στο init να μπει στο runlevel 0 όλες οι διαδικασίες θα τερματιστούν, τα συστήματα αρχείων θα αποπροσαρτηθούν, και το μηχάνημα θα τερματιστεί. Αυτός είναι απολύτως αποδεκτός τρόπος τερματισμού του συστήματος. Σε πολλούς φορητούς υπολογιστές και καινούργιους προσωπικούς υπολογιστές, αυτό θα προκαλέσει στο μηχάνημα αυτόματο κλείσιμο.
# telinit 6 Το runlevel 6 είναι η κατάσταση επανεκκίνησης. Όλες οι διαδικασίες θα τερματιστούν, τα συστήματα αρχείων θα αποπροσαρτηθούν, και το μηχάνημα θα επανεκκινήσει. Αυτός είναι ένας απόλυτα αποδεκτός τρόπος επανεκκίνησης του συστήματος. Για τους περίεργους, όταν επιλέγετε το runlevel 0 ή το 6, είτε χρησιμοποιώντας στην shutdown, την halt, ή την reboot, το αρχείο διαταγών που θα εκτελεστεί είναι το /etc/rc.d/rc.6. (Το αρχείο διαταγών /etc/rc.d/rc.0 είναι ένας άλλος συμβολικός σύνδεσμος, για το /etc/rc.d/rc.6). Μπορείτε να διαμορφώσετε αυτό το αρχείο σύμφωνα με τις ανάγκες σας αλλά να είστε σίγουροι ότι δοκιμάζετε τις αλλαγές σας με προσοχή! Υπάρχει μία τελευταία μέθοδος επανεκκίνησης του συστήματος. Όλες οι άλλες μέθοδοι απαιτούν την σύνδεση ως root. Ωστόσο, είναι πιθανό να επανεκκινήσετε το σύστημα σας ακόμα και αν δεν είστε ο root, με την προϋπόθεση ότι έχετε φυσική πρόσβαση στο πληκτρολόγιο. Χρησιμοποιώντας το Control+Alt+Delete (ο χαιρετισμός των τριών δακτύλων ) θα προκαλέσει στο σύστημα άμεση επανεκκίνηση. (Στο παρασκήνιο, η εντολή shutdown καλείτε όταν πατάτε Control+Alt+Delete). Ο χαιρετισμός δεν λειτουργεί πάντα όταν χρησιμοποιείτε τα X Windows μπορεί να χρειαστεί να χρησιμοποιήσετε το Control+Alt+F1 (ή κάποιο άλλο συνδυασμό) για να επιλέξετε ένα τερματικό χωρίς X Windows πριν την χρησιμοποιήσετε. Τέλος, το αρχείο που ελέγχει απόλυτα κάθε τμήμα της εκκίνησης και του τερματισμού είναι το /etc/inittab(5). Γενικά, δεν πρέπει να χρειαστεί να αλλάξετε αυτό το αρχείο, αλλά μπορεί να σας δώσει μία εσωτερική ματιά για το γιατί λειτουργούν έτσι όπως λειτουργούν κάποια πράγματα. Ως συνήθως, δείτε τις σελίδες man για περισσότερες λεπτομέρειες.