Διαχείριση χρηστών και ομάδων, αδειών και χαρακτηριστικών αρχείων και ενεργοποίηση πρόσβασης sudo σε λογαριασμούς - Μέρος 8


Τον περασμένο Αύγουστο, το Linux Foundation ξεκίνησε την πιστοποίηση LFCS (Linux Foundation Certified Sysadmin), ένα ολοκαίνουργιο πρόγραμμα που σκοπός του είναι να επιτρέπει σε άτομα παντού και οπουδήποτε να δίνουν εξετάσεις για να λάβετε πιστοποίηση βασικής έως ενδιάμεσης λειτουργικής υποστήριξης για συστήματα Linux, η οποία περιλαμβάνει υποστήριξη εκτελούμενων συστημάτων και υπηρεσιών, μαζί με συνολική παρακολούθηση και ανάλυση, καθώς και έξυπνη λήψη αποφάσεων για να μπορείτε να αποφασίσετε πότε είναι απαραίτητο να κλιμακώσετε τα ζητήματα σε ομάδες υποστήριξης υψηλότερου επιπέδου.

Ρίξτε μια γρήγορη ματιά στο παρακάτω βίντεο που περιγράφει μια εισαγωγή στο Πρόγραμμα πιστοποίησης του Linux Foundation.

Αυτό το άρθρο είναι το Μέρος 8 μιας μεγάλης σειράς 10 οδηγιών, εδώ σε αυτήν την ενότητα, θα σας καθοδηγήσουμε σχετικά με τον τρόπο διαχείρισης των δικαιωμάτων χρηστών και ομάδων στο σύστημα Linux, που απαιτούνται για την εξέταση πιστοποίησης LFCS.

Δεδομένου ότι το Linux είναι ένα λειτουργικό σύστημα πολλών χρηστών (καθώς επιτρέπει σε πολλούς χρήστες σε διαφορετικούς υπολογιστές ή τερματικά να έχουν πρόσβαση σε ένα μόνο σύστημα), θα πρέπει να ξέρετε πώς να εκτελείτε αποτελεσματική διαχείριση χρηστών: πώς να προσθέτετε, να επεξεργάζεστε, να αναστέλλετε ή να διαγράφετε λογαριασμούς χρηστών, μαζί με τη χορήγηση των απαραίτητων αδειών για να κάνουν τις εργασίες που τους έχουν ανατεθεί.

Προσθήκη λογαριασμών χρηστών

Για να προσθέσετε έναν νέο λογαριασμό χρήστη, μπορείτε να εκτελέσετε μία από τις ακόλουθες δύο εντολές ως root.

# adduser [new_account]
# useradd [new_account]

Όταν προστίθεται ένας νέος λογαριασμός χρήστη στο σύστημα, εκτελούνται οι ακόλουθες λειτουργίες.

1. Δημιουργείται ο αρχικός κατάλογος του/της (/home/username από προεπιλογή).

2. Τα ακόλουθα κρυφά αρχεία αντιγράφονται στον αρχικό κατάλογο του χρήστη και θα χρησιμοποιηθούν για την παροχή μεταβλητών περιβάλλοντος για την περίοδο λειτουργίας χρήστη του/της.

.bash_logout
.bash_profile
.bashrc

3. Δημιουργείται μια ουρά αλληλογραφίας για τον χρήστη στο /var/spool/mail/όνομα χρήστη.

4. Δημιουργείται μια ομάδα και της δίνεται το ίδιο όνομα με τον νέο λογαριασμό χρήστη.

Κατανόηση του /etc/passwd

Οι πλήρεις πληροφορίες λογαριασμού αποθηκεύονται στο αρχείο /etc/passwd. Αυτό το αρχείο περιέχει μια εγγραφή ανά λογαριασμό χρήστη συστήματος και έχει την ακόλουθη μορφή (τα πεδία οριοθετούνται με άνω και κάτω τελεία).

