Πού και πώς αποθηκεύονται οι κωδικοί πρόσβασης στο Linux;

Where How Are Passwords Stored Linux



Το όνομα χρήστη με τον αντίστοιχο κωδικό πρόσβασης για έναν συγκεκριμένο λογαριασμό είναι η κύρια απαίτηση μέσω της οποίας ο χρήστης μπορεί να έχει πρόσβαση σε ένα σύστημα Linux. Ο κωδικός πρόσβασης όλων των λογαριασμών χρηστών αποθηκεύεται σε ένα αρχείο ή μια βάση δεδομένων, ώστε να μπορεί να επαληθευτεί ένας χρήστης κατά την προσπάθεια σύνδεσης στο σύστημα. Κάθε χρήστης δεν διαθέτει αρκετές δεξιότητες και τεχνογνωσία για να εντοπίσει αυτό το αρχείο στο σύστημά του. Ωστόσο, εάν έχετε πρόσβαση στη βάση δεδομένων ή σε ένα αρχείο που διατηρεί όλους τους κωδικούς πρόσβασης του χρήστη σύνδεσης, τότε μπορείτε εύκολα να αποκτήσετε πρόσβαση στο σύστημα Linux. Όταν ένας χρήστης εισάγει ένα όνομα χρήστη και έναν κωδικό πρόσβασης στο Linux για σύνδεση, ελέγχει τον κωδικό πρόσβασης που έχει εισαχθεί έναντι μιας καταχώρισης σε διάφορα αρχεία του καταλόγου ‘/etc’.

Τα αρχεία /etc /passwd διατηρούν όλες τις σημαντικές πληροφορίες που είναι απαραίτητες για τη σύνδεση χρήστη. Για να το εξηγήσουμε με πιο απλές λέξεις, το αρχείο /etc /passwd αποθηκεύει τα στοιχεία του λογαριασμού του χρήστη. Αυτό το αρχείο είναι ένα απλό αρχείο κειμένου που περιέχει μια πλήρη λίστα με όλους τους χρήστες στο σύστημά σας Linux. Έχει τις πληροφορίες σχετικά με το όνομα χρήστη, τον κωδικό πρόσβασης, το UID (αναγνωριστικό χρήστη), το GID (αναγνωριστικό ομάδας), το κέλυφος και τον αρχικό κατάλογο. Αυτό το αρχείο θα πρέπει να έχει δικαιώματα ανάγνωσης καθώς πολλά βοηθητικά προγράμματα γραμμής εντολών χρησιμοποιούνται για τη αντιστοίχιση των αναγνωριστικών χρήστη στο όνομα χρήστη. Ωστόσο, θα πρέπει να έχετε περιορισμένα δικαιώματα πρόσβασης εγγραφής μόνο για λογαριασμούς υπερχρήστη ή root χρηστών.







Αυτό το άρθρο θα δείξει πώς και πού μπορείτε να αποθηκεύσετε τους κωδικούς πρόσβασης των χρηστών του συστήματος στη διανομή Linux. Έχουμε εφαρμόσει όλες τις επιδείξεις στο σύστημα Ubuntu 20.04. Ωστόσο, μπορείτε να βρείτε /etc /passwd αρχείο σε οποιαδήποτε διανομή Linux.



Προαπαιτούμενα

Θα πρέπει να έχετε δικαιώματα root για την εκτέλεση διαχειριστικών εντολών.



Βασική κατανόηση σχετικά με το αρχείο /etc /passwd

Το αρχείο /etc /passwd περιέχει τις πληροφορίες σχετικά με τον λογαριασμό χρήστη του συστήματός σας. Όλα τα αποθηκευμένα πεδία διαχωρίζονται από το σημείο: άνω και κάτω τελεία:
Όταν εκτελέσετε την ακόλουθη εντολή, θα δείτε κάθε καταχώριση αρχείου του αρχείου /etc /passwd:





$Γάτα /και τα λοιπά/passwd

Η παραπάνω εντολή θα εμφανίσει όλους τους χρήστες του συστήματος Linux σας.
Ο ακόλουθος τύπος μορφής θα εμφανιστεί στην οθόνη του τερματικού σας:

