5.1 Μάθημα 1
Πιστοποιητικό: |
Linux Essentials |
---|---|
Έκδοση: |
1.6 |
Θέμα: |
5 Ασφάλεια και Δικαιώματα Αρχείων |
Σκοπός: |
5.1 Βασική Ασφάλεια και Αναγνώριση Τύπων Χρηστών |
Μάθημα: |
1 απο 1 |
Εισαγωγή
Αυτό το μάθημα θα επικεντρωθεί στη βασική ορολογία των λογαριασμών, στα στοιχεία ελέγχου πρόσβασης και στην ασφάλεια των τοπικών συστημάτων Linux, στα εργαλεία της διεπαφής γραμμής εντολών (CLI) σε ένα σύστημα Linux για βασικούς ελέγχους πρόσβασης ασφαλείας και στα βασικά αρχεία για την υποστήριξη λογαριασμών χρηστών και ομάδων, όπως αυτά που χρησιμοποιούνται για στοιχειώδη κλιμάκωση προνομίων.
Η βασική ασφάλεια στα συστήματα Linux διαμορφώνεται σύμφωνα με τα στοιχεία ελέγχου πρόσβασης του Unix που, παρά το γεγονός ότι είναι σχεδόν πενήντα ετών, είναι αρκετά αποτελεσματικά σε σύγκριση με ορισμένα δημοφιλή λειτουργικά συστήματα καταναλωτών πολύ νεότερης καταγωγής. Ακόμη και κάποια άλλα, δημοφιλή λειτουργικά συστήματα που βασίζονται σε Unix τείνουν να “απολαμβάνουν ελευθερίες” που επικεντρώνονται στην “ευκολία πρόσβασης”, ενώ το Linux δεν το κάνει.
Τα σύγχρονα περιβάλλοντα και οι διεπαφές επιτραπέζιων υπολογιστών Linux απλοποιούν τη δημιουργία και τη διαχείριση των χρηστών και συχνά αυτοματοποιούν την εκχώρηση των στοιχείων ελέγχου πρόσβασης όταν ένας χρήστης συνδέεται — π.χ. στην οθόνη, τον ήχο και άλλα services — χωρίς ουσιαστικά να απαιτείται μη αυτόματη παρέμβαση του διαχειριστή συστήματος. Ωστόσο, είναι σημαντικό να κατανοήσουμε τις βασικές έννοιες ενός υποκείμενου λειτουργικού συστήματος Linux.
Λογαριασμοί
Η ασφάλεια περιλαμβάνει πολλές έννοιες, μια από τις πιο κοινές είναι η γενική έννοια των ελέγχων πρόσβασης. Για να μπορέσει κάποιος να αντιμετωπίσει τους ελέγχους πρόσβασης αρχείων, όπως η ιδιοκτησία και τα δικαιώματα, πρέπει να κατανοήσει τις βασικές έννοιες των λογαριασμών χρηστών Linux, οι οποίες χωρίζονται σε διάφορους τύπους.
Κάθε χρήστης σε ένα σύστημα Linux έχει έναν συσχετισμένο λογαριασμό που εκτός από τις πληροφορίες σύνδεσης (όπως όνομα χρήστη και κωδικό πρόσβασης) ορίζει επίσης πώς και πού μπορεί να αλληλεπιδράσει ο χρήστης με το σύστημα. Τα δικαιώματα και τα στοιχεία ελέγχου πρόσβασης καθορίζουν τα “όρια” εντός των οποίων μπορεί να λειτουργήσει κάθε χρήστης.
Αναγνωριστικά (UIDs/GIDs)
Τα Αναγνωριστικά Χρηστών και Ομάδων [User and Group Identifiers] (UID/GID) είναι οι βασικές, απαριθμημένες αναφορές σε λογαριασμούς. Οι πρώτες υλοποιήσεις ήταν περιορισμένες σε ακέραιους 16-bit (τιμές απο 0 έως 65535), αλλά τα συστήματα του 21ου αιώνα υποστηρίζουν 64-bit UID και GID. Οι χρήστες και οι ομάδες απαριθμούνται ανεξάρτητα, επομένως το ίδιο αναγνωριστικό [ID] μπορεί να αντιστοιχεί τόσο σε χρήστη όσο και σε ομάδα.
Κάθε χρήστης δεν έχει μόνο ένα UID, αλλά και ένα πρωταρχικό GID. Το πρωταρχικό GID για έναν χρήστη μπορεί να είναι μοναδικό για αυτόν τον χρήστη και μπορεί να καταλήξει να μην χρησιμοποιείται από άλλους χρήστες. Ωστόσο, αυτή η ομάδα θα μπορούσε επίσης να είναι μια ομάδα κοινής χρήσης από πολλούς χρήστες. Εκτός από αυτές τις πρωταρχικές ομάδες, κάθε χρήστης μπορεί να είναι μέλος και σε άλλες ομάδες.
Από προεπιλογή, στα συστήματα Linux, κάθε χρήστης εκχωρείται σε μια ομάδα με το ίδιο όνομα με το όνομα χρήστη του και το ίδιο GID με το UID του. Για παράδειγμα, δημιουργήστε έναν νέο χρήστη με το όνομα newuser
και, από προεπιλογή, η προεπιλεγμένη ομάδα του είναι επίσης newuser
.
Ο Λογαριασμός Υπερχρήστη
Στο Linux, ο λογαριασμός superuser είναι ο root
, ο οποίος έχει πάντα UID 0. Ο superuser μερικές φορές ονομάζεται διαχειριστής συστήματος και έχει απεριόριστη πρόσβαση και έλεγχο στο σύστημα, συμπεριλαμβανομένων άλλων χρηστών.
Η προεπιλεγμένη ομάδα για τον superuser έχει το GID 0
και ονομάζεται επίσης root
. Ο αφετηριακός κατάλογος για τον superuser είναι ένας αποκλειστικός κατάλογος ανώτατου επιπέδου, /root
, στον οποίο έχει πρόσβαση μόνο ο ίδιος ο χρήστης root
.
Τυπικοί Λογαριασμοί Χρηστών
Όλοι οι λογαριασμοί εκτός από τον root
είναι τεχνικά λογαριασμοί κανονικών χρηστών, αλλά σε ένα σύστημα Linux ο κοινός όρος λογαριασμός χρήστη σημαίνει συχνά έναν “κανονικό” (μη προνομιούχο) λογαριασμό χρήστη. Συνήθως έχουν τις ακόλουθες ιδιότητες, με επιλεγμένες εξαιρέσεις:
-
UID που ξεκινούν από το 1000 (4 ψηφία), αν και ορισμένα παλαιού τύπου συστήματα μπορεί να ξεκινούν από το 500.
-
Ένας καθορισμένος αφετηριακός κατάλογος, συνήθως ένας υποκατάλογος του
/home
, ανάλογα με την τοπική διαμόρφωση. -
Ένα καθορισμένο shell σύνδεσης. Στο Linux το προεπιλεγμένο shell είναι συνήθως το Bourne Again Shell (
/bin/bash
), αν και άλλα μπορεί να είναι διαθέσιμα.
Εάν ένας λογαριασμός χρήστη δεν έχει ένα έγκυρο shell στα χαρακτηριστικά του, ο χρήστης δεν θα μπορεί να ανοίξει ένα διαδραστικό shell. Συνήθως το /sbin/nologin
χρησιμοποιείται ως μη έγκυρο shell. Αυτό μπορεί να είναι σκόπιμο, εάν ο χρήστης θα πιστοποιηθεί μόνο για services εκτός από πρόσβαση στη κονσόλα ή SSH, π.χ. μόνο για ασφαλή πρόσβαση FTP (sftp
).
Note
|
Προς αποφυγή σύγχυσης, ο όρος λογαριασμός χρήστη θα ισχύει μόνο για τυπικούς ή κανονικούς λογαριασμούς χρηστών στο εξής. Για παράδειγμα, ο λογαριασμός συστήματος θα χρησιμοποιηθεί για να εξηγήσει έναν λογαριασμό χρήστη Linux που είναι του τύπου λογαριασμού χρήστη συστήματος. |
Λογαριασμοί Συστήματος
Οι λογαριασμοί συστήματος συνήθως προ-δημιουργούνται κατά την εγκατάσταση του συστήματος. Αυτά είναι για εγκαταστάσεις, προγράμματα και services που δεν θα εκτελούνται ως ο superuser. Σε έναν ιδανικό κόσμο, όλα αυτά θα ήταν εγκαταστάσεις λειτουργικού συστήματος.
Οι λογαριασμοί συστήματος ποικίλλουν, αλλά τα χαρακτηριστικά τους περιλαμβάνουν:
-
Τα UID είναι συνήθως κάτω από το 100 (2ψήφιο) ή 500-1000 (3ψήφιο).
-
Είτε χωρίς αποκλειστικό αφετηριακό κατάλογο είτε με ένα κατάλογο που συνήθως δεν βρίσκεται κάτω από το
/home
. -
Δεν υπάρχει έγκυρο shell σύνδεσης (συνήθως
/sbin/nologin
), με σπάνιες εξαιρέσεις.
Οι περισσότεροι λογαριασμοί συστήματος στο Linux δεν θα συνδεθούν ποτέ και δεν χρειάζονται ένα καθορισμένο shell στα χαρακτηριστικά τους. Πολλά processes που ανήκουν και εκτελούνται από λογαριασμούς συστήματος διακλαδώνουν στο δικό τους περιβάλλον από τη διαχείριση του συστήματος, και εκτελούνται με τον καθορισμένο λογαριασμό συστήματος. Αυτοί οι λογαριασμοί έχουν συνήθως περιορισμένα ή, τις περισσότερες φορές, μη προνόμια.
Note
|
Από τη σκοπιά του LPI Linux Essentials, οι λογαριασμοί συστήματος είναι UID <1000, με 2 ή 3 ψηφία UID (και GID). |
Γενικά, οι λογαριασμοί συστήματος θα πρέπει να μην έχουν έγκυρο shell σύνδεσης. Το αντίθετο θα ήταν θέμα ασφάλειας στις περισσότερες περιπτώσεις.
Λογαριασμοί Υπηρεσίας
Οι λογαριασμοί services δημιουργούνται συνήθως όταν εγκαθίστανται και διαμορφώνονται services. Παρόμοια με τους λογαριασμούς συστήματος, αυτοί είναι για εγκαταστάσεις, προγράμματα και services που δεν θα εκτελούνται ως ο superuser.
Σε πολλά εγχειρίδια, οι λογαριασμοί συστήματος και υπηρεσιών είναι παρόμοιοι και εναλλάσσονται συχνά. Αυτό περιλαμβάνει τη θέση των αφετηριακών καταλόγων που είναι συνήθως εκτός του /home
, εάν ορίζονται καθόλου (οι λογαριασμοί services είναι συχνά πιο πιθανό να έχουν έναν, σε σύγκριση με τους λογαριασμούς συστήματος), και χωρίς έγκυρο shell σύνδεσης. Αν και δεν υπάρχει αυστηρός ορισμός, η πρωταρχική διαφορά μεταξύ λογαριασμών συστήματος και services αναλύεται σε UID/GID.
- Λογαριασμός συστήματος
-
UID/GID <100 (2ψήφιο) ή <500-1000 (3ψήφιο)
- Λογαριασμός service
-
UID/GID >1000 (4+ ψηφία), αλλά όχι “βασικός” ή “κανονικός” λογαριασμός χρήστη, ένας λογαριασμός για services, με UID/GID >1000 (4+ ψηφία)
Ορισμένες διανομές Linux εξακολουθούν να έχουν προ-δεσμευμένους λογαριασμούς services κάτω από UID <100, και αυτοί θα μπορούσαν επίσης να θεωρηθούν ως λογαριασμοί συστήματος, παρόλο που δεν έχουν δημιουργηθεί κατά την εγκατάσταση του συστήματος. Π.χ., σε διανομές Linux που βασίζονται στο Fedora (συμπεριλαμβανομένου του Red Hat), ο χρήστης για τον web server Apache έχει UID (και GID) 48, σαφώς έναν λογαριασμό συστήματος, παρόλο που έχει έναν αφετηριακό κατάλογο (συνήθως στο /usr/share/httpd
ή στο /var/www/html/
).
Note
|
Από τη σκοπιά του LPI Linux Essentials, οι λογαριασμοί συστήματος είναι UID <1000 και οι λογαριασμοί κανονικών χρηστών είναι UID >1000. Δεδομένου ότι οι λογαριασμοί κανονικών χρηστών είναι >1000, αυτά τα UID μπορούν επίσης να περιλαμβάνουν λογαριασμούς services. |
Shells Σύνδεσης και Κατάλογοι Αφετηρίας
Ορισμένοι λογαριασμοί έχουν shell σύνδεσης, ενώ άλλοι όχι για λόγους ασφαλείας, καθώς δεν απαιτούν διαδραστική πρόσβαση. Το προεπιλεγμένο shell σύνδεσης στις περισσότερες διανομές Linux είναι το Bourne Again Shell ή bash
, αλλά μπορεί να είναι διαθέσιμα άλλα shells, όπως το C Shell (csh
), το shell Korn (ksh
) ή το shell Z (zsh
), για να αναφέρουμε μερικά.
Ένας χρήστης μπορεί να αλλάξει το shell σύνδεσής του χρησιμοποιώντας την εντολή chsh
. Από προεπιλογή, η εντολή εκτελείται σε διαδραστική λειτουργία και εμφανίζει μια ερώτηση που ρωτά ποιο shell πρέπει να χρησιμοποιηθεί. Η απάντηση θα πρέπει να είναι το πλήρες path προς το δυαδικό shell, όπως παρακάτω:
$ chsh Changing the login shell for emma Enter the new value, or press ENTER for the default Login Shell [/bin/bash]: /usr/bin/zsh
Μπορείτε επίσης να εκτελέσετε την εντολή σε μη διαδραστική λειτουργία, με την παράμετρο -s
ακολουθούμενη από το path προς το δυαδικό, όπως:
$ chsh -s /usr/bin/zsh
Οι περισσότεροι λογαριασμοί έχουν καθορισμένο αφετηριακό κατάλογο. Στο Linux, αυτή είναι συνήθως η μόνη τοποθεσία όπου αυτός ο λογαριασμός χρήστη έχει εγγυημένη πρόσβαση εγγραφής, με ορισμένες εξαιρέσεις (π.χ. περιοχές προσωρινών συστημάτων αρχείων). Ωστόσο, ορισμένοι λογαριασμοί έχουν ρυθμιστεί σκόπιμα έτσι ώστε να μην έχουν πρόσβαση εγγραφής ακόμη και στον δικό τους αφετηριακό κατάλογο, για λόγους ασφαλείας.
Λήψη Πληροφοριών για τους Χρήστες σας
Η παράθεση βασικών πληροφοριών χρήστη είναι μια συνηθισμένη, καθημερινή πρακτική σε ένα σύστημα Linux. Σε ορισμένες περιπτώσεις, οι χρήστες θα χρειαστεί να αλλάξουν χρήστες και να αυξήσουν το δικαίωμά τους για να ολοκληρώσουν προνομιακές εργασίες.
Ακόμη και οι χρήστες έχουν τη δυνατότητα να παραθέσουν χαρακτηριστικά και επίπεδα πρόσβασης από τη γραμμή εντολών, χρησιμοποιώντας τις παρακάτω εντολές. Οι βασικές πληροφορίες υπό περιορισμένο πλαίσιο δεν είναι μια προνομιακή λειτουργία.
Η παράθεση των τρεχουσών πληροφοριών ενός χρήστη στη γραμμή εντολών είναι τόσο απλή όσο μια εντολή δύο γραμμάτων, id
. Η έξοδος θα διαφέρει ανάλογα με το αναγνωριστικό σύνδεσής σας:
$ id uid=1024(emma) gid=1024(emma) 1024(emma),20(games),groups=10240(netusers),20480(netadmin) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Στην προηγούμενη παράθεση, ο χρήστης (emma
) έχει αναγνωριστικά τα οποία αναλύονται ως εξής:
-
1024
= Αναγνωριστικό Χρήστη (UID), ακολουθούμενο από το όνομα χρήστη (κοινό όνομα γνωστό και ως όνομα σύνδεσης) σε παρένθεση. -
1024
= το πρωταρχικό Αναγνωριστικό Ομάδας (GID), ακολουθούμενο από το όνομα ομάδας (κοινό όνομα) σε παρένθεση. -
Μια λίστα με επιπλέον GID (ονόματα ομάδων) στα οποία ανήκει επίσης ο χρήστης.
Η παράθεση της τελευταίας φοράς που οι χρήστες έχουν συνδεθεί στο σύστημα γίνεται με την εντολή last
:
$ last emma pts/3 ::1 Fri Jun 14 04:28 still logged in reboot system boot 5.0.17-300.fc30. Fri Jun 14 04:03 still running reboot system boot 5.0.17-300.fc30. Wed Jun 5 14:32 - 15:19 (00:46) reboot system boot 5.0.17-300.fc30. Sat May 25 18:27 - 19:11 (00:43) reboot system boot 5.0.16-100.fc28. Sat May 25 16:44 - 17:06 (00:21) reboot system boot 5.0.9-100.fc28.x Sun May 12 14:32 - 14:46 (00:14) root tty2 Fri May 10 21:55 - 21:55 (00:00) ...
Οι πληροφορίες που παρατίθενται στις στήλες μπορεί να διαφέρουν, αλλά ορισμένες αξιοσημείωτες εγγραφές στην προηγούμενη λίστα είναι:
-
Ένας χρήστης (
emma
) συνδέθηκε μέσω του δικτύου (ψεύδο TTYpts/3
) και εξακολουθεί να είναι συνδεδεμένος. -
Αναγράφεται ο χρόνος τρέχουσας εκκίνησης, μαζί με τον πυρήνα. Στο παραπάνω παράδειγμα, περίπου 25 λεπτά πριν συνδεθεί ο χρήστης.
-
Ο superuser (
root
) συνδέθηκε μέσω εικονικής κονσόλας (TTYtty2
), για λίγο, στα μέσα Μαΐου.
Μια παραλλαγή της εντολής last
είναι η εντολή lastb
, η οποία παραθέτει όλες τις τελευταίες αποτυχημένες προσπάθειες σύνδεσης.
Οι εντολές who
και w
παραθέτουν μόνο τις ενεργές συνδέσεις στο σύστημα:
$ who emma pts/3 2019-06-14 04:28 (::1) $ w 05:43:41 up 1:40, 1 user, load average: 0.25, 0.53, 0.51 USER TTY LOGIN@ IDLE JCPU PCPU WHAT emma pts/3 04:28 1:14m 0.04s 0.04s -bash
Και οι δύο εντολές παραθέτουν μερικές από τις ίδιες πληροφορίες. Για παράδειγμα, ένας χρήστης (emma
) είναι συνδεδεμένος με μια ψευδο συσκευή TTY (pts/3
) και η ώρα σύνδεσης είναι 04:28.
Η εντολή w
παραθέτει περισσότερες πληροφορίες, συμπεριλαμβανομένων των εξής:
-
Την τρέχουσα ώρα και πόσο καιρό έχει λειτουργήσει το σύστημα
-
Πόσοι χρήστες είναι συνδεδεμένοι
-
Τους μέσους όρους φόρτου για τα τελευταία 1, 5 και 15 λεπτά
Και τις πρόσθετες πληροφορίες για το κάθε ενεργό session λειτουργίας χρήστη.
-
Επιλέξτε, συνολικοί χρόνοι χρήσης της CPU (
IDLE
,JCPU
καιPCPU
) -
Το τρέχον process (
-bash
). Ο συνολικός χρόνος χρήσης της CPU αυτού του process είναι το τελευταίο στοιχείο (PCPU
).
Και οι δύο εντολές έχουν περαιτέρω επιλογές για να παραθέσουν διάφορες, πρόσθετες πληροφορίες.
Αλλαγή Χρηστών και Κλιμάκωση Προνομίου
Σε έναν ιδανικό κόσμο, οι χρήστες δεν θα χρειαζόταν ποτέ να κλιμακώσουν τα προνόμια για να ολοκληρώσουν τις εργασίες τους. Το σύστημα πάντα θα “απλώς λειτουργoύσε” και όλα θα ρυθμίζονταν για διάφορες προσβάσεις.
Ευτυχώς για εμάς, το Linux — απο προεπιλογή — λειτουργεί έτσι για τους περισσότερους χρήστες που δεν είναι διαχειριστές συστήματος, παρόλο που πάντα ακολουθούν το μοντέλο ασφάλειας ελάχιστου προνομίου.
Ωστόσο, υπάρχουν εντολές που επιτρέπουν την κλιμάκωση των προνομίων όταν χρειάζεται. Δύο από τις πιο σημαντικές είναι οι su
και το sudo
.
Στα περισσότερα συστήματα Linux σήμερα, η εντολή su
χρησιμοποιείται μόνο για την κλιμάκωση των δικαιωμάτων στον root, ο οποίος είναι ο προεπιλεγμένος χρήστης εάν δεν έχει καθοριστεί ένα όνομα χρήστη μετά το όνομα της εντολής. Αν και μπορεί να χρησιμοποιηθεί για αλλαγή σε άλλο χρήστη, δεν είναι καλή πρακτική: οι χρήστες θα πρέπει να συνδέονται από άλλο σύστημα, μέσω δικτύου ή από φυσική κονσόλα ή τερματικό στο σύστημα.
emma ~$ su - Password: root ~#
Αφού εισάγετε τον κωδικό πρόσβασης superuser (root
), ο χρήστης έχει ένα superuser shell (προσέξτε το #
στο τέλος της γραμμής εντολών) και είναι, για όλες τις προθέσεις και σκοπούς, ο superuser (root
).
Η κοινή χρήση κωδικών πρόσβασης είναι μια πολύ κακή πρακτική ασφάλειας, επομένως θα πρέπει να υπάρχουν ελάχιστες, εάν υπάρχουν, ανάγκες για την εντολή su
σε ένα σύγχρονο σύστημα Linux.
Το σύμβολο του δολαρίου ($
) θα πρέπει να τερματίζει τη γραμμή εντολών για ένα μη προνομιούχο shell χρήστη, ενώ το σύμβολο της δίεσης (#
) θα πρέπει να τερματίζει τη γραμμή εντολών για το superuser shell (root
). Συνιστάται ιδιαίτερα ο τελικός χαρακτήρας οποιουδήποτε prompt ποτέ να μην αλλάξει από αυτό το "καθολικά κατανοητό" πρότυπο, καθώς αυτή η ονοματολογία χρησιμοποιείται σε εκπαιδευτικό υλικό, συμπεριλαμβανομένων αυτών.
Warning
|
Ποτέ μην αλλάξετε στον superuser ( |
Ποιο είναι το μεγαλύτερο πρόβλημα με τη χρήση του su
για αλλαγή στον superuser (root
); Εάν το session ενός κανονικού χρήστη έχει παραβιαστεί, ο κωδικός πρόσβασης superuser (root
) θα μπορούσε να καταγραφεί. Εκεί μπαίνει το “Switch User Do" (ή "`Superuser Do”):
$ cat /sys/devices/virtual/dmi/id/board_serial cat: /sys/devices/virtual/dmi/id/board_serial: Permission denied $ sudo cat /sys/devices/virtual/dmi/id/board_serial [sudo] password for emma: /6789ABC/
Στην προηγούμενη παράθεση, ο χρήστης προσπαθεί να αναζητήσει τον σειριακό αριθμό της πλακέτας του συστήματος. Ωστόσο, το δικαίωμα απορρίπτεται, καθώς αυτές οι πληροφορίες επισημαίνονται ως προνομιακές.
Ωστόσο, χρησιμοποιώντας το sudo
, ο χρήστης εισάγει τον δικό του κωδικό πρόσβασης για να πιστοποιήσει ποιος είναι. Εάν έχει εξουσιοδοτηθεί στη διαμόρφωση sudoers
να εκτελεί αυτήν την εντολή με προνόμιο, με τις επιλογές που επιτρέπονται, θα λειτουργήσει.
Tip
|
Από προεπιλογή, η πρώτη εξουσιοδοτημένη εντολή |
Αρχεία Ελέγχου Πρόσβασης
Σχεδόν όλα τα λειτουργικά συστήματα διαθέτουν ένα σύνολο μερών που χρησιμοποιούνται για την αποθήκευση στοιχείων ελέγχου πρόσβασης. Στο Linux αυτά είναι συνήθως αρχεία κειμένου που βρίσκονται κάτω από τον κατάλογο /etc
, όπου πρέπει να αποθηκεύονται τα αρχεία διαμόρφωσης συστήματος. Από προεπιλογή, αυτός ο κατάλογος είναι αναγνώσιμος από κάθε χρήστη του συστήματος, αλλά μπορεί να εγγραφεί μόνο από τον root
.
Τα κύρια αρχεία που σχετίζονται με τους λογαριασμούς χρηστών, τα χαρακτηριστικά και τον έλεγχο πρόσβασης είναι:
/etc/passwd
-
Αυτό το αρχείο αποθηκεύει βασικές πληροφορίες σχετικά με τους χρήστες του συστήματος, συμπεριλαμβανομένων των UID και GID, αφετηριακού καταλόγου, shell κ.λ.π. Παρά το όνομα, δεν αποθηκεύονται κωδικοί πρόσβασης εδώ.
/etc/group
-
Αυτό το αρχείο αποθηκεύει βασικές πληροφορίες για όλες τις ομάδες χρηστών στο σύστημα, όπως όνομα ομάδας και GID και μέλη.
/etc/shadow
-
Εδώ αποθηκεύονται οι κωδικοί πρόσβασης χρήστη. Είναι hashed, για ασφάλεια.
/etc/gshadow
-
Αυτό το αρχείο αποθηκεύει πιο λεπτομερείς πληροφορίες σχετικά με τις ομάδες, συμπεριλαμβανομένου ενός hashed κωδικού πρόσβασης που επιτρέπει στους χρήστες να γίνουν προσωρινά μέλη της ομάδας, μια λίστα χρηστών που είναι μέλη της ομάδας κάθε φορά και μια λίστα των διαχειριστών ομάδων.
Warning
|
Αυτά τα αρχεία δεν έχουν σχεδιαστεί και δεν πρέπει ποτέ να υποβάλλονται σε άμεση επεξεργασία. Αυτό το μάθημα καλύπτει μόνο τις πληροφορίες που είναι αποθηκευμένες σε αυτά τα αρχεία και όχι την επεξεργασία αυτών των αρχείων. |
Από προεπιλογή, κάθε χρήστης μπορεί να εισέλθει στο /etc
και να διαβάσει τα αρχεία /etc/passwd
και /etc/group
. Και επίσης από προεπιλογή κανένας χρήστης, εκτός από τον root
, δεν μπορεί να διαβάσει τα αρχεία /etc/shadow
ή /etc/gshadow
.
Υπάρχουν επίσης αρχεία που σχετίζονται με την κλιμάκωση βασικών προνομίων σε συστήματα Linux, όπως στις εντολές su
και sudo
. Από προεπιλογή, αυτά είναι προσβάσιμα μόνο από τον χρήστη root
.
/etc/sudoers
-
Αυτό το αρχείο ελέγχει ποιος μπορεί να χρησιμοποιήσει την εντολή
sudo
και πώς. /etc/sudoers.d
-
Αυτός ο κατάλογος μπορεί να περιέχει αρχεία που συμπληρώνουν τις ρυθμίσεις στο αρχείο
sudoers
.
Από τη σκοπιά της εξέτασης LPI Linux Essentials, να γνωρίζετε απλώς το path και το όνομα αρχείου του προεπιλεγμένου αρχείου ρύθμισης παραμέτρων sudo, /etc/sudoers
. Η διαμόρφωσή του ξεφεύγει από το πεδίο εφαρμογής αυτού του υλικού.
Warning
|
Παρόλο που το |
/etc/passwd
Το αρχείο /etc/passwd
αναφέρεται συνήθως ως αρχείο κωδικού πρόσβασης
. Κάθε γραμμή περιέχει πολλά πεδία που οριοθετούνται πάντα με άνω και κάτω τελεία (:
). Παρά το όνομα, ο πραγματικός, μονσήμαντα hashed, κωδικός πρόσβασης δεν αποθηκεύεται σήμερα σε αυτό το αρχείο.
Η τυπική σύνταξη για μια γραμμή σε αυτό το αρχείο είναι:
USERNAME:PASSWORD:UID:GID:GECOS:HOMEDIR:SHELL
Όπου:
USERNAME
-
Το όνομα χρήστη γνωστό και ως login (όνομα), όπως
root
,nobody
,emma
. PASSWORD
-
Κληροδοτημένη θέση του hash του κωδικού πρόσβασης. Σχεδόν πάντα
x
, υποδεικνύοντας ότι ο κωδικός πρόσβασης είναι αποθηκευμένος στο αρχείο/etc/shadow
. UID
-
Αναγνωριστικό χρήστη (UID), όπως
0
,99
,1024
. GID
-
Προεπιλεγμένο αναγνωριστικό ομάδας (GID), όπως
0
,99
,1024
. GECOS
-
Μια λίστα CSV με πληροφορίες χρήστη, συμπεριλαμβανομένου του ονόματος, της τοποθεσίας, του αριθμού τηλεφώνου. Για παράδειγμα:
Emma Smith,42 Douglas St,555.555.5555
HOMEDIR
-
Path προς τον αφετηριακό κατάλογο του χρήστη, όπως
/root
,/home/emma
κ.λ.π. SHELL
-
Το προεπιλεγμένο shell για αυτόν τον χρήστη, όπως
/bin/bash
,/sbin/nologin
,/bin/ksh
κ.λ.π.
Για παράδειγμα, η ακόλουθη γραμμή περιγράφει τον χρήστη emma
:
emma:x:1000:1000:Emma Smith,42 Douglas St,555.555.5555:/home/emma:/bin/bash
Κατανόηση του Πεδίου GECOS
Το πεδίο GECOS περιέχει τρία (3) ή περισσότερα πεδία, οριοθετημένα με κόμμα (,
), γνωστό και ως μια λίστα Comma Separated Values (CSV). Αν και δεν υπάρχει επιβεβλημένο πρότυπο, τα πεδία είναι συνήθως με την ακόλουθη σειρά:
NAME,LOCATION,CONTACT
Όπου:
NAME
-
είναι το “Πλήρες Όνομα" του χρήστη ή το "`Όνομα Λογισμικού” στην περίπτωση λογαριασμού service.
LOCATION
-
είναι συνήθως η φυσική τοποθεσία του χρήστη μέσα σε ένα κτίριο, ο αριθμός δωματίου ή το τμήμα επικοινωνίας ή ένα άτομο στην περίπτωση λογαριασμού service.
CONTACT
-
παραθέτει στοιχεία επικοινωνίας όπως τον αριθμό τηλεφώνου του σπιτιού ή της εργασίας.
Τα πρόσθετα πεδία ενδέχεται να περιλαμβάνουν πρόσθετες πληροφορίες επικοινωνίας, όπως αριθμό κατοικίας ή διεύθυνση e-mail. Για να αλλάξετε τις πληροφορίες στο πεδίο GECOS, χρησιμοποιήστε την εντολή chfn
και απαντήστε στις ερωτήσεις, όπως παρακάτω. Εάν δεν παρασχεθεί όνομα χρήστη μετά το όνομα της εντολής, θα αλλάξετε τις πληροφορίες για τον τρέχοντα χρήστη:
$ chfn Changing the user information for emma Enter the new value, or press ENTER for the default Full Name: Emma Smith Room Number []: 42 Work Phone []: 555.555.5555 Home Phone []: 555.555.6666
/etc/group
Το αρχείο /etc/group
περιέχει πεδία που οριοθετούνται πάντα με άνω και κάτω τελεία (:
), που αποθηκεύουν βασικές πληροφορίες σχετικά με τις ομάδες στο σύστημα. Μερικές φορές ονομάζεται “αρχείο ομάδας”. Η σύνταξη για κάθε γραμμή είναι:
NAME:PASSWORD:GID:MEMBERS
Όπου:
NAME
-
είναι το όνομα της ομάδας, όπως
root
,users
,emma
κ.λ.π. PASSWORD
-
Κληροδοτημένη θέση ενός προαιρετικού hash κωδικού πρόσβασης ομάδας. Σχεδόν πάντα
x
, υποδεικνύοντας ότι ο κωδικός πρόσβασης (αν έχει οριστεί) είναι αποθηκευμένος στο αρχείο/etc/gshadow
. GID
-
Αναγνωριστικό ομάδας (GID), όπως
0
,99
,1024
. MEMBERS
-
μια λίστα ονομάτων χρηστών που είναι μέλη της ομάδας, διαχωρισμένη με κόμματα, όπως
jsmith,emma
.
Το παρακάτω παράδειγμα δείχνει μια γραμμή που περιέχει πληροφορίες σχετικά με την ομάδα students
:
students:x:1023:jsmith,emma
Ο χρήστης δεν χρειάζεται να αναφέρεται στο πεδίο μελών όταν η ομάδα είναι η πρωταρχική ομάδα για έναν χρήστη. Εάν ένας χρήστης περιλαμβάνεται στη λίστα, τότε είναι περιττός — δηλαδή, δεν υπάρχει καμία αλλαγή στη λειτουργικότητα, είτε περιλαμβάνεται είτε όχι.
Note
|
Η χρήση κωδικών πρόσβασης για ομάδες δεν εμπίπτει στο πεδίο εφαρμογής αυτής της ενότητας, ωστόσο, εάν οριστεί, το hash του κωδικού πρόσβασης αποθηκεύεται στο αρχείο |
/etc/shadow
Ο ακόλουθος πίνακας παραθέτει τα χαρακτηριστικά που είναι αποθηκευμένα στο αρχείο /etc/shadow
, που συνήθως αναφέρεται ως “shadow file”. Το αρχείο περιέχει πεδία που οριοθετούνται πάντα με άνω και κάτω τελεία (:
). Αν και το αρχείο έχει πολλά πεδία, τα περισσότερα είναι εκτός του πεδίου αυτού του μαθήματος, εκτός από τα δύο πρώτα.
Η βασική σύνταξη για μια γραμμή σε αυτό το αρχείο είναι:
USERNAME:PASSWORD:LASTCHANGE:MINAGE:MAXAGE:WARN:INACTIVE:EXPDATE
Όπου:
USERNAME
-
Το όνομα χρήστη (ίδιο με το
/etc/passwd
), όπως τοroot
,nobody
,emma
. PASSWORD
-
Ένα μονής κατεύθυνσης hash του κωδικού πρόσβασης, συμπεριλαμβανομένου ενός προηγηθέντος salt. Για παράδειγμα:
!!
,!$1$01234567$ABC…
,$6$012345789ABCDEF$012…
. LASTCHANGE
-
Ημερομηνία της τελευταίας αλλαγής κωδικού πρόσβασης σε ημέρες από την “εποχή” [epoch], όπως
17909
. MINAGE
-
Ελάχιστη ηλικία κωδικού πρόσβασης σε ημέρες.
MAXAGE
-
Μέγιστη ηλικία κωδικού πρόσβασης σε ημέρες.
WARN
-
Προειδοποιητική περίοδος πριν από τη λήξη του κωδικού πρόσβασης, σε ημέρες.
INACTIVE
-
Μέγιστη ηλικία κωδικού πρόσβασης μετά τη λήξη, σε ημέρες.
EXPDATE
-
Ημερομηνία λήξης κωδικού πρόσβασης, σε ημέρες από την “εποχή”.
Στο παρακάτω παράδειγμα, μπορείτε να δείτε ένα δείγμα καταχώρησης από το αρχείο /etc/shadow
. Λάβετε υπόψη ότι ορισμένες τιμές, όπως INACTIVE
και EXPDATE
δεν έχουν καθοριστεί.
emma:$6$nP532JDDogQYZF8I$bjFNh9eT1xpb9/n6pmjlIwgu7hGjH/eytSdttbmVv0MlyTMFgBIXESFNUmTo9EGxxH1OT1HGQzR0so4n1npbE0:18064:0:99999:7:::
Η “εποχή” ενός συστήματος POSIX είναι τα μεσάνυχτα (0000), της Παγκόσμια Ώρα Συντεταγμένων (UTC), την Πέμπτη 1η Ιανουαρίου 1970. Οι περισσότερες ημερομηνίες και ώρες POSIX είναι είτε σε δευτερόλεπτα από την “εποχή”, είτε στη περίπτωση του αρχείου /etc/shadow
, ημέρες από την “εποχή”.
Note
|
Το shadow αρχείο έχει σχεδιαστεί για να είναι αναγνώσιμο μόνο από τον superuser και από επιλεγμένα services ελέγχου ταυτότητας του βασικού συστήματος που ελέγχουν το μονής κατεύθυνσης hash του κωδικού πρόσβασης κατά τη σύνδεση ή κατά άλλο χρόνο ελέγχου της ταυτότητας. |
Παρόλο που υπάρχουν διαφορετικές λύσεις ελέγχου ταυτότητας, η στοιχειώδης μέθοδος αποθήκευσης κωδικού πρόσβασης είναι η μονής κατεύθυνσης hash function. Αυτό γίνεται έτσι ώστε ο κωδικός πρόσβασης να μην αποθηκεύεται ποτέ σε καθαρό κείμενο σε ένα σύστημα, καθώς η συνάρτηση hashing είναι μη αναστρέψιμη. Μπορείτε να μετατρέψετε έναν κωδικό πρόσβασης σε hash, αλλά (ιδανικά) δεν είναι δυνατό να μετατρέψετε ένα hash σε κωδικό πρόσβασης.
Το πολύ, απαιτείται μια μέθοδος brute force για το hashing όλων των συνδυασμών ενός κωδικού πρόσβασης, μέχρι να ταιριάζει κάποιος. Για να περιοριστεί το πρόβλημα του σπασίματος ενός hash κωδικού πρόσβασης σε ένα σύστημα, τα συστήματα Linux χρησιμοποιούν ένα τυχαίο “salt” σε κάθε hash κωδικού πρόσβασης για έναν χρήστη. Έτσι, το hash για έναν κωδικό πρόσβασης χρήστη σε ένα σύστημα Linux συνήθως δεν θα είναι ο ίδιος όπως σε άλλο σύστημα Linux, ακόμα κι αν ο κωδικός πρόσβασης είναι ο ίδιος.
Στο αρχείο /etc/shadow
, ο κωδικός πρόσβασης μπορεί να έχει διάφορες μορφές. Αυτές οι μορφές περιλαμβάνουν συνήθως τα ακόλουθα:
!!
-
Αυτό σημαίνει έναν “απενεργοποιημένο” λογαριασμό (δεν είναι δυνατός ο έλεγχος ταυτότητας), χωρίς αποθηκευμένο hash κωδικού πρόσβασης.
!$1$01234567$ABC…
-
Ένας “απενεργοποιημένος” λογαριασμός (λόγω του αρχικού θαυμαστικού), με μια προγενέστερη συνάρτηση hash, hash salt και μια hash συμβολοσειρά αποθηκευμένη.
$1$0123456789ABC$012…
-
Ένας “ενεργοποιημένος” λογαριασμός με αποθηκευμένη συνάρτηση hash, hash salt και hash συμβολοσειρά.
Η συνάρτηση hash, το hash salt και η hash συμβολοσειρά προηγούνται και οριοθετούνται από ένα σύμβολο δολαρίου ($
). Το μήκος του hash salt πρέπει να είναι μεταξύ οκτώ και δεκαέξι (8-16) χαρακτήρων. Παραδείγματα από τα τρία πιο κοινά είναι τα εξής:
$1$01234567$ABC…
-
Μια συνάρτηση hash του MD5 (
1
), με ένα παράδειγμα μήκους hash οκτώ. $5$01234567ABCD$012…
-
Μια συνάρτηση hash του SHA256 (
5
), με ένα παράδειγμα μήκους hash δώδεκα. $6$01234567ABCD$012…
-
Μια συνάρτηση hash του SHA512 (
6
), με ένα παράδειγμα μήκους hash δώδεκα.
Note
|
Η συνάρτηση hash MD5 θεωρείται μη ασφαλής κρυπτογραφικά με το σημερινό επίπεδο (δεκαετία 2010 και μεταγενέστερα) του ASIC και ακόμη και της γενικής απόδοσης SIMD υπολογιστών. Για παράδειγμα, τα Ομοσπονδιακά Πρότυπα Επεξεργασίας Πληροφοριών των ΗΠΑ (FIPS) δεν επιτρέπουν τη χρήση του MD5 για οποιεσδήποτε κρυπτογραφικές λειτουργίες, μόνο για πολύ περιορισμένες πτυχές επικύρωσης, αλλά όχι για την ακεραιότητα των ψηφιακών υπογραφών ή για παρόμοιους σκοπούς. |
Από τη σκοπιά των σκοπών και της εξέτασης του LPI Linux Essentials, κατανοήστε απλώς ότι το hash κωδικού πρόσβασης για έναν τοπικό χρήστη αποθηκεύεται μόνο στο αρχείο /etc/shadow
το οποίο μόνο επιλεγμένες, services ελέγχου ταυτότητας μπορούν να διαβάσουν ή ο superuser μπορεί να τροποποιήσει μέσω άλλων εντολών .
Καθοδηγούμενες Ασκήσεις
-
Εξετάστε την ακόλουθη έξοδο της εντολής
id
:$ id emma uid=1000(emma) gid=1000(emma) groups=1000(emma),4(adm),5(tty),10(uucp),20(dialout),27(sudo),46(plugdev)
Σε ποια αρχεία είναι αποθηκευμένα τα ακόλουθα χαρακτηριστικά;
UID και GID
Ομάδες
-
Επιπλέον, σε ποιο αρχείο είναι αποθηκευμένος ο κωδικός πρόσβασης χρήστη;
-
-
Ποιος από τους παρακάτω τύπους κρυπτογραφίας χρησιμοποιείται από προεπιλογή για την τοπική αποθήκευση κωδικών πρόσβασης σε ένα σύστημα Linux;
-
Ασύμμετρη
-
Μονής κατεύθυνσης hash
-
Συμμετρική
-
ROT13
-
-
Εάν ένας λογαριασμός έχει αναγνωριστικό χρήστη (UID) που απαριθμείται κάτω από το 1000, τι τύπος λογαριασμού είναι αυτός;
-
Πώς μπορείτε να λάβετε μια λίστα με τις ενεργές συνδέσεις στο σύστημά σας, καθώς και έναν αριθμό από αυτές;
-
Χρησιμοποιώντας την εντολή
grep
, πήραμε το παρακάτω αποτέλεσμα με πληροφορίες για τoν χρήστηemma
.$ grep emma /etc/passwd emma:x:1000:1000:Emma Smith,42 Douglas St,555.555.5555,:/home/emma:/bin/ksh
Συμπληρώστε τα κενά του γραφήματος με τις κατάλληλες πληροφορίες χρησιμοποιώντας την έξοδο της προηγούμενης εντολής.
Όνομα χρήστη
Κωδικός πρόσβασης
UID
Πρωταρχικό GID
GECOS
Αφετηριακός Κατάλογος
Κέλυφος
Ασκήσεις Εξερεύνησης
-
Συγκρίνετε τα αποτελέσματα του
last
με ταw
καιwho
. Ποιες λεπτομέρειες λείπουν από καθεμία από τις εντολές σε σύγκριση μεταξύ τους; -
Δοκιμάστε να δώσετε τις εντολές
who
καιw -his
.-
Ποιες πληροφορίες έχουν αφαιρεθεί από την έξοδο της εντολής
w
με τις επιλογές “no header” (-h
) και “short” (-s
); -
Ποιες πληροφορίες έχουν προστεθεί στην έξοδο της εντολής
w
με την επιλογή “ip address” (-i
);
-
-
Ποιο αρχείο είναι το αρχείο που αποθηκεύει το μονής κατεύθυνσης hash του κωδικού πρόσβασης ενός λογαριασμού χρήστη;
-
Ποιο αρχείο περιέχει τη λίστα των ομάδων στις οποίες είναι μέλος ένας λογαριασμός χρήστη; Ποια λογική θα μπορούσε να χρησιμοποιηθεί για τη σύνταξη μιας λίστας ομάδων στις οποίες είναι μέλος ένας λογαριασμός χρήστη;
-
Ένα ή περισσότερα (1+) από τα ακόλουθα αρχεία δεν είναι αναγνώσιμα από τακτικούς, μη προνομιούχους χρήστες, από προεπιλογή. Ποια από όλα;
-
/etc/group
-
/etc/passwd
-
/etc/shadow
-
/etc/sudoers
-
-
Πώς θα αλλάζατε το shell σύνδεσης του τρέχοντος χρήστη στο Korn Shell (
/usr/bin/ksh
) σε μη διαδραστική λειτουργία; -
Γιατί ο αφετηριακός κατάλογος του χρήστη
root
δεν τοποθετείται στον κατάλογο/home
;
Σύνοψη
Σε αυτό το μάθημα ανακαλύψαμε τις βάσεις δεδομένων χρηστών και ομάδων στο Linux. Μάθαμε τις πιο σημαντικές ιδιότητες των χρηστών και των ομάδων, συμπεριλαμβανομένων των ονομάτων και των αριθμητικών τους αναγνωριστικών. Ερευνήσαμε επίσης πώς λειτουργεί το hashing του κωδικού πρόσβασης στο Linux και πώς οι χρήστες εκχωρούνται σε ομάδες.
Όλες αυτές οι πληροφορίες αποθηκεύονται στα ακόλουθα τέσσερα αρχεία, τα οποία παρέχουν τους πιο βασικούς, τοπικούς ελέγχους πρόσβασης ασφαλείας σε ένα σύστημα Linux:
/etc/passwd
-
Όλα τα χαρακτηριστικά POSIX του λογαριασμού του τοπικού χρήστη συστήματος, εκτός από το hash κωδικού πρόσβασης, αναγνώσιμα από όλους.
/etc/group
-
Όλα τα χαρακτηριστικά POSIX του λογαριασμού της τοπικής ομάδας συστήματος, αναγνώσιμα από όλους.
/etc/shadow
-
Όλοι τα hashes κωδικών πρόσβασης των τοπικών χρήστών συστήματος (και πληροφορίες λήξης), μη αναγνώσιμες από καμία (μόνο επιλεγμένα processes).
/etc/sudoers
-
Όλες οι πληροφορίες/παραχωρήσεις κλιμάκωσης των τοπικών προνομίων συστήματος από την εντολή `sudo.
Οι ακόλουθες εντολές συζητήθηκαν σε αυτό το μάθημα:
id
-
Παραθέστε τα πραγματικά (ή αποτελεσματικά) αναγνωριστικά χρηστών και ομάδων.
last
-
Παραθέστε τους χρήστες που συνδέθηκαν τελευταίοι.
who
-
Παραθέστε τους χρήστες που είναι συνδεδεμένοι αυτήν τη στιγμή.
w
-
Παρόμοια με το
who
αλλά με πρόσθετες πληροφορίες. su
-
Αλλαγή σε άλλο χρήστη με shell σύνδεσης ή εκτελέστε εντολές ως χρήστης, διαβιβάζοντας τον κωδικό πρόσβασης αυτού του χρήστη.
sudo
-
Αλλαγή Χρήστη (ή Υπερχρήστη) Εκτέλεσε, εάν έχει δικαίωμα, ο τρέχων χρήστης εισάγει τον δικό του κωδικό πρόσβασης (εάν απαιτείται) για να αυξήσει τα προνόμια.
chsh
-
Αλλάξτε το shell ενός χρήστη.
chfn
-
Αλλάξτε τα στοιχεία του χρήστη στο πεδίο GECOS.
Απαντήσεις στις Καθοδηγούμενες Ασκήσεις
-
Εξετάστε την ακόλουθη έξοδο της εντολής
id
:$ id emma uid=1000(emma) gid=1000(emma) groups=1000(emma),4(adm),5(tty),10(uucp),20(dialout),27(sudo),46(plugdev)
Σε ποια αρχεία είναι αποθηκευμένα τα ακόλουθα χαρακτηριστικά;
UID και GID
/etc/passwd
Ομάδες
/etc/group
-
Επιπλέον, σε ποιο αρχείο είναι αποθηκευμένος ο κωδικός πρόσβασης χρήστη;
Ο hashed κωδικός πρόσβασης χρήστη αποθηκεύεται στο
/etc/shadow
.
-
-
Ποιος από τους παρακάτω τύπους κρυπτογραφίας χρησιμοποιείται από προεπιλογή για την τοπική αποθήκευση κωδικών πρόσβασης σε ένα σύστημα Linux;
Από προεπιλογή, χρησιμοποιείται ένα μονής κατεύθυνσης hash για την αποθήκευση κωδικών πρόσβασης.
-
Εάν ένας λογαριασμός έχει αναγνωριστικό χρήστη (UID) που απαριθμείται κάτω από το 1000, τι τύπος λογαριασμού είναι αυτός;
Οι λογαριασμοί με UID μικρότερο από 1000 είναι γενικά λογαριασμοί συστήματος.
-
Πώς μπορείτε να λάβετε μια λίστα με τις ενεργές συνδέσεις στο σύστημά σας, καθώς και έναν αριθμό από αυτές;
Χρησιμοποιήστε την εντολή
w
. Εκτός από μια λίστα με όλες τις ενεργές συνδέσεις, θα εμφανίσει επίσης πληροφορίες όπως πόσοι χρήστες είναι συνδεδεμένοι, τον φόρτο του συστήματος και το χρόνο λειτουργίας. -
Χρησιμοποιώντας την εντολή
grep
, πήραμε το παρακάτω αποτέλεσμα με πληροφορίες για τoν χρήστηemma
.$ grep emma /etc/passwd emma:x:1000:1000:Emma Smith,42 Douglas St,555.555.5555,:/home/emma:/bin/ksh
Συμπληρώστε τα κενά του γραφήματος με τις κατάλληλες πληροφορίες χρησιμοποιώντας την έξοδο της προηγούμενης εντολής.
Όνομα χρήστη
emma
Κωδικός πρόσβασης
x
- πρέπει πάντα να είναιx
για μια έγκυρη, ενεργή σύνδεση χρήστηUID
1000
Πρωταρχικό GID
1000
GECOS
Emma Smith,42 Douglas St,555.555.5555
Αφετηριακός Κατάλογος
/home/emma
Κέλυφος
/bin/ksh
Απαντήσεις στις Ασκήσεις Εξερεύνησης
-
Συγκρίνετε τα αποτελέσματα του
last
με ταw
καιwho
. Ποιες λεπτομέρειες λείπουν από καθεμία από τις εντολές σε σύγκριση μεταξύ τους;Τα εργαλεία
w
καιwho
αναφέρουν μόνο τους τρέχοντες χρήστες που έχουν συνδεθεί στο σύστημα, ενώ τοlast
εμφανίζει επίσης χρήστες που έχουν αποσυνδεθεί. Η εντολήw
παραθέτει τη χρήση του συστήματος, ενώ η εντολήwho
όχι. -
Δοκιμάστε να δώσετε τις εντολές
who
καιw -his
.-
Ποιες πληροφορίες έχουν αφαιρεθεί από την έξοδο της εντολής
w
με τις επιλογές “no header” (-h
) και “short” (-s
);Η κεφαλίδα δεν εκτυπώνεται, κάτι που είναι χρήσιμο για ανάλυση, και ο χρόνος σύνδεσης και οι πληροφορίες επιλογής CPU δεν αναφέρονται, αντίστοιχα.
-
Ποιες πληροφορίες έχουν προστεθεί στην έξοδο της εντολής
w
με την επιλογή “ip address” (-i
);Αυτό εκτυπώνει τη διεύθυνση IP, αντί να επιχειρήσει επίλυση ονόματος DNS, εκτυπώνει το όνομα του host. Αυτή η επιλογή του
w
ταιριάζει καλύτερα με την προεπιλεγμένη έξοδο της εντολήςlast
.
-
-
Ποιο αρχείο είναι το αρχείο που αποθηκεύει το μονσήμαντο hash του κωδικού πρόσβασης ενός λογαριασμού χρήστη;
Το αρχείο
/etc/shadow
αποθηκεύει το μονής κατεύθυνσης hash του κωδικού πρόσβασης ενός λογαριασμού χρήστη, καθώς δεν είναι αναγνώσιμος από έναν κανονικό, μη προνομιούχο λογαριασμό χρήστη, σε αντίθεση με το αρχείο/etc/passwd
. -
Ποιο αρχείο περιέχει τη λίστα των ομάδων στις οποίες είναι μέλος ένας λογαριασμός χρήστη; Ποια λογική θα μπορούσε να χρησιμοποιηθεί για τη σύνταξη μιας λίστας ομάδων στις οποίες είναι μέλος ένας λογαριασμός χρήστη;
Το αρχείο
/etc/group
έχει μια λίστα ονομάτων χρήστη στο τελευταίο πεδίο, διαχωρισμένα με κόμμα, που ονομάζεται “members”, οποιασδήποτε γραμμής για μια ομάδα.Οποιαδήποτε γραμμή στο αρχείο
/etc/group
όπου ο χρήστης αναφέρεται στο τελικό πεδίο, “members”, θα σήμαινε ότι ο χρήστης είναι μέλος αυτής της ομάδας — με την προϋπόθεση ότι έχει μορφοποιηθεί σωστά (οριοθετημένο με κόμμα). Επιπλέον, η πρωταρχική ιδιότητα μέλους ομάδας του χρήστη στο αρχείο/etc/passwd
θα έχει επίσης μια αντίστοιχη καταχώρηση στο αρχείο/etc/group
τόσο για το όνομα της ομάδας όσο και για το GID. -
Ένα ή περισσότερα (1+) από τα ακόλουθα αρχεία δεν είναι αναγνώσιμα από τακτικούς, μη προνομιούχους χρήστες, από προεπιλογή. Ποια από όλα;
-
/etc/group
-
/etc/passwd
-
/etc/shadow
-
/etc/sudoers
Τα αρχεία
/etc/shadow
και/etc/sudoers
δεν είναι αναγνώσιμα από προεπιλογή, εκτός από επιλεγμένα services ή τον superuser. Αυτές οι απαντήσεις θα προσαρμοστούν, με βάση τα συστήματα και τα ονόματα χρήστη που χρησιμοποιούνται στο εργαστήριο.
-
-
Πώς θα αλλάζατε το shell σύνδεσης του τρέχοντος χρήστη στο Korn Shell (
/usr/bin/ksh
) σε μη διαδραστική λειτουργία;$ chsh -s /usr/bin/ksh
-
Γιατί ο αφετηριακός κατάλογος του χρήστη
root
δεν τοποθετείται στον κατάλογο/home
;Επειδή ο λογαριασμός
root
απαιτείται για την αντιμετώπιση προβλημάτων και τη διόρθωση σφαλμάτων, τα οποία μπορεί να περιλαμβάνουν ζητήματα συστήματος αρχείων που σχετίζονται με τον κατάλογο/home
. Σε τέτοιες περιπτώσεις, ο χρήστηςroot
θα πρέπει να είναι πλήρως λειτουργικός ακόμη και όταν το σύστημα αρχείων/home
δεν είναι ακόμη διαθέσιμο.