[username]:[x]:[UID]:[GID]:[Comment]:[Home directory]:[Default shell]

  1. Τα πεδία [όνομα χρήστη] και [Σχόλιο] είναι αυτονόητα.
  2. Το x στο δεύτερο πεδίο υποδεικνύει ότι ο λογαριασμός προστατεύεται από έναν σκιερό κωδικό πρόσβασης (στο /etc/shadow), ο οποίος απαιτείται για να συνδεθείτε ως [όνομα χρήστη].
  3. Τα πεδία [UID] και [GID] είναι ακέραιοι αριθμοί που αντιπροσωπεύουν την Αναγνώριση χρήστη και την κύρια Αναγνώριση ομάδας στην οποία [όνομα χρήστη] ανήκει, αντίστοιχα.
  4. Ο [Αρχικός κατάλογος] υποδεικνύει την απόλυτη διαδρομή προς τον κεντρικό κατάλογο του [όνομα χρήστη] και
  5. Το [Προεπιλεγμένο κέλυφος] είναι το κέλυφος που θα διατεθεί σε αυτόν τον χρήστη όταν συνδεθεί στο σύστημα.

Κατανόηση του /etc/group

Οι πληροφορίες ομάδας αποθηκεύονται στο αρχείο /etc/group. Κάθε εγγραφή έχει την ακόλουθη μορφή.

[Group name]:[Group password]:[GID]:[Group members]

  1. [Όνομα ομάδας] είναι το όνομα της ομάδας.
  2. Ένα x στο [Κωδικός πρόσβασης ομάδας] υποδηλώνει ότι δεν χρησιμοποιούνται κωδικοί πρόσβασης ομάδας.
  3. [GID]: όπως στο /etc/passwd.
  4. [Μέλη ομάδας]: μια λίστα διαχωρισμένων με κόμματα των χρηστών που είναι μέλη του [Όνομα ομάδας].

Αφού προσθέσετε έναν λογαριασμό, μπορείτε να επεξεργαστείτε τις ακόλουθες πληροφορίες (για να ονομάσετε μερικά πεδία) χρησιμοποιώντας την εντολή usermod, της οποίας η βασική σύνταξη του usermod είναι η εξής.

# usermod [options] [username]

Χρησιμοποιήστε τη σημαία –λήγει ακολουθούμενη από μια ημερομηνία σε μορφή ΕΕΕΕ-ΜΜ-ΗΗ.

# usermod --expiredate 2014-10-30 tecmint

Χρησιμοποιήστε τις συνδυασμένες επιλογές -aG ή –append –groups, ακολουθούμενες από μια λίστα ομάδων διαχωρισμένων με κόμματα.

# usermod --append --groups root,users tecmint

Χρησιμοποιήστε τις επιλογές -d ή –home, ακολουθούμενες από την απόλυτη διαδρομή προς τον νέο αρχικό κατάλογο.

# usermod --home /tmp tecmint

Χρησιμοποιήστε το –shell, ακολουθούμενο από τη διαδρομή προς το νέο κέλυφος.

# usermod --shell /bin/sh tecmint
# groups tecmint
# id tecmint

Τώρα ας εκτελέσουμε όλες τις παραπάνω εντολές με μια κίνηση.

# usermod --expiredate 2014-10-30 --append --groups root,users --home /tmp --shell /bin/sh tecmint

Στο παραπάνω παράδειγμα, θα ορίσουμε την ημερομηνία λήξης του λογαριασμού χρήστη tecmint σε 30 Οκτωβρίου 2014. Θα προσθέσουμε επίσης τον λογαριασμό στην ομάδα root και χρηστών. Τέλος, θα ορίσουμε το sh ως προεπιλεγμένο κέλυφος και θα αλλάξουμε τη θέση του αρχικού καταλόγου σε /tmp:

Διαβάστε επίσης:

  1. 15 παραδείγματα εντολών προσθήκης χρηστών στο Linux
  2. 15 παραδείγματα εντολών usermod στο Linux