Λεπτομέρειες σχετικά με τα πεδία /etc /passwd Μορφή
Από την παραπάνω εικόνα:

Όνομα χρήστη: Το πρώτο πεδίο αντιπροσωπεύει το όνομα του χρήστη. Το μήκος του πεδίου ονόματος χρήστη ορίζεται μεταξύ 1-32 χαρακτήρων. Αυτό χρησιμοποιείται όταν ένας χρήστης συνδέεται στο σύστημα. Στο παραπάνω παράδειγμα, το ‘khuzdar’ είναι το όνομα χρήστη.
Κωδικός πρόσβασης: Στο παραπάνω παράδειγμα, ο χαρακτήρας x δείχνει ότι ο κωδικός πρόσβασης αποθηκεύεται σε κρυπτογραφημένη μορφή στο αρχείο /etc /shadow.
Αναγνωριστικό χρήστη (UID): Το αναγνωριστικό χρήστη πρέπει να εκχωρείται ξεχωριστά σε κάθε χρήστη. Το μηδέν UID εκχωρείται στον χρήστη ρίζας και τα αναγνωριστικά χρήστη από 1-99 εκχωρούνται σε προκαθορισμένους ή τυπικούς λογαριασμούς. Τα περαιτέρω UIDs από 100-999 αντιστοιχίζονται σε λογαριασμούς ή ομάδες διαχειριστή συστήματος. Στο παραπάνω στιγμιότυπο οθόνης, το αναγνωριστικό χρήστη είναι 1001.
Αναγνωριστικό ομάδας (GID): Το επόμενο πεδίο αντιπροσωπεύει το αναγνωριστικό ομάδας. Το GID αποθηκεύεται στο αρχείο /etc /group. Με βάση το παραπάνω παράδειγμα, ο χρήστης ανήκει στο αναγνωριστικό ομάδας 1001.
Πληροφορίες σχετικά με το αναγνωριστικό χρήστη: Το παρακάτω πεδίο προορίζεται για σχόλια. Σε αυτό το πεδίο, μπορείτε να προσθέσετε ορισμένες πρόσθετες πληροφορίες σχετικά με τον καθορισμένο χρήστη, όπως το πλήρες όνομα του χρήστη, τον αριθμό τηλεφώνου κλπ. Ωστόσο, στο παραπάνω παράδειγμα, δεν παρέχεται αριθμός τηλεφώνου από τον χρήστη.
Αρχικός κατάλογος: Αυτό το πεδίο εμφανίζει τη θέση του αρχικού καταλόγου που έχει εκχωρηθεί στον τρέχοντα χρήστη. Εάν ο καθορισμένος κατάλογος δεν υπάρχει, τότε θα εμφανιστεί /. Η παραπάνω εικόνα δείχνει τη θέση του επισημασμένου χρήστη στον αρχικό κατάλογο, ο οποίος είναι home/kbuzdar.
Εντολή // κέλυφος: Η προεπιλεγμένη απόλυτη διαδρομή ενός κελύφους ή εντολής είναι /bin /bash. Αυτό είναι γνωστό ως κέλυφος. Για παράδειγμα, sysadmin χρησιμοποιώντας το κέλυφος nologin. Συμπεριφέρεται ως κέλυφος αντικατάστασης για τους λογαριασμούς χρηστών του συστήματος. Εάν το κέλυφος βρίσκεται στη διαδρομή προς /sbin /nologin και ο χρήστης θέλει να συνδεθεί απευθείας στο σύστημα Linux, το κέλυφος /sbin /nologin θα κλείσει ή θα απενεργοποιήσει τη σύνδεση.



Αναζήτηση χρήστη στο αρχείο /etc /passwd

Μπορείτε να αναζητήσετε έναν συγκεκριμένο χρήστη με το αρχείο /etc /passwd, χρησιμοποιώντας την εντολή grep. Για παράδειγμα, θέλουμε να αναζητήσουμε το όνομα χρήστη ‘kbuzdar’ από το αρχείο /etc /passwd, χρησιμοποιώντας την ακόλουθη σύνταξη, και στη συνέχεια μπορούμε εύκολα να αναζητήσουμε έναν καθορισμένο χρήστη, εξοικονομώντας χρόνο:

