5.2 Μάθημα 1
Πιστοποιητικό: |
Linux Essentials |
---|---|
Έκδοση: |
1.6 |
Θέμα: |
5 Ασφάλεια και Δικαιώματα Αρχείων |
Σκοπός: |
5.2 Δημιουργία Χρηστών και Ομάδων |
Μάθημα: |
1 απο 1 |
Εισαγωγή
Η διαχείριση χρηστών και ομάδων σε ένα μηχάνημα Linux είναι μια από τις βασικές πτυχές της διαχείρισης του συστήματος. Στην πραγματικότητα, το Linux είναι ένα λειτουργικό σύστημα πολλών χρηστών στο οποίο πολλοί χρήστες μπορούν να χρησιμοποιούν το ίδιο μηχάνημα ταυτόχρονα.
Οι πληροφορίες σχετικά με τους χρήστες και τις ομάδες αποθηκεύονται σε τέσσερα αρχεία στο δέντρο καταλόγου /etc/
:
/etc/passwd
-
ένα αρχείο επτά πεδίων οριοθετημένων με άνω και κάτω τελεία που περιέχει βασικές πληροφορίες για χρήστες
/etc/group
-
ένα αρχείο τεσσάρων πεδίων οριοθετημένων με άνω και κάτω τελεία που περιέχει βασικές πληροφορίες για ομάδες
/etc/shadow
-
ένα αρχείο εννέα πεδίων οριοθετημένων με άνω και κάτω τελεία που περιέχει κρυπτογραφημένους κωδικούς πρόσβασης χρηστών
/etc/gshadow
-
ένα αρχείο τεσσάρων πεδίων οριοθετημένων με άνω και κάτω τελεία που περιέχει κρυπτογραφημένους κωδικούς πρόσβασης ομάδων
Όλα αυτά τα αρχεία ενημερώνονται από μια σειρά εργαλείων της γραμμής εντολών για διαχείριση χρηστών και ομάδων, τα οποία θα συζητήσουμε αργότερα σε αυτό το μάθημα. Μπορούν επίσης να διαχειρίζονται από γραφικές εφαρμογές, συγκεκριμένες για κάθε διανομή Linux, οι οποίες παρέχουν απλούστερες και πιο άμεσες διεπαφές διαχείρισης.
Warning
|
Παρόλο που τα αρχεία είναι απλό κείμενο, μην τα επεξεργαστείτε απευθείας. Χρησιμοποιείτε πάντα τα εργαλεία που παρέχονται με τη διανομή σας για αυτόν τον σκοπό. |
Το Αρχείο /etc/passwd
Το /etc/passwd
είναι ένα αναγνώσιμο από τον κόσμο αρχείο που περιέχει μια λίστα χρηστών, με τον καθένα σε ξεχωριστή γραμμή:
frank:x:1001:1001::/home/frank:/bin/bash
Κάθε γραμμή αποτελείται από επτά πεδία οριοθετημένα με άνω και κάτω τελεία:
- Όνομα χρήστη
-
Το όνομα που χρησιμοποιείται όταν ο χρήστης συνδέεται στο σύστημα.
- Κωδικός πρόσβασης
-
Ο κρυπτογραφημένος κωδικός πρόσβασης (ή ένα
x
εάν χρησιμοποιούνται shadow κωδικοί πρόσβασης). - Αναγνωριστικό χρήστη (UID)
-
Ο αριθμός αναγνωριστικού χρήστη που του έχει εκχωρηθεί στο σύστημα.
- Αναγνωριστικό ομάδας (GID)
-
Ο πρωταρχικός αριθμός ομάδας του χρήστη στο σύστημα.
- GECOS
-
Ένα προαιρετικό πεδίο σχολίων, το οποίο χρησιμοποιείται για την προσθήκη επιπλέον πληροφοριών σχετικά με τον χρήστη (όπως το πλήρες όνομα). Το πεδίο μπορεί να περιέχει πολλές καταχωρήσεις διαχωρισμένες με κόμματα.
- Κατάλογος αφετηρίας
-
Το απόλυτο path του αφετηριακού καταλόγου του χρήστη.
- Κέλυφος
-
Το απόλυτο path του προγράμματος που εκκινείται αυτόματα όταν ο χρήστης συνδέεται στο σύστημα (συνήθως ένα διαδραστικό shell όπως το
bin/bash
).
Το Αρχείο /etc/group
Το /etc/group
είναι ένα αναγνώσιμο από τον κόσμο αρχείο που περιέχει μια λίστα ομάδων, η καθεμία σε ξεχωριστή γραμμή:
developer:x:1002:
Κάθε γραμμή αποτελείται από τέσσερα πεδία οριοθετημένα με άνω και κάτω τελεία:
- Όνομα ομάδας
-
Το όνομα της ομάδας.
- Κωδικός πρόσβασης ομάδας
-
Ο κρυπτογραφημένος κωδικός πρόσβασης της ομάδας (ή ένα
x
εάν χρησιμοποιούνται shadow κωδικοί πρόσβασης). - Αναγνωριστικό ομάδας (GID)
-
Ο αριθμός αναγνωριστικού ομάδας που της έχει εκχωρηθεί στο σύστημα.
- Λίστα μελών
-
Μια λίστα των χρηστών που ανήκουν στην ομάδα, οριοθετημένη με κόμματα , εκτός από αυτούς για τους οποίους αυτή είναι η πρωταρχική ομάδα.
Το Αρχείο /etc/shadow
Το /etc/shadow
είναι ένα αρχείο αναγνώσιμο μόνο από τον root χρήστη και χρήστες με δικαιώματα root και περιέχει τους κρυπτογραφημένους κωδικούς πρόσβασης των χρηστών, τον καθένα σε ξεχωριστή γραμμή:
frank:$6$i9gjM4Md4MuelZCd$7jJa8Cd2bbADFH4dwtfvTvJLOYCCCBf/.jYbK1IMYx7Wh4fErXcc2xQVU2N1gb97yIYaiqH.jjJammzof2Jfr/:18029:0:99999:7:::
Κάθε γραμμή αποτελείται από εννέα πεδία οριοθετημένα με άνω και κάτω τελεία:
- Όνομα χρήστη
-
Το όνομα που χρησιμοποιείται όταν ο χρήστης συνδέεται στο σύστημα.
- Κρυπτογραφημένος κωδικός πρόσβασης
-
Ο κρυπτογραφημένος κωδικός πρόσβασης του χρήστη (εάν η τιμή είναι
!
, ο λογαριασμός είναι κλειδωμένος). - Ημερομηνία της τελευταίας αλλαγής κωδικού πρόσβασης
-
Η ημερομηνία της τελευταίας αλλαγής κωδικού πρόσβασης, ως ο αριθμός των ημερών απο την 01/01/1970. Η τιμή
0
σημαίνει ότι ο χρήστης πρέπει να αλλάξει τον κωδικό πρόσβασης κατά την επόμενη πρόσβασή του στο σύστημα. - Ελάχιστη ηλικία κωδικού πρόσβασης
-
Ο ελάχιστος αριθμός ημερών, μετά την αλλαγή κωδικού πρόσβασης, οι οποίες πρέπει να περάσουν για να επιτραπεί στον χρήστη να αλλάξει ξανά τον κωδικό πρόσβασης.
- Μέγιστη ηλικία κωδικού πρόσβασης
-
Ο μέγιστος αριθμός ημερών που πρέπει να περάσουν πρίν απαιτηθεί αλλαγή κωδικού πρόσβασης.
- Προειδοποιητική περίοδος κωδικού πρόσβασης
-
Ο αριθμός των ημερών, πριν από τη λήξη του κωδικού πρόσβασης, κατά τις οποίες ο χρήστης προειδοποιείται ότι ο κωδικός πρέπει να αλλάξει.
- Ανενεργή περίοδος κωδικού πρόσβασης
-
Ο αριθμός των ημερών μετά τη λήξη ενός κωδικού πρόσβασης κατά τις οποίες ο χρήστης πρέπει να ενημερώσει τον κωδικό πρόσβασης. Μετά από αυτό το διάστημα, εάν ο χρήστης δεν αλλάξει τον κωδικό πρόσβασης, ο λογαριασμός θα απενεργοποιηθεί.
- Ημερομηνία λήξης λογαριασμού
-
Η ημερομηνία, ως αριθμός ημερών από την 01/01/1970, κατά τις οποίες ο λογαριασμός χρήστη θα απενεργοποιηθεί. Ένα κενό πεδίο σημαίνει ότι ο λογαριασμός χρήστη δεν θα λήξει ποτέ.
- Ένα εφεδρικό πεδίο
-
Ένα πεδίο που κρατείται για μελλοντική χρήση.
Το Αρχείο /etc/gshadow
Το /etc/gshadow
είναι ένα αρχείο αναγνώσιμο μόνο από τον root χρήστη και χρήστες με δικαιώματα root και περιέχει τους κρυπτογραφημένους κωδικούς πρόσβασης των ομάδων, τον καθένα σε ξεχωριστή γραμμή:
developer:$6$7QUIhUX1WdO6$H7kOYgsboLkDseFHpk04lwAtweSUQHipoxIgo83QNDxYtYwgmZTCU0qSCuCkErmyR263rvHiLctZVDR7Ya9Ai1::
Κάθε γραμμή αποτελείται από τέσσερα πεδία οριοθετημένα με άνω και κάτω τελεία:
- Όνομα ομάδας
-
Το όνομα της ομάδας.
- Κρυπτογραφημένος κωδικός πρόσβασης
-
Ο κρυπτογραφημένος κωδικός πρόσβασης για την ομάδα (χρησιμοποιείται όταν ένας χρήστης, ο οποίος δεν είναι μέλος της ομάδας, θέλει να συμμετάσχει στην ομάδα χρησιμοποιώντας την εντολή
newgrp
— εάν ο κωδικός πρόσβασης ξεκινά με!
, κανείς δεν επιτρέπεται να έχει πρόσβαση στην ομάδα με την χρήση της εντολήςnewgrp
). - Διαχειριστές ομάδας
-
Μια λίστα των διαχειριστών της ομάδας, οριοθετημένη με κόμματα (μπορούν να αλλάξουν τον κωδικό πρόσβασης της ομάδας και μπορούν να προσθέσουν ή να αφαιρέσουν μέλη της ομάδας με την εντολή
gpasswd
). - Μέλη ομάδας
-
Μια λίστα των μελών της ομάδας οριοθετημένη με κόμματα.
Τώρα που είδαμε πού αποθηκεύονται οι πληροφορίες χρηστών και ομάδων, ας μιλήσουμε για τα πιο σημαντικά εργαλεία της γραμμής εντολών για την ενημέρωση αυτών των αρχείων.
Προσθήκη και Διαγραφή Λογαριασμών Χρηστών
Στο Linux, προσθέτετε έναν νέο λογαριασμό χρήστη με την εντολή useradd
και διαγράφετε έναν λογαριασμό χρήστη με την εντολή userdel
.
Εάν θέλετε να δημιουργήσετε έναν νέο λογαριασμό χρήστη με το όνομα frank
με την προεπιλεγμένη ρύθμιση, μπορείτε να εκτελέσετε τα εξής:
# useradd frank
Μετά τη δημιουργία του νέου χρήστη, μπορείτε να ορίσετε έναν κωδικό πρόσβασης χρησιμοποιώντας το passwd
:
# passwd frank Changing password for user frank. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
Και οι δύο αυτές εντολές απαιτούν εξουσιοδότηση root χρήστη. Όταν εκτελείτε την εντολή useradd
, οι πληροφορίες χρήστη και ομάδας που είναι αποθηκευμένες στις βάσεις δεδομένων κωδικών πρόσβασης και ομάδας ενημερώνονται για τον νέο λογαριασμό χρήστη και, εάν ορίζεται, δημιουργείται ο αφετηριακός κατάλογος του νέου χρήστη καθώς και μια ομάδα με το ίδιο όνομα με τον λογαριασμό χρήστη.
Tip
|
Να θυμάστε ότι μπορείτε πάντα να χρησιμοποιήσετε το βοηθητικό πρόγραμμα
ή
για να δείτε βασικές πληροφορίες σχετικά με τον πρόσφατα δημιουργημένο λογαριασμό |
Οι πιο σημαντικές επιλογές της εντολής useradd
είναι:
-c
-
Δημιουργήστε έναν νέο λογαριασμό χρήστη με ειδικά προσαρμοσμένα σχόλια (για παράδειγμα πλήρες όνομα).
-d
-
Δημιουργήστε έναν νέο λογαριασμό χρήστη με έναν ειδικά προσαρμοσμένο αφετηριακό κατάλογο.
-e
-
Δημιουργήστε έναν νέο λογαριασμό χρήστη ορίζοντας μια συγκεκριμένη ημερομηνία κατά την οποία θα απενεργοποιηθεί.
-f
-
Δημιουργήστε έναν νέο λογαριασμό χρήστη ορίζοντας τον αριθμό των ημερών μετά τη λήξη του κωδικού πρόσβασης κατά τις οποίες ο χρήστης θα πρέπει να ενημερώσει τον κωδικό πρόσβασης.
-g
-
Δημιουργήστε έναν νέο λογαριασμό χρήστη με συγκεκριμένο GID
-G
-
Δημιουργήστε έναν νέο λογαριασμό χρήστη προσθέτοντάς τον σε πολλές δευτερεύουσες ομάδες.
-m
-
Δημιουργήστε έναν νέο λογαριασμό χρήστη μαζί με τον αφετηριακό του κατάλογο.
-M
-
Δημιουργήστε έναν νέο λογαριασμό χρήστη χωρίς τον αφετηριακό του κατάλογο.
-s
-
Δημιουργήστε έναν νέο λογαριασμό χρήστη με συγκεκριμένο shell σύνδεσης.
-u
-
Δημιουργήστε έναν νέο λογαριασμό χρήστη με συγκεκριμένο UID.
Μόλις δημιουργηθεί ο νέος λογαριασμός χρήστη, μπορείτε να χρησιμοποιήσετε τις εντολές id
και groups
για να μάθετε το UID, το GID και τις ομάδες στις οποίες ανήκει.
# id frank uid=1000(frank) gid=1000(frank) groups=1000(frank) # groups frank frank : frank
Tip
|
Θυμηθείτε να ελέγξετε και τελικά να επεξεργαστείτε το αρχείο |
Εάν θέλετε να διαγράψετε έναν λογαριασμό χρήστη, μπορείτε να χρησιμοποιήσετε την εντολή userdel
. Συγκεκριμένα, αυτή η εντολή ενημερώνει τις πληροφορίες που είναι αποθηκευμένες στις βάσεις δεδομένων του λογαριασμού, διαγράφοντας όλες τις καταχωρήσεις που αναφέρονται στον συγκεκριμένο χρήστη. Η επιλογή -r
καταργεί επίσης τον αφετηριακό κατάλογο του χρήστη και όλα τα περιεχόμενά του, μαζί με την ουρά αλληλογραφίας του χρήστη. Άλλα αρχεία, που βρίσκονται αλλού, πρέπει να αναζητηθούν και να διαγραφούν χειροκίνητα.
# userdel -r frank
Όπως και πριν, χρειάζεστε εξουσιοδότηση root χρήστη για να διαγράψετε λογαριασμούς χρηστών.
Ο Κατάλογος Σκελετός
Όταν προσθέτετε έναν νέο λογαριασμό χρήστη, ακόμη και δημιουργώντας τον αφετηριακό του κατάλογο, ο νέος αυτός κατάλογος αφετηρίας συμπληρώνεται με αρχεία και φακέλους που αντιγράφονται από τον κατάλογο σκελετό [skeleton] (από προεπιλογή /etc/skel
). Η ιδέα πίσω από αυτό είναι απλή: ένας διαχειριστής συστήματος θέλει να προσθέσει νέους χρήστες που έχουν τα ίδια αρχεία και καταλόγους στον κατάλογο αφετηρίας τους. Επομένως, εάν θέλετε να προσαρμόσετε τα αρχεία και τους φακέλους που δημιουργούνται αυτόματα στον αφετηριακό κατάλογο των νέων λογαριασμών χρηστών, πρέπει να προσθέσετε αυτά τα νέα αρχεία και φακέλους στον κατάλογο σκελετό.
Tip
|
Σημειώστε ότι τα αρχεία που βρίσκονται συνήθως στον κατάλογο σκελετό είναι κρυφά αρχεία. Επομένως, εάν θέλετε να παραθέσετε όλα τα αρχεία και τους φακέλους στον κατάλογο σκελετό, τα οποία θα αντιγραφούν στον κατάλογο αφετηρίας των νέων χρηστών, πρέπει να χρησιμοποιήσετε την εντολή |
Προσθήκη και Διαγραφή Ομάδων
Όσον αφορά τη διαχείριση ομάδων, μπορείτε να προσθέσετε ή να διαγράψετε ομάδες χρησιμοποιώντας τις εντολές groupadd
και groupdel
.
Εάν θέλετε να δημιουργήσετε μια νέα ομάδα με το όνομα developer
, μπορείτε να εκτελέσετε την ακόλουθη εντολή ως ο root χρήστης:
# groupadd -g 1090 developer
Η επιλογή -g
αυτής της εντολής δημιουργεί μια ομάδα με ένα συγκεκριμένο GID.
Εάν θέλετε να διαγράψετε την ομάδα developer
, μπορείτε να εκτελέσετε το εξής:
# groupdel developer
Warning
|
Να θυμάστε ότι όταν προσθέτετε έναν νέο λογαριασμό χρήστη, η πρωταρχική ομάδα και οι δευτερεύουσες ομάδες στις οποίες ανήκει πρέπει να υπάρχουν πριν εκκινήσετε την εντολή |
Η Εντολή passwd
Αυτή η εντολή χρησιμοποιείται κυρίως για την αλλαγή του κωδικού πρόσβασης ενός χρήστη. Οποιοσδήποτε χρήστης μπορεί να αλλάξει τον κωδικό πρόσβασής του, αλλά μόνο ο χρήστης root μπορεί να αλλάξει τον κωδικό πρόσβασης οποιουδήποτε χρήστη.
Ανάλογα με την επιλογή passwd
που θα χρησιμοποιηθεί, μπορείτε να ελέγξετε συγκεκριμένες πτυχές της ωρίμανσης του κωδικού πρόσβασης:
-d
-
Διαγράψτε τον κωδικό πρόσβασης ενός λογαριασμού χρήστη (καθορίζοντας έτσι έναν κενό κωδικό πρόσβασης, καθιστώντας τον λογαριασμό χωρίς κωδικό πρόσβασης).
-e
-
Αναγκάστε τον λογαριασμό χρήστη να αλλάξει τον κωδικό πρόσβασης.
-l
-
Κλειδώστε τον λογαριασμό χρήστη (ο κρυπτογραφημένος κωδικός πρόσβασης θα έχει ως πρόθεμα ένα θαυμαστικό).
-u
-
Ξεκλειδώστε τον λογαριασμό χρήστη (αφαιρεί το θαυμαστικό).
-S
-
Εξάγεται πληροφορίες σχετικά με την κατάσταση του κωδικού πρόσβασης για έναν συγκεκριμένο λογαριασμό.
Αυτές οι επιλογές είναι διαθέσιμες μόνο για τον root χρήστη. Για να δείτε την πλήρη λίστα επιλογών, ανατρέξτε στις σελίδες man.
Καθοδηγούμενες Ασκήσεις
-
Για καθεμία από τις ακόλουθες καταχωρήσεις, υποδείξτε το αρχείο στο οποίο αναφέρεται:
-
developer:x:1010:frank,grace,dave
-
root:x:0:0:root:/root:/bin/bash
-
henry:$1$.AbCdEfGh123456789A1b2C3d4.:18015:20:90:5:30::
-
henry:x:1000:1000:User Henry:/home/henry:/bin/bash
-
staff:!:dave:carol,emma
-
-
Παρατηρήστε την ακόλουθη έξοδο για να απαντήσετε στις επόμενες επτά ερωτήσεις:
# cat /etc/passwd | tail -3 dave:x:1050:1050:User Dave:/home/dave:/bin/bash carol:x:1051:1015:User Carol:/home/carol:/bin/sh henry:x:1052:1005:User Henry:/home/henry:/bin/tcsh # cat /etc/group | tail -3 web_admin:x:1005:frank,emma web_developer:x:1010:grace,kevin,christian dave:x:1050: # cat /etc/shadow | tail -3 dave:$6$AbCdEfGh123456789A1b2C3D4e5F6G7h8i9:0:20:90:7:30:: carol:$6$q1w2e3r4t5y6u7i8AbcDeFgHiLmNoPqRsTu:18015:0:60:7::: henry:!$6$123456789aBcDeFgHa1B2c3d4E5f6g7H8I9:18015:0:20:5::: # cat /etc/gshadow | tail -3 web_admin:!:frank:frank,emma web_developer:!:kevin:grace,kevin,christian dave:!::
-
Ποιό είναι το αναγνωριστικό χρήστη (UID) και το αναγνωριστικό ομάδας (GID) του χρήστη
carol
; -
Τι shell έχει οριστεί για τους
dave
καιhenry
; -
Ποιό είναι το όνομα της πρωταρχικής ομάδας του
henry
; -
Ποια είναι τα μέλη της ομάδας
web_developer
; Ποιοι από αυτούς είναι διαχειριστές ομάδων; -
Ποιος χρήστης δεν μπορεί να συνδεθεί στο σύστημα;
-
Ποιος χρήστης πρέπει να αλλάξει τον κωδικό πρόσβασης την επόμενη φορά που θα συνδεθεί στο σύστημα;
-
Πόσες ημέρες πρέπει να περάσουν πρίν απαιτηθεί αλλαγή κωδικού πρόσβασης για την
carol
;
-
Ασκήσεις Εξερεύνησης
-
Ως ο root χρήστης, εκτελέστε την εντολή
useradd -m dave
για να προσθέσετε έναν νέο λογαριασμό χρήστη. Τι λειτουργίες εκτελεί αυτή η εντολή; Υποθέστε ότι ταCREATE_HOME
καιUSERGROUPS_ENAB
στο/etc/login.defs
έχουν οριστεί σεyes
. -
Τώρα που δημιουργήσατε τον λογαριασμό
dave
, μπορεί αυτός ο χρήστης να συνδεθεί στο σύστημα; -
Προσδιορίστε το αναγνωριστικό χρήστη (UID) και το αναγνωριστικό ομάδας (GID) του
dave
και όλα τα μέλη της ομάδαςdave
. -
Δημιουργήστε τις ομάδες
sys_admin
,web_admin
καιdb_admin
και προσδιορίστε τα αναγνωριστικά των ομάδων τους (GID). -
Προσθέστε έναν νέο λογαριασμό χρήστη με το όνομα
carol
με UID 1035 και ορίστε τοsys_admin
ως την πρωταρχική ομάδα και ταweb_admin
καιdb_admin
ως δευτερεύουσες ομάδες. -
Διαγράψτε τους λογαριασμούς
dave
καιcarol
και τις ομάδεςsys_admin
,web_admin
καιdb_admin
που έχετε δημιουργήσει προηγουμένως. -
Εκτελέστε την εντολή
ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow
και περιγράψτε την έξοδο που σας δίνει όσον αφορά τα δικαιώματα αρχείων. Ποια από αυτά τα τέσσερα αρχεία είναι shadow για λόγους ασφαλείας; Ας υποθέσουμε ότι το σύστημά σας χρησιμοποιεί shadow κωδικούς πρόσβασης. -
Εκτελέστε την εντολή
ls -l /usr/bin/passwd
. Ποιο ειδικό bit έχει οριστεί και ποια είναι η σημασία του;
Σύνοψη
Σε αυτό το μάθημα μάθατε:
-
Τις θεμελιώδεις αρχές της διαχείρισης χρηστών και ομάδων στο Linux
-
Την διαχείριση πληροφοριών χρηστών και ομάδων που είναι αποθηκευμένες σε βάσεις δεδομένων κωδικών πρόσβασης και ομάδων
-
Συντήρηση του κατάλογου σκελετού
-
Προσθήκη και αφαίρεση λογαριασμών χρηστών
-
Προσθήκη και αφαίρεση λογαριασμών ομάδων
-
Αλλαγή του κωδικού πρόσβασης των λογαριασμών χρηστών
Οι ακόλουθες εντολές συζητήθηκαν σε αυτό το μάθημα:
useradd
-
Δημιουργήστε έναν νέο λογαριασμό χρήστη.
groupadd
-
Δημιουργήστε έναν νέο λογαριασμό ομάδας.
userdel
-
Διαγραφή ενός λογαριασμού χρήστη.
groupdel
-
Διαγραφή ενός λογαριασμού ομάδας.
passwd
-
Αλλάξτε τον κωδικό πρόσβασης των λογαριασμών χρηστών και ελέγξτε όλες τις πτυχές της ωρίμανσης ενός κωδικού πρόσβασης.
Απαντήσεις στις Καθοδηγούμενες Ασκήσεις
-
Για καθεμία από τις ακόλουθες καταχωρήσεις, υποδείξτε το αρχείο στο οποίο αναφέρεται:
-
developer:x:1010:frank,grace,dave
/etc/group
-
root:x:0:0:root:/root:/bin/bash
/etc/passwd
-
henry:$1$.AbCdEfGh123456789A1b2C3d4.:18015:20:90:5:30::
/etc/shadow
-
henry:x:1000:1000:User Henry:/home/henry:/bin/bash
/etc/passwd
-
staff:!:dave:carol,emma
/etc/gshadow
-
-
Παρατηρήστε την ακόλουθη έξοδο για να απαντήσετε στις επόμενες επτά ερωτήσεις:
# cat /etc/passwd | tail -3 dave:x:1050:1050:User Dave:/home/dave:/bin/bash carol:x:1051:1015:User Carol:/home/carol:/bin/sh henry:x:1052:1005:User Henry:/home/henry:/bin/tcsh # cat /etc/group | tail -3 web_admin:x:1005:frank,emma web_developer:x:1010:grace,kevin,christian dave:x:1050: # cat /etc/shadow | tail -3 dave:$6$AbCdEfGh123456789A1b2C3D4e5F6G7h8i9:0:20:90:7:30:: carol:$6$q1w2e3r4t5y6u7i8AbcDeFgHiLmNoPqRsTu:18015:0:60:7::: henry:!$6$123456789aBcDeFgHa1B2c3d4E5f6g7H8I9:18015:0:20:5::: # cat /etc/gshadow | tail -3 web_admin:!:frank:frank,emma web_developer:!:kevin:grace,kevin,christian dave:!::
-
Ποιό είναι το αναγνωριστικό χρήστη (UID) και το αναγνωριστικό ομάδας (GID) του χρήστη
carol
;Το UID είναι 1051 και το GID είναι 1015 (το τρίτο και το τέταρτο πεδίο στο
/etc/passwd
). -
Τι shell έχει οριστεί για τους
dave
καιhenry
;Ο
dave
χρησιμοποιεί /bin/bash και οhenry
χρησιμοποιεί το /bin/tcsh (το έβδομο πεδίο στο/etc/passwd
). -
Ποιό είναι το όνομα της πρωταρχικής ομάδας του
henry
;Το όνομα της ομάδας είναι
web_admin
(το πρώτο πεδίο στο/etc/group
). -
Ποια είναι τα μέλη της ομάδας
web_developer
; Ποιοι από αυτούς είναι διαχειριστές ομάδων;Τα μέλη είναι
grace
,kevin
καιchristian
(το τέταρτο πεδίο στο/etc/group
), αλλά μόνο οkevin
είναι ο διαχειριστής της ομάδας (το τρίτο πεδίο στο/etc/gshadow
) . -
Ποιος χρήστης δεν μπορεί να συνδεθεί στο σύστημα;
Ο λογαριασμός χρήστη
henry
είναι κλειδωμένος (έχει ένα θαυμαστικό μπροστά από το hash του κωδικού πρόσβασης στο/etc/shadow
). -
Ποιος χρήστης πρέπει να αλλάξει τον κωδικό πρόσβασης την επόμενη φορά που θα συνδεθεί στο σύστημα;
Εάν το τρίτο πεδίο (Ημερομηνία της Τελευταίας Αλλαγής Κωδικού Πρόσβασης) στο
/etc/shadow
είναι 0, ο χρήστης θα πρέπει να αλλάξει τον κωδικό πρόσβασής του την επόμενη φορά που θα συνδεθεί στο σύστημα. Επομένως, οdave
πρέπει να αλλάξει τον κωδικό πρόσβασής του. -
Πόσες ημέρες πρέπει να περάσουν πρίν απαιτηθεί αλλαγή κωδικού πρόσβασης για την
carol
;60 ημέρες (το πέμπτο πεδίο στο
/etc/shadow
).
-
Απαντήσεις στις Ασκήσεις Εξερεύνησης
-
Ως ο root χρήστης, εκτελέστε την εντολή
useradd -m dave
για να προσθέσετε έναν νέο λογαριασμό χρήστη. Τι λειτουργίες εκτελεί αυτή η εντολή; Υποθέστε ότι ταCREATE_HOME
καιUSERGROUPS_ENAB
στο/etc/login.defs
έχουν οριστεί σεyes
.Η εντολή προσθέτει έναν νέο χρήστη, με το όνομα
dave
, στη λίστα των χρηστών του συστήματος. Ο αφετηριακός κατάλογος τουdave
δημιουργείται (από προεπιλογή/home/dave
) και τα αρχεία και οι κατάλογοι που περιέχονται στον κατάλογο σκελετό αντιγράφονται στον αφετηριακό κατάλογο. Τέλος, δημιουργείται νέα ομάδα με το ίδιο όνομα με τον λογαριασμό χρήστη. -
Τώρα που δημιουργήσατε τον λογαριασμό
dave
, μπορεί αυτός ο χρήστης να συνδεθεί στο σύστημα;Όχι, επειδή ο λογαριασμός
dave
είναι κλειδωμένος (δείτε το θαυμαστικό στο/etc/shadow
).# cat /etc/shadow | grep dave dave:!:18015:0:99999:7:::
Εάν ορίσετε έναν κωδικό πρόσβασης για τον
dave
, ο λογαριασμός θα ξεκλειδωθεί. Μπορείτε να το κάνετε αυτό χρησιμοποιώντας την εντολήpasswd
.# passwd dave Changing password for user dave. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
-
Προσδιορίστε το αναγνωριστικό χρήστη (UID) και το αναγνωριστικό ομάδας (GID) του
dave
και όλα τα μέλη της ομάδαςdave
.# cat /etc/passwd | grep dave dave:x:1015:1019::/home/dave:/bin/sh # cat /etc/group | grep 1019 dave:x:1019:
Το UID και το GID του
dave
είναι 1015 και 1019 αντίστοιχα (το τρίτο και το τέταρτο πεδίο στο/etc/passwd
) και η ομάδαdave
δεν έχει μέλη (το τέταρτο πεδίο στο/etc/group
είναι κενό) . -
Δημιουργήστε τις ομάδες
sys_admin
,web_admin
καιdb_admin
και προσδιορίστε τα αναγνωριστικά των ομάδων τους (GID).# groupadd sys_admin # groupadd web_admin # groupadd db_admin # cat /etc/group | grep admin sys_admin:x:1020: web_admin:x:1021: db_admin:x:1022:
Τα GID για τις ομάδες
sys_admin
,web_admin
καιdb_admin
είναι 1020, 1021 και 1022 αντίστοιχα. -
Προσθέστε έναν νέο λογαριασμό χρήστη με το όνομα
carol
με UID 1035 και ορίστε τοsys_admin
ως την πρωταρχική ομάδα και ταweb_admin
καιdb_admin
ως δευτερεύουσες ομάδες.# useradd -u 1035 -g 1020 -G web_admin,db_admin carol # id carol uid=1035(carol) gid=1020(sys_admin) groups=1020(sys_admin),1021(web_admin),1022(db_admin)
-
Διαγράψτε τους λογαριασμούς
dave
καιcarol
και τις ομάδεςsys_admin
,web_admin
καιdb_admin
που έχετε δημιουργήσει προηγουμένως.# userdel -r dave # userdel -r carol # groupdel sys_admin # groupdel web_admin # groupdel db_admin
-
Εκτελέστε την εντολή
ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow
και περιγράψτε την έξοδο που σας δίνει όσον αφορά τα δικαιώματα αρχείων. Ποια από αυτά τα τέσσερα αρχεία είναι shadow για λόγους ασφαλείας; Ας υποθέσουμε ότι το σύστημά σας χρησιμοποιεί shadow κωδικούς πρόσβασης.# ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow -rw-r--r-- 1 root root 853 mag 1 08:00 /etc/group -rw-r----- 1 root shadow 1203 mag 1 08:00 /etc/gshadow -rw-r--r-- 1 root root 1354 mag 1 08:00 /etc/passwd -rw-r----- 1 root shadow 1563 mag 1 08:00 /etc/shadow
Τα αρχεία
/etc/passwd
και/etc/group
είναι αναγνώσιμα απο όλους και είναι shadow για λόγους ασφαλείας. Όταν χρησιμοποιούνται shadow κωδικοί πρόσβασης, μπορείτε να δείτε έναx
στο δεύτερο πεδίο αυτών των αρχείων, επειδή οι κρυπτογραφημένοι κωδικοί πρόσβασης για χρήστες και ομάδες αποθηκεύονται στα/etc/shadow
και/etc/gshadow
, τα οποία είναι αναγνώσιμα μόνο από τον root χρήστη και, σε ορισμένα συστήματα, επίσης από μέλη που ανήκουν στην ομάδαshadow
. -
Εκτελέστε την εντολή
ls -l /usr/bin/passwd
. Ποιο ειδικό bit έχει οριστεί και ποια είναι η σημασία του;# ls -l /usr/bin/passwd -rwsr-xr-x 1 root root 42096 mag 17 2015 /usr/bin/passwd
Η εντολή
passwd
έχει ορίσει το SUID bit (ο τέταρτος χαρακτήρας αυτής της γραμμής), που σημαίνει ότι η εντολή εκτελείται με τα δικαιώματα του ιδιοκτήτη του αρχείου (άρα του χρήστη root). Έτσι μπορούν οι απλοί χρήστες να αλλάξουν τον κωδικό πρόσβασής τους.