Για υπάρχοντες λογαριασμούς, μπορούμε επίσης να κάνουμε τα εξής.

Χρησιμοποιήστε την επιλογή -L (κεφαλαία L) ή την επιλογή –κλείδωμα για να κλειδώσετε τον κωδικό πρόσβασης ενός χρήστη.

# usermod --lock tecmint

Χρησιμοποιήστε την επιλογή –u ή την επιλογή –ξεκλείδωμα για να ξεκλειδώσετε τον κωδικό πρόσβασης ενός χρήστη που είχε προηγουμένως αποκλειστεί.

# usermod --unlock tecmint

Εκτελέστε την ακόλουθη σειρά εντολών για να πετύχετε τον στόχο.

# groupadd common_group # Add a new group
# chown :common_group common.txt # Change the group owner of common.txt to common_group
# usermod -aG common_group user1 # Add user1 to common_group
# usermod -aG common_group user2 # Add user2 to common_group
# usermod -aG common_group user3 # Add user3 to common_group

Μπορείτε να διαγράψετε μια ομάδα με την ακόλουθη εντολή.

# groupdel [group_name]

Εάν υπάρχουν αρχεία που ανήκουν στο group_name, δεν θα διαγραφούν, αλλά ο κάτοχος της ομάδας θα οριστεί στο GID της ομάδας που διαγράφηκε.

Δικαιώματα αρχείων Linux

Εκτός από τα βασικά δικαιώματα ανάγνωσης, εγγραφής και εκτέλεσης που συζητήσαμε στα Εργαλεία αρχειοθέτησης και ρύθμισης χαρακτηριστικών αρχείων – Μέρος 3 αυτής της σειράς, υπάρχουν άλλες λιγότερο χρησιμοποιημένες (αλλά όχι λιγότερο σημαντικές) ρυθμίσεις δικαιωμάτων, που μερικές φορές αναφέρονται ως \ ειδικές άδειες».

Όπως τα βασικά δικαιώματα που συζητήθηκαν προηγουμένως, ορίζονται χρησιμοποιώντας ένα οκταδικό αρχείο ή μέσω ενός γράμματος (συμβολική σημείωση) που υποδεικνύει τον τύπο της άδειας.

Μπορείτε να διαγράψετε έναν λογαριασμό (μαζί με τον αρχικό του κατάλογο, εάν ανήκει στον χρήστη, και όλα τα αρχεία που βρίσκονται σε αυτόν, καθώς και την ουρά αλληλογραφίας) χρησιμοποιώντας την εντολή userdel με την εντολή –remove επιλογή.

# userdel --remove [username]

Διαχείριση Ομίλου

Κάθε φορά που προστίθεται ένας νέος λογαριασμός χρήστη στο σύστημα, δημιουργείται μια ομάδα με το ίδιο όνομα με μοναδικό μέλος το όνομα χρήστη. Άλλοι χρήστες μπορούν να προστεθούν στην ομάδα αργότερα. Ένας από τους σκοπούς των ομάδων είναι να εφαρμόσουν έναν απλό έλεγχο πρόσβασης σε αρχεία και άλλους πόρους του συστήματος ορίζοντας τα σωστά δικαιώματα σε αυτούς τους πόρους.

Για παράδειγμα, ας υποθέσουμε ότι έχετε τους ακόλουθους χρήστες.

  1. user1 (κύρια ομάδα: user1)
  2. user2 (κύρια ομάδα: user2)
  3. user3 (κύρια ομάδα: user3)

Όλα χρειάζονται πρόσβαση ανάγνωσης και εγγραφής σε ένα αρχείο που ονομάζεται common.txt που βρίσκεται κάπου στο τοπικό σας σύστημα ή ίσως σε ένα κοινόχρηστο δίκτυο που Ο χρήστης user1 έχει δημιουργήσει. Μπορεί να μπείτε στον πειρασμό να κάνετε κάτι όπως,