$λαβήόνομα χρήστη/και τα λοιπά/passwd

Η παραπάνω σύνταξη θα αλλάξει στο ακόλουθο σχήμα:

$λαβήτσιρίζων/και τα λοιπά/passwd


Ή

$λαβή -σε '^kbuzdar' /και τα λοιπά/passwd

Εμφάνιση δικαιωμάτων στο αρχείο /etc /passwd

Όπως αναφέραμε παραπάνω, όλοι οι άλλοι χρήστες, εκτός από το root, θα πρέπει να μπορούν να διαβάζουν την άδεια στο αρχείο /etc /passwd και ότι ο κάτοχος πρέπει να είναι υπερχρήστης ή root.
Πληκτρολογήστε τα παρακάτω για να ελέγξετε τα δικαιώματα ανάγνωσης στο αρχείο:

$ls -ο /και τα λοιπά/passwd

Το ακόλουθο δείγμα εξόδου θα εμφανιστεί στο τερματικό:

Ανάγνωση αρχείου /etc /passwd

Μπορείτε να διαβάσετε το αρχείο /etc /passwd στο σύστημά σας Linux χρησιμοποιώντας το ακόλουθο σενάριο bash ή να εκτελέσετε απευθείας ό, τι είναι γραμμένο παρακάτω, ενώ οι εντολές βρόχου στο τερματικό.
Δημιουργήστε ένα αρχείο κειμένου και επικολλήστε τον ακόλουθο κώδικα σε αυτό:

#!/bin/bash
# συνολικά επτά πεδία από /etc /passwd αποθηκευμένα ως $ f1, f2 ..., $ f7

ενώ IFS=:ανάγνωση -rf1 f2 f3 f4 f5 f6 f7
κάνω
πέταξε έξω 'Χρήστης$ f1χρήση$ f7shell και αποθηκεύει αρχεία σε$ f6Ευρετήριο.'
Έγινε < /και τα λοιπά/passwd

Χρησιμοποιώντας τον βρόχο while, θα διαβάσει και τα επτά πεδία και στη συνέχεια θα εμφανίσει επαναλαμβανόμενα το περιεχόμενο του αρχείου στο τερματικό.
Αποθηκεύστε το παραπάνω αρχείο με το όνομα ‘readfile.sh’.

Τώρα, εκτελέστε το παραπάνω αρχείο χρησιμοποιώντας την ακόλουθη εντολή:

$κτυπώ δυνατάreadfile.sh

Εξερευνήστε το αρχείο /etc /shadow

Το αρχείο /etc /shadow περιέχει όλους τους κρυπτογραφημένους κωδικούς πρόσβασής σας που είναι αποθηκευμένοι σε αυτό το αρχείο και είναι αναγνώσιμοι μόνο για χρήστες root.
Ας εκτελέσουμε την ακόλουθη εντολή για να εμφανιστεί το περιεχόμενο:

$sudo Γάτα /και τα λοιπά/σκιά

Μπορείτε να δείτε όλους τους κωδικούς πρόσβασης σε κρυπτογραφημένη μορφή:

συμπέρασμα

Είδαμε από το παραπάνω άρθρο, όλα τα στοιχεία του λογαριασμού του χρήστη και τους κωδικούς πρόσβασης που είναι αποθηκευμένοι στο αρχείο /etc /passwd στο σύστημα Linux. Μπορείτε να διαβάσετε αυτό το αρχείο, αλλά μόνο οι χρήστες root έχουν τα δικαιώματα εγγραφής. Επιπλέον, έχουμε επίσης δει όλους τους κρυπτογραφημένους κωδικούς πρόσβασης αποθηκευμένους στο αρχείο /etc /shadow. Μπορείτε επίσης να εξερευνήσετε το αρχείο /etc /group για να λάβετε λεπτομέρειες σχετικά με την ομάδα χρηστών.