# chmod 660 common.txt
OR
# chmod u=rw,g=rw,o= common.txt [notice the space between the last equal sign and the file name]

Ωστόσο, αυτό θα παρέχει μόνο πρόσβαση ανάγνωσης και εγγραφής στον κάτοχο του αρχείου και σε εκείνους τους χρήστες που είναι μέλη του κατόχου ομάδας του αρχείου (user1 σε αυτή την περίπτωση). Και πάλι, μπορεί να μπείτε στον πειρασμό να προσθέσετε user2 και user3 στην ομάδα user1, αλλά αυτό θα τους δώσει επίσης πρόσβαση στα υπόλοιπα αρχεία που ανήκουν από χρήστη user1 και ομάδα user1.

Εδώ είναι χρήσιμες οι ομάδες και ορίστε τι πρέπει να κάνετε σε μια περίπτωση όπως αυτή.

Κατανόηση του Setuid

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

Συνοψίζοντας, δεν είναι μόνο ότι ο χρήστης μπορεί να εκτελέσει το δυαδικό αρχείο, αλλά και ότι μπορεί να το κάνει με τα προνόμια του root. Για παράδειγμα, ας ελέγξουμε τα δικαιώματα του /bin/passwd. Αυτό το δυαδικό αρχείο χρησιμοποιείται για την αλλαγή του κωδικού πρόσβασης ενός λογαριασμού και τροποποιεί το αρχείο /etc/shadow. Ο υπερχρήστης μπορεί να αλλάξει τον κωδικό πρόσβασης οποιουδήποτε, αλλά όλοι οι άλλοι χρήστες θα πρέπει να μπορούν να αλλάξουν μόνο τον δικό τους.

Επομένως, οποιοσδήποτε χρήστης θα πρέπει να έχει δικαίωμα εκτέλεσης του /bin/passwd, αλλά μόνο ο root θα μπορεί να καθορίσει έναν λογαριασμό. Οι άλλοι χρήστες μπορούν να αλλάξουν μόνο τους αντίστοιχους κωδικούς πρόσβασης.

Κατανόηση του Setgid

Όταν οριστεί το bit setgid, το αποτελεσματικό GID του πραγματικού χρήστη γίνεται αυτό του κατόχου της ομάδας. Έτσι, οποιοσδήποτε χρήστης μπορεί να έχει πρόσβαση σε ένα αρχείο βάσει των προνομίων που παρέχονται στον κάτοχο της ομάδας αυτού του αρχείου. Επιπλέον, όταν το bit setgid ορίζεται σε έναν κατάλογο, τα αρχεία που δημιουργήθηκαν πρόσφατα κληρονομούν την ίδια ομάδα με τον κατάλογο και οι νεοδημιουργημένοι υποκατάλογοι θα κληρονομήσουν επίσης το bit setgid του γονικού καταλόγου. Πιθανότατα θα χρησιμοποιήσετε αυτήν την προσέγγιση όποτε τα μέλη μιας συγκεκριμένης ομάδας χρειάζονται πρόσβαση σε όλα τα αρχεία ενός καταλόγου, ανεξάρτητα από την κύρια ομάδα του κατόχου του αρχείου.

# chmod g+s [filename]

Για να ορίσετε το setgid σε οκταδική μορφή, προσαρτήστε τον αριθμό 2 στα τρέχοντα (ή επιθυμητά) βασικά δικαιώματα.

# chmod 2755 [directory]
Κατανόηση του Sticky Bit

Όταν το \sticky bit” έχει οριστεί σε αρχεία, το Linux απλώς το αγνοεί, ενώ για τους καταλόγους έχει ως αποτέλεσμα να εμποδίζει τους χρήστες να διαγράψουν ή ακόμη και να μετονομάσουν τα αρχεία που περιέχει, εκτός εάν ο χρήστης είναι ιδιοκτήτης του καταλόγου. το αρχείο ή είναι root.

# chmod o+t [directory]

Για να ορίσετε το κολλώδες bit σε οκταδική μορφή, προσαρτήστε τον αριθμό 1 στα τρέχοντα (ή επιθυμητά) βασικά δικαιώματα.

# chmod 1755 [directory]

Χωρίς το sticky bit, όποιος μπορεί να γράψει στον κατάλογο μπορεί να διαγράψει ή να μετονομάσει αρχεία. Για αυτόν τον λόγο, το αυτοκόλλητο bit βρίσκεται συνήθως σε καταλόγους, όπως /tmp, που μπορούν να εγγραφούν παγκοσμίως.

Ειδικά χαρακτηριστικά αρχείων Linux

Υπάρχουν και άλλα χαρακτηριστικά που επιτρέπουν περαιτέρω περιορισμούς στις λειτουργίες που επιτρέπονται στα αρχεία. Για παράδειγμα, αποτρέψτε τη μετονομασία, τη μετακίνηση, τη διαγραφή ή ακόμα και την τροποποίηση του αρχείου. Ρυθμίζονται με την εντολή chattr και μπορούν να προβληθούν χρησιμοποιώντας το εργαλείο lsattr, ως εξής.

# chattr +i file1
# chattr +a file2

Μετά την εκτέλεση αυτών των δύο εντολών, το file1 θα είναι αμετάβλητο (που σημαίνει ότι δεν μπορεί να μετακινηθεί, να μετονομαστεί, να τροποποιηθεί ή να διαγραφεί) ενώ το file2 θα εισέλθει σε λειτουργία μόνο προσθήκης (μπορεί μόνο να άνοιγμα σε λειτουργία προσάρτησης για γραφή).

Πρόσβαση στον ριζικό λογαριασμό και χρήση sudo

Ένας από τους τρόπους με τους οποίους οι χρήστες μπορούν να αποκτήσουν πρόσβαση στον λογαριασμό root είναι πληκτρολογώντας.

$ su

και στη συνέχεια εισάγοντας τον κωδικό πρόσβασης του root.

Εάν ο έλεγχος ταυτότητας επιτύχει, θα συνδεθείτε ως root με τον τρέχοντα κατάλογο εργασίας να είναι ίδιος με τον προηγούμενο. Αν θέλετε να τοποθετηθείτε στον αρχικό κατάλογο του root, εκτελέστε.

$ su -

και μετά πληκτρολογήστε τον κωδικό πρόσβασης του root.

Η παραπάνω διαδικασία απαιτεί από έναν κανονικό χρήστη να γνωρίζει τον κωδικό πρόσβασης του root, κάτι που ενέχει σοβαρό κίνδυνο ασφάλειας. Για αυτόν τον λόγο, το sysadmin μπορεί να διαμορφώσει την εντολή sudo ώστε να επιτρέπει σε έναν συνηθισμένο χρήστη να εκτελεί εντολές ως διαφορετικός χρήστης (συνήθως ο υπερχρήστης) με πολύ ελεγχόμενο και περιορισμένο τρόπο. Έτσι, μπορούν να τεθούν περιορισμοί σε έναν χρήστη, ώστε να μπορεί να εκτελεί μία ή περισσότερες συγκεκριμένες προνομιακές εντολές και όχι άλλες.

Διαβάστε επίσης: Διαφορά μεταξύ χρήστη su και sudo

Για τον έλεγχο ταυτότητας χρησιμοποιώντας το sudo, ο χρήστης χρησιμοποιεί τον δικό του κωδικό πρόσβασης. Αφού εισαγάγουμε την εντολή, θα μας ζητηθεί ο κωδικός μας (όχι του υπερχρήστη) και εάν ο έλεγχος ταυτότητας επιτύχει (και εάν ο χρήστης έχει λάβει δικαιώματα να εκτελέσει την εντολή), εκτελείται η καθορισμένη εντολή.

Για να εκχωρήσετε πρόσβαση στο sudo, ο διαχειριστής του συστήματος πρέπει να επεξεργαστεί το αρχείο /etc/sudoers. Συνιστάται η επεξεργασία αυτού του αρχείου χρησιμοποιώντας την εντολή visudo αντί να το ανοίγετε απευθείας με ένα πρόγραμμα επεξεργασίας κειμένου.

# visudo

Αυτό ανοίγει το αρχείο /etc/sudoers χρησιμοποιώντας το vim (μπορείτε να ακολουθήσετε τις οδηγίες που δίνονται στο Install and Use vim as Editor – Μέρος 2 αυτής της σειράς για να επεξεργαστείτε το αρχείο).

Αυτές είναι οι πιο σχετικές γραμμές.

Defaults    secure_path="/usr/sbin:/usr/bin:/sbin"
root        ALL=(ALL) ALL
tecmint     ALL=/bin/yum update
gacanepa    ALL=NOPASSWD:/bin/updatedb
%admin      ALL=(ALL) ALL

Ας τους ρίξουμε μια πιο προσεκτική ματιά.

Defaults    secure_path="/usr/sbin:/usr/bin:/sbin:/usr/local/bin"

Αυτή η γραμμή σάς επιτρέπει να καθορίσετε τους καταλόγους που θα χρησιμοποιηθούν για το sudo και χρησιμοποιείται για την αποτροπή χρήσης καταλόγων για συγκεκριμένους χρήστες, που μπορεί να βλάψουν το σύστημα.

Οι επόμενες γραμμές χρησιμοποιούνται για τον καθορισμό δικαιωμάτων.

root        ALL=(ALL) ALL

  1. Η πρώτη λέξη-κλειδί ΟΛΟΙ υποδηλώνει ότι αυτός ο κανόνας ισχύει για όλους τους κεντρικούς υπολογιστές.
  2. Το δεύτερο ALL υποδηλώνει ότι ο χρήστης στην πρώτη στήλη μπορεί να εκτελέσει εντολές με τα δικαιώματα οποιουδήποτε χρήστη.
  3. Το τρίτο ALL σημαίνει ότι μπορεί να εκτελεστεί οποιαδήποτε εντολή.

tecmint     ALL=/bin/yum update

Εάν δεν έχει καθοριστεί χρήστης μετά το σύμβολο =, το sudo υποθέτει τον χρήστη root. Σε αυτήν την περίπτωση, ο χρήστης tecmint θα μπορεί να εκτελεί την yum update ως root.

gacanepa    ALL=NOPASSWD:/bin/updatedb

Η οδηγία NOPASSWD επιτρέπει στον χρήστη gacanepa να εκτελεί το /bin/updatedb χωρίς να χρειάζεται να εισαγάγει τον κωδικό πρόσβασής του.

%admin      ALL=(ALL) ALL

Το σύμβολο % υποδεικνύει ότι αυτή η γραμμή ισχύει για μια ομάδα που ονομάζεται \admin. Η σημασία της υπόλοιπης γραμμής είναι πανομοιότυπη με αυτή ενός κανονικού χρήστη. Αυτό σημαίνει ότι τα μέλη της ομάδας \admin” μπορούν να εκτελούν όλες τις εντολές όπως οποιοσδήποτε χρήστης σε όλους τους κεντρικούς υπολογιστές.

Για να δείτε ποια προνόμια σας παραχωρούνται από το sudo, χρησιμοποιήστε την επιλογή \-l” για να τα καταχωρήσετε.

PAM (Συνδεόμενες μονάδες ελέγχου ταυτότητας)

Οι Μονάδες ελέγχου ταυτότητας με δυνατότητα σύνδεσης (PAM) προσφέρουν την ευελιξία του ορισμού ενός συγκεκριμένου σχήματος ελέγχου ταυτότητας ανά εφαρμογή ή/και ανά υπηρεσία, χρησιμοποιώντας μονάδες. Αυτό το εργαλείο που υπήρχε σε όλες τις σύγχρονες διανομές Linux ξεπέρασε το πρόβλημα που αντιμετώπιζαν συχνά οι προγραμματιστές στις πρώτες μέρες του Linux, όταν κάθε πρόγραμμα που απαιτούσε έλεγχο ταυτότητας έπρεπε να μεταγλωττιστεί ειδικά για να γνωρίζει πώς να λαμβάνει τις απαραίτητες πληροφορίες.

Για παράδειγμα, με το PAM, δεν έχει σημασία αν ο κωδικός πρόσβασής σας είναι αποθηκευμένος στο /etc/shadow ή σε ξεχωριστό διακομιστή εντός του δικτύου σας.

Για παράδειγμα, όταν το πρόγραμμα σύνδεσης χρειάζεται να ελέγξει την ταυτότητα ενός χρήστη, το PAM παρέχει δυναμικά τη βιβλιοθήκη που περιέχει τις συναρτήσεις για το σωστό σχήμα ελέγχου ταυτότητας. Έτσι, η αλλαγή του σχήματος ελέγχου ταυτότητας για την εφαρμογή σύνδεσης (ή οποιοδήποτε άλλο πρόγραμμα που χρησιμοποιεί PAM) είναι εύκολη, καθώς περιλαμβάνει μόνο την επεξεργασία ενός αρχείου διαμόρφωσης (πιθανότατα, ένα αρχείο με το όνομα της εφαρμογής, που βρίσκεται μέσα στο /etc/pam.d και λιγότερο πιθανό στο /etc/pam.conf).

Τα αρχεία μέσα στο /etc/pam.d υποδεικνύουν ποιες εφαρμογές χρησιμοποιούν εγγενώς το PAM. Επιπλέον, μπορούμε να πούμε εάν μια συγκεκριμένη εφαρμογή χρησιμοποιεί PAM ελέγχοντας εάν η βιβλιοθήκη PAM (libpam) έχει συνδεθεί με αυτήν:

# ldd $(which login) | grep libpam # login uses PAM
# ldd $(which top) | grep libpam # top does not use PAM

Στην παραπάνω εικόνα μπορούμε να δούμε ότι το libpam έχει συνδεθεί με την εφαρμογή σύνδεσης. Αυτό είναι λογικό αφού αυτή η εφαρμογή εμπλέκεται στη λειτουργία ελέγχου ταυτότητας χρήστη συστήματος, ενώ η κορυφή όχι.

Ας εξετάσουμε το αρχείο διαμόρφωσης PAM για το passwd – ναι, το γνωστό βοηθητικό πρόγραμμα για την αλλαγή των κωδικών πρόσβασης του χρήστη. Βρίσκεται στη διεύθυνση /etc/pam.d/passwd:

# cat /etc/passwd

Η πρώτη στήλη υποδεικνύει τον τύπος του ελέγχου ταυτότητας που θα χρησιμοποιηθεί με το module-path (τρίτη στήλη). Όταν εμφανίζεται μια παύλα πριν από τον τύπο, το PAM δεν θα καταγράφει στο αρχείο καταγραφής του συστήματος, εάν η μονάδα δεν μπορεί να φορτωθεί επειδή δεν ήταν δυνατή η εύρεση της στο σύστημα.

Οι ακόλουθοι τύποι ελέγχου ταυτότητας είναι διαθέσιμοι:

  1. λογαριασμός: αυτός ο τύπος λειτουργικής μονάδας ελέγχει εάν ο χρήστης ή η υπηρεσία έχει παράσχει έγκυρα διαπιστευτήρια για έλεγχο ταυτότητας.
  2. auth: αυτός ο τύπος λειτουργικής μονάδας επαληθεύει ότι ο χρήστης είναι αυτός που ισχυρίζεται ότι είναι και παραχωρεί τα απαραίτητα προνόμια.
  3. κωδικός πρόσβασης: αυτός ο τύπος μονάδας επιτρέπει στον χρήστη ή την υπηρεσία να ενημερώσει τον κωδικό πρόσβασής του.
  4. συνεδρία: αυτός ο τύπος λειτουργικής μονάδας υποδεικνύει τι πρέπει να γίνει πριν ή/και μετά την επιτυχία του ελέγχου ταυτότητας.

Η δεύτερη στήλη (που ονομάζεται control) υποδεικνύει τι θα συμβεί εάν ο έλεγχος ταυτότητας με αυτήν την ενότητα αποτύχει:

  1. απαιτούμενο: εάν ο έλεγχος ταυτότητας μέσω αυτής της λειτουργικής μονάδας αποτύχει, ο συνολικός έλεγχος ταυτότητας θα απορριφθεί αμέσως.
  2. Το
  3. απαιτούμενο είναι παρόμοιο με το απαιτούμενο, αν και όλες οι άλλες αναφερόμενες ενότητες για αυτήν την υπηρεσία θα κληθούν πριν από την άρνηση ελέγχου ταυτότητας.
  4. επαρκής: εάν ο έλεγχος ταυτότητας μέσω αυτής της λειτουργικής μονάδας αποτύχει, το PAM θα εξακολουθήσει να χορηγεί έλεγχο ταυτότητας ακόμη και αν μια προηγούμενη επισήμανση ως απαιτούμενη απέτυχε.
  5. προαιρετικό: εάν ο έλεγχος ταυτότητας μέσω αυτής της λειτουργικής μονάδας αποτύχει ή επιτύχει, τίποτα δεν συμβαίνει εκτός εάν αυτή είναι η μοναδική μονάδα του τύπου της που έχει οριστεί για αυτήν την υπηρεσία.
  6. Το
  7. include σημαίνει ότι οι γραμμές του συγκεκριμένου τύπου πρέπει να διαβαστούν από άλλο αρχείο.
  8. Η
  9. υποστοίβα είναι παρόμοια με τα περιλαμβανόμενα, αλλά οι αποτυχίες ή οι επιτυχίες ελέγχου ταυτότητας δεν προκαλούν την έξοδο ολόκληρης της λειτουργικής μονάδας, αλλά μόνο της υποστοίβας.

Η τέταρτη στήλη, εάν υπάρχει, δείχνει τα ορίσματα που πρέπει να περάσουν στη λειτουργική μονάδα.

Οι πρώτες τρεις γραμμές στο /etc/pam.d/passwd (εμφανίζονται παραπάνω), φορτώνουν τη λειτουργική μονάδα system-auth για να ελέγξετε ότι ο χρήστης έχει παράσχει έγκυρα διαπιστευτήρια (λογαριασμός) . Εάν ναι, του/της επιτρέπει να αλλάξει το διακριτικό ελέγχου ταυτότητας (κωδικός πρόσβασης) δίνοντας άδεια χρήσης του passwd (auth).

Για παράδειγμα, εάν προσαρτήσετε

remember=2

στην ακόλουθη γραμμή

password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok

στο /etc/pam.d/system-auth:

password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=2

οι δύο τελευταίοι κατακερματισμένοι κωδικοί πρόσβασης κάθε χρήστη αποθηκεύονται στο /etc/security/opasswd έτσι ώστε να μην μπορούν να χρησιμοποιηθούν ξανά:

Περίληψη

Οι αποτελεσματικές δεξιότητες διαχείρισης χρηστών και αρχείων είναι απαραίτητα εργαλεία για κάθε διαχειριστή συστήματος. Σε αυτό το άρθρο καλύψαμε τα βασικά και ελπίζουμε ότι μπορείτε να το χρησιμοποιήσετε ως μια καλή αρχή για να αξιοποιήσετε. Μη διστάσετε να αφήσετε τα σχόλια ή τις ερωτήσεις σας παρακάτω και θα απαντήσουμε γρήγορα.