Δικαιώματα πρόσβασης σε αρχεία και καταλόγους σε συστήματα παρόμοια με το UNIX. Ρύθμιση δικαιωμάτων πρόσβασης σε αρχεία και καταλόγους

Τα λειτουργικά συστήματα που βασίζονται σε Linux είναι πολλαπλών χρηστών και επομένως το ζήτημα του περιορισμού της πρόσβασης σε αρχεία και καταλόγους είναι σημαντικό και απαιτεί προσοχή.

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

Όταν δημιουργείται ένα αρχείο, έχει έναν κάτοχο, δηλαδή έναν χρήστη που ξεκίνησε τη διαδικασία δημιουργίας του. Καθορίζεται επίσης η ομάδα που θα έχει δικαιώματα σε αυτό το αρχείο. Μπορείτε να αλλάξετε τον κάτοχο ενός αρχείου και την ομάδα ενός αρχείου χρησιμοποιώντας τις εντολές chown και chgrp.

chown και chgrp εντολές

Ομάδα τσόουν(σημαίνει "αλλαγή κατόχου") χρησιμοποιείται για την αλλαγή του κατόχου ενός αρχείου. Σε αυτήν την περίπτωση, ο υπερχρήστης πρέπει να πραγματοποιήσει την αλλαγή κατόχου. Πρέπει να εισαγάγετε το όνομα της εντολής, μετά το όνομα του χρήστη που θέλετε να κάνετε κάτοχο του αρχείου και τέλος το όνομα του αρχείου:

# chown όνομα χρήστη όνομα αρχείου

Ομάδα chgrp(συντομογραφία της λέξης "change group") χρησιμοποιείται για την αλλαγή της ομάδας ενός αρχείου. Σε αυτήν την περίπτωση, τόσο ο υπερχρήστης όσο και ο κάτοχος του αρχείου μπορούν να εκτελέσουν την εντολή, αλλά πρέπει να είναι μέλος της ομάδας στην οποία θέλει να μεταβιβάσει τα δικαιώματα του αρχείου. Πρέπει να εισαγάγετε την εντολή, το όνομα της ομάδας αρχείων στην οποία μεταφέρετε δικαιώματα και, στη συνέχεια, το όνομα του αρχείου:

# chgrp group_name file_name

Θα σας πω κάτι χρήσιμο αμέσως κλειδί -R(σημαίνει «αναδρομικά»). Σας επιτρέπει να εφαρμόσετε την εντολή όχι μόνο στον τρέχοντα κατάλογο, αλλά και σε όλους τους υποκαταλόγους. Το κλειδί μπορεί να χρησιμοποιηθεί τόσο με chown όσο και με chgrp. Χρησιμοποίησε αυτό αναδρομική εντολήβολικό σε περίπτωση μεγάλης φωλιάς.

Δικαιώματα πρόσβασης

Γιατί να ρυθμίσετε τα δικαιώματα πρόσβασης;

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

Πώς να δείτε τα δικαιώματα πρόσβασης;

Πριν προχωρήσετε στη διαδικασία αλλαγής δικαιωμάτων, πρέπει να κατανοήσετε πώς να προβάλλετε τα υπάρχοντα δικαιώματα αρχείων και καταλόγων. Αυτό μπορεί να γίνει χρησιμοποιώντας την εντολή ls και το διακόπτη -l.

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

Ένα παράδειγμα των πληροφοριών που εμφανίζονται:

Σύνολο 32 drwxr-xr-- 2 root root 4096 7 Μαΐου 2016 bin drwxr-xr-- 2 root root 4096 7 Μαΐου 2016 κ.λπ. drwxr-xr-- 2 root root 4096 11 Αυγούστου 2016 παιχνίδια χρήστη drwxr-xr- 5 12:00 Εικόνες drwxr-xr-- 2 root root 4096 23 Μαρτίου 2016 sbin -rw-r--r-- 1 root root 6 Μαΐου 20:28 file1.txt -rw-r--r-- 1 root root 6 Μαΐου 09:58 kdm.log

Ας καταλάβουμε τι σημαίνουν αυτές οι γραμμές.

Το πρώτο γράμμα στην έξοδο δείχνει τον τύπο του αρχείου. Οι πιο δημοφιλείς χαρακτηρισμοί που θα δείτε πιο συχνά είναι:

Εκτός από αυτούς, υπάρχουν και άλλοι χαρακτηρισμοί:

  • σι— αποκλεισμός αρχείου συσκευής.
  • ντο— αρχείο συσκευής χαρακτήρων.
  • μικρό— υποδοχή τομέα·
  • Π— επώνυμος σωλήνας (σωλήνας)·
  • μεγάλο— συμβολικός σύνδεσμος (σύνδεσμος).

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

  • r- ανάγνωση - δικαίωμα ανάγνωσης.
  • w- εγγραφή - το δικαίωμα εγγραφής (αλλαγή, συμπεριλαμβανομένης της διαγραφής).
  • Χ- execute - το δικαίωμα εκτέλεσης αυτού του αρχείου (αν μιλάμε για έναν κατάλογο, τότε δείτε τον πίνακα περιεχομένων και αναζητήστε σε αυτόν).
  • - (μια παύλα) αντί για ένα από τα γράμματα δείχνει ότι δεν έχετε το αντίστοιχο δικαίωμα.

Επομένως, κατόπιν ραντεβού

Rw-r--r-- 1 root root 6 Μαΐου 20:28 file1.txt

μπορούμε να πούμε ότι αυτό είναι ένα κανονικό αρχείο, ο κάτοχος του οποίου είναι ο χρήστης root και μπορεί να διαβάσει και να τροποποιήσει αυτό το αρχείο.

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

Στο παράδειγμα που εξετάζουμε παραπάνω, ριζικές ομάδεςθα υπάρχουν μόνο δικαιώματα ανάγνωσης του αρχείου.

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

Αλλαγή δικαιωμάτων πρόσβασης

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

chmod who=δικαιώματα αρχείου/καταλόγου

Αντί για «ποιος» πρέπει να αντικαταστήσετε τον προσδιορισμό του ατόμου στο οποίο θα εκχωρηθούν δικαιώματα πρόσβασης. Υπάρχουν οι παρακάτω ονομασίες:

  • u- χρήστης - κάτοχος αρχείου.
  • σολ- ομάδα - η ομάδα στην οποία ανήκει το αρχείο.
  • ο- άλλοι - άλλοι χρήστες.
  • ένα- όλα - τα πάντα (αντί του συνδυασμού ugo).

Τέλος, αντί για «αρχείο/κατάλογος» πρέπει να γράψετε στην εντολή το όνομα του αρχείου ή του καταλόγου για τον οποίο θέλετε να αλλάξετε τα δικαιώματα.

Παραδείγματα

Ας υποθέσουμε ότι θέλετε το αρχείο καταγραφής να είναι μόνο για ανάγνωση από όλους τους τρίτους (άλλους) χρήστες. Για να το κάνετε αυτό πρέπει να εισάγετε την ακόλουθη εντολή:

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

Μπορείτε να συνδυάσετε τις ονομασίες εκείνων για τους οποίους θέλετε να αλλάξετε δικαιώματα πρόσβασης. Για παράδειγμα, εάν πρέπει να αλλάξετε τα δικαιώματα πρόσβασης τόσο για τον κάτοχο όσο και για την ομάδα ταυτόχρονα, μπορείτε να γράψετε ως εξής:

Chmod ug=rw file1.txt

Μπορείτε επίσης να συνδυάσετε τα ίδια τα αρχεία ή τους καταλόγους (αν θέλετε να αλλάξετε τα δικαιώματα για πολλά αρχεία ταυτόχρονα):

Chmod ug=rw file1.txt file2.txt

Προσθήκη και αφαίρεση δικαιωμάτων

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

Για παράδειγμα, η ομάδα

Chmod o+w file.txt

θα δώσει σε άλλους χρήστες τη δυνατότητα να επεξεργαστούν αυτό το αρχείο.

Δικαιώματα αντιγραφής

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

Chmod o=u file.txt

Αλλά δεν μπορείτε να αλλάξετε τα ίδια τα δικαιώματα όταν εισάγετε μια εντολή αυτού του τύπου.

Ψηφιακός χαρακτηρισμός

Σίγουρα έχετε συναντήσει περισσότερες από μία φορές το γεγονός ότι οι φάκελοι ή τα αρχεία έχουν δικαιώματα πρόσβασης με τη μορφή αριθμών. Για παράδειγμα, 754, 755, 774, κ.λπ.

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

Αποκρυπτογράφηση: ανάγνωση (r) - 4, εγγραφή (w) - 2 και εκτέλεση (x) - 1. Εάν προσθέσετε όλα αυτά τα δικαιώματα, θα λάβετε 7 - ο κάτοχος του αρχείου μπορεί να έχει αυτό το δικαίωμα πρόσβασης. Μια ομάδα μπορεί να έχει δικαιώματα ανάγνωσης και εγγραφής (4+2) - που συμβολίζονται με 1. Και ούτω καθεξής.

Για να γίνει πιο σαφές:

Αυτή η καταχώρηση προήλθε από δυαδική κωδικοποίησηοκταδικά ψηφία, δηλαδή το 754 είναι μια οκταδική σημείωση 9 bit που καθορίζει τα δικαιώματα για ένα αρχείο ή κατάλογο.

Εάν θέλετε, μπορείτε να χρησιμοποιήσετε την εντολή chmod με ψηφιακή κωδικοποίηση:

Chmod 754 file1.txt

Παραδείγματα

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

Επιπροσθέτως

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

Στο Filezilla:

Για σωστή λειτουργίαΤα σενάρια PHP και η ασφάλεια δεδομένων απαιτούν τη ρύθμιση ορισμένων δικαιωμάτων πρόσβασης σε αρχεία και καταλόγους χρησιμοποιώντας την εντολή chmod ή χρησιμοποιώντας έναν πελάτη FTP ή διαχείριση αρχείων Πίνακας Ελέγχουφιλοξενία. Πώς γνωρίζετε ποια αξία αδειών πρέπει να εφαρμόσετε για να επιτύχετε βέλτιστα αποτελέσματα;

Ιδιοκτήτης και ομάδα

Σε συστήματα αρχείων λειτουργικών συστημάτων UNIX (Linux, FreeBSD κ.λπ.) στις ιδιότητες κάθε στοιχείου σύστημα αρχείων(αρχείο ή κατάλογος) περιέχει πληροφορίες σχετικά με αυτό ιδιοκτήτηςΚαι ομάδα.

Κάτοχος του αρχείου/καταλόγου- Όνομα χρήστη λειτουργικό σύστημα, που «κατέχει» το αρχείο ή τον κατάλογο.
Ομάδα- όνομα της ομάδας χρηστών του λειτουργικού συστήματος της οποίας τα μέλη έχουν πρόσβαση στο αρχείο ή τον κατάλογο.

Να θυμάστε ότι κάθε αρχείο και κατάλογος μπορεί να έχει διαφορετικό όνομα κατόχου και ομάδας. Για παράδειγμα, εάν μια σύνδεση FTP και ένας διακομιστής web εκτελούνται στη φιλοξενία από διαφορετικούς χρήστες(Για παράδειγμα, ftp-χρήστηςΚαι Απάχης), τότε θα είναι ο κάτοχος των αρχείων που μεταφορτώνονται μέσω FTP ftp-χρήστης, και για αρχεία που έχουν δημιουργηθεί με χρήση σεναρίου PHP (για παράδειγμα, αποσυσκευασμένα κατά την εγκατάσταση του WebAsyst), ο κάτοχος θα είναι Απάχης.

Δικαιώματα πρόσβασης

Σε κάθε αρχείο και κατάλογο εκχωρείται ένας 3ψήφιος αριθμός που καθορίζει ποια πρόσβαση επιτρέπεται στον κάτοχο, στα μέλη της ομάδας και σε όλους τους άλλους χρήστες του λειτουργικού συστήματος:

  • το πρώτο ψηφίο υποδεικνύει τα δικαιώματα πρόσβασης του κατόχου.
  • το δεύτερο ψηφίο υποδεικνύει τα δικαιώματα πρόσβασης των μελών της ομάδας.
  • το τρίτο ψηφίο υποδεικνύει τα δικαιώματα πρόσβασης άλλων χρηστών του συστήματος.

Κάθε ψηφίο είναι το άθροισμα των σταθερών τιμών πρόσβασης:

1 (δηλώνεται επίσης με το γράμμα Χ) - απόδοση. Κάνει το αρχείο εκτελέσιμο (πρόγραμμα) και για έναν κατάλογο, σας επιτρέπει να αλλάξετε τα περιεχόμενά του (για παράδειγμα, να δημιουργήσετε, να διαγράψετε ή να μετονομάσετε αρχεία μέσα σε αυτόν).
2 (δηλώνεται επίσης με το γράμμα w) - αντικατάσταση. Σας επιτρέπει να αντικαταστήσετε τα περιεχόμενα ενός αρχείου και για έναν κατάλογο, σας επιτρέπει να το μετονομάσετε.
4 (δηλώνεται επίσης με το γράμμα r) - ΑΝΑΓΝΩΣΗ. Σας επιτρέπει να διαβάζετε τα περιεχόμενα ενός αρχείου και για έναν κατάλογο - να διαβάσετε τη λίστα με τα ονόματα των ένθετων υποκαταλόγων και αρχείων.

Παράδειγμα

750 = (1+2+4)(1+4)()

Σε αυτό το παράδειγμα, ο κάτοχος έχει δικαιώματα εκτέλεσης, αντικατάστασης και ανάγνωσης (1, 2 και 4), τα μέλη της ομάδας έχουν μόνο δικαιώματα εκτέλεσης και ανάγνωσης (1 και 4) και δεν επιτρέπεται η πρόσβαση σε άλλους χρήστες του λειτουργικού συστήματος.

Καταλόγους και αρχεία WebAsyst

Λειτουργίες κάθε αρχείου και καταλόγου μέσα δομή αρχείουΤο WebAsyst είναι διαφορετικό - η πρόσβαση σε ορισμένα είναι επαρκής στη λειτουργία ανάγνωσης, άλλα πρέπει να μπορούν να ξαναγραφτούν χρησιμοποιώντας σενάρια PHP ή μέσω FTP. Η λίστα των καταλόγων και των αρχείων και τα επαρκή δικαιώματα πρόσβασης για αυτά παρέχονται στον οδηγό εγκατάστασης για σενάρια WebAsyst στην ενότητα «Προστασία WebAsyst μετά την εγκατάσταση».

Πολλά πρακτικά προβλήματα με λύσεις

  1. Τι δικαιώματα πρέπει να ορίσω ώστε ένα αρχείο να το επεξεργαστεί μέσω FTP;

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

    Δεδομένος:
    Υπάρχουν χρήστες στον διακομιστή ftp-χρήστηςΚαι Απάχηςκαι ομάδα ομάδα, στο οποίο είναι συνδεδεμένος ο χρήστης ftp-χρήστης.
    Κάτοχος αρχείου - Απάχης, όνομα ομάδας - ομάδα.
    Είναι απαραίτητο να παρέχεται η δυνατότητα επεξεργασίας του αρχείου και των σεναρίων PHP (χρήστης Απάχης), και πελάτη FTP (χρήστης ftp-χρήστης). Ωστόσο, οποιαδήποτε άλλη πρόσβαση θα πρέπει να απαγορεύεται για λόγους ασφαλείας.

    Λύση:
    Άδειες κατόχου: αφού ο κάτοχος είναι ο ίδιος χρήστης που εκτελεί τα σενάρια PHP (σε αυτό το παράδειγμα Απάχης), τότε πρέπει να του παραχωρηθούν δικαιώματα ανάγνωσης (4) και επανεγγραφής (2) - για να εκτελέσει τον κώδικα PHP και να ξαναγράψει το αρχείο (για παράδειγμα, κατά την ενημέρωση σεναρίων). Επομένως, το πρώτο ψηφίο είναι 2+4=6.
    Δικαιώματα ομάδας ftp-χρήστηςομάδα), που σημαίνει ότι τα μέλη της ομάδας χρειάζονται δικαιώματα ανάγνωσης και εγγραφής, π.χ. 2+4=6.

    660 και εκτελέστε την εντολή chmod:

    Chmod 660 index.php

  2. Ποια δικαιώματα πρέπει να οριστούν για έναν κατάλογο προκειμένου να επεξεργαστείτε αρχεία μέσα σε αυτόν μέσω FTP;

    Δεδομένος:
    Κάτοχος καταλόγου - Απάχης, όνομα ομάδας - ομάδα.

    Λύση:
    Άδειες κατόχου: ας πούμε ότι ο ιδιοκτήτης (σε σε αυτήν την περίπτωσηΣενάρια PHP που "αντιπροσωπεύονται" από τον διακομιστή ιστού) για κανονική λειτουργίαπρέπει να έχει προγράμματα πλήρης πρόσβασησε αρχεία μέσα στον κατάλογο, επομένως η τιμή είναι 1+2+4=7.
    Δικαιώματα ομάδας: Η σύνδεση FTP εκτελείται ως χρήστης ftp-χρήστης, που είναι μέρος της ομάδας αρχείων ( ομάδα), που σημαίνει ότι τα μέλη της ομάδας χρειάζονται δικαιώματα ανάγνωσης και εκτέλεσης (αλλαγή των περιεχομένων του καταλόγου), π.χ. 1+4=5.
    Δικαιώματα πρόσβασης για άλλους χρήστες: γιατί τα πάντα απαραίτητα δικαιώματαΗ πρόσβαση έχει ήδη παραχωρηθεί, δεν χρειάζεται να εκχωρήσετε κάτι άλλο, οπότε το αφήνουμε στο 0.

    Συνθέτουμε τον τελικό αριθμό από μεμονωμένες τιμές και παίρνουμε 750 και εκτελέστε την εντολή chmod:

    Chmod 750 δημοσιεύτηκε

Σχόλιο: Κατά την αλλαγή του ονόματος κατόχου, του ονόματος ομάδας ή κατά την κατάργηση χρηστών από μια ομάδα ή την προσθήκη νέων χρηστών σε μια ομάδα ενός αρχείου ή καταλόγου, μπορεί να χρειαστεί να αλλάξετε τα δικαιώματα όπως περιγράφεται παραπάνω.
ΠροσοχήΣημείωση: Τα ονόματα χρηστών, τα ονόματα ομάδων και οι πληροφορίες μέλους ομάδας χρηστών στα παραδείγματα που εμφανίζονται ενδέχεται να διαφέρουν από την πραγματική ρύθμιση του διακομιστή σας. Πίσω σωστή πληροφόρησηΕπικοινωνήστε με τον διαχειριστή του συστήματός σας.

Κοινόχρηστη φιλοξενία

Ορισμένοι πάροχοι φιλοξενίας θέτουν περιορισμούς στα δικαιώματα που μπορούν να εκχωρηθούν σε αρχεία και καταλόγους. Εάν επιχειρήσετε να ορίσετε δικαιώματα εκτός αυτών των περιορισμών, ενδέχεται να προκληθεί σφάλμα διακομιστή 500 ή 403. Ελέγξτε τις πολιτικές του παρόχου φιλοξενίας πριν ορίσετε τα δικαιώματα. Για να μην εξαρτάται από περιορισμούς εικονική φιλοξενία, χρησιμοποιήστε το επισημασμένο ή δικός διακομιστήςγια να εγκαταστήσετε σενάρια WebAsyst.

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

Η σωστή ρύθμιση δικαιωμάτων πρόσβασης σάς επιτρέπει να αυξήσετε την αξιοπιστία του συστήματος προστατεύοντας σημαντικά αρχεία συστήματος από αλλαγές ή διαγραφές. Τέλος, δεδομένου ότι οι εξωτερικές συσκευές είναι επίσης αντικείμενα του συστήματος αρχείων από τη σκοπιά του συστήματος, ο μηχανισμός δικαιωμάτων πρόσβασης χρησιμοποιείται επίσης για τον έλεγχο της πρόσβασης στις συσκευές.

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

Οποιοδήποτε αρχείο στο σύστημα έχει έναν κάτοχο - έναν από τους χρήστες. Ωστόσο, κάθε αρχείο ανήκει ταυτόχρονα σε μια συγκεκριμένη ομάδα χρηστών του συστήματος.

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

Για να αποκτήσετε πληροφορίες άδειας, μπορείτε να χρησιμοποιήσετε την εντολή ls με το διακόπτη -l. Αυτό θα εμφανίζει λεπτομερείς πληροφορίες σχετικά με αρχεία και καταλόγους, οι οποίοι, μεταξύ άλλων, θα αντικατοπτρίζουν τα δικαιώματα πρόσβασης. Ας δούμε μερικά παραδείγματα:

drwx------ 2 φοιτητής 4096 Φεβ 19 17:30 Έγγραφα

Rw-r--r-- 1 μαθητής 0 Φεβ 20 08:03 file.txt

drwx------ 2 μαθητής φοιτητής 4096 Φεβ 19 15:59 tmp

drwxr-xr-x 4 root root 4096 15 Φεβρουαρίου 08:32 cache

drwxr-xr-x 11 root root 4096 9 Φεβρουαρίου 15:29 lib

drwxr-xr-x 6 root root 4096 20 Φεβρουαρίου 07:32 κλείδωμα

drwxr-xr-x 14 root root 4096 20 Φεβρουαρίου 07:32 καταγραφή

lrwxrwxrwx 1 root root 10 Φεβρουαρίου 5 13:22 mail -> spool/mail

drwxr-xr-x 5 root root 4096 17 Φεβρουαρίου 03:38 τρέχει

drwxr-xr-x 6 root root 4096 20 Φεβρουαρίου 07:32 καρούλι

drwxr-xr-x 3 root root 4096 15 Φεβρουαρίου 09:24 www

Για το αρχείο ~/file.txt, το πρώτο πεδίο στη γραμμή ("-rw-r--r--") αντικατοπτρίζει τα δικαιώματα. Το τρίτο πεδίο υποδεικνύει τον κάτοχο του αρχείου (μαθητής), το τέταρτο πεδίο υποδεικνύει την ομάδα στην οποία ανήκει αυτό το αρχείο (μαθητής). Το τελευταίο πεδίο είναι το όνομα αρχείου (file.txt). Άλλα πεδία περιγράφονται στην τεκμηρίωση για την εντολή ls.

Αυτό το αρχείο ανήκει στον χρήστη μαθητή και στην ομάδα σπουδαστών. Η ακολουθία "-rw-r--r--" εμφανίζει τα δικαιώματα πρόσβασης για τον χρήστη στον οποίο ανήκει το αρχείο, τους χρήστες που είναι μέλη της ομάδας κατοχής και για όλους τους άλλους χρήστες.

Ο πρώτος χαρακτήρας αυτής της σειράς ("-") υποδεικνύει τον τύπο αρχείου. Ο χαρακτήρας "-" σημαίνει ότι είναι ένα κανονικό αρχείο, το οποίο δεν είναι κατάλογος (στην περίπτωση αυτή ο πρώτος χαρακτήρας θα ήταν "d"), συμβολικός σύνδεσμος(θα ήταν "l") ή ένα ψευδο-αρχείο συσκευής (θα ήταν "c" ή "b"). Οι επόμενοι τρεις χαρακτήρες ("rw-") αντιπροσωπεύουν τα δικαιώματα πρόσβασης που παρέχονται στον κάτοχο μαθητή. Το σύμβολο "r" είναι συντομογραφία για ανάγνωση (Αγγλικά ανάγνωση) και "w" είναι συντομογραφία για εγγραφή (Αγγλική εγγραφή). Έτσι, ο μαθητής έχει το δικαίωμα να διαβάσει και να γράψει (τροποποιήσει) το αρχείο file.txt.

Μετά τον χαρακτήρα "w" θα μπορούσε να υπάρχει ένας χαρακτήρας "x", που υποδεικνύει την ύπαρξη δικαιωμάτων εκτέλεσης (Αγγλικά execute, execute) του αρχείου. Ωστόσο, ο χαρακτήρας "-" αντί για το "x" εδώ υποδεικνύει ότι ο μαθητής δεν έχει άδεια να εκτελέσει αυτό το αρχείο. Αυτό είναι λογικό αφού το file.txt δεν είναι πρόγραμμα. Ταυτόχρονα, ένας χρήστης που έχει εγγραφεί στο σύστημα ως φοιτητής μπορεί, εάν το επιθυμεί, να παραχωρήσει στον εαυτό του το δικαίωμα να εκτελέσει αυτό το αρχείο, αφού είναι ο κάτοχός του. Για να αλλάξετε τα δικαιώματα ενός αρχείου ή καταλόγου, χρησιμοποιήστε την εντολή chmod.

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

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

Για το ~/Documents, το πρώτο πεδίο περιέχει "drwx------". Αυτός είναι ένας κατάλογος (όπως υποδεικνύεται από τον πρώτο χαρακτήρα - το γράμμα "d"), ο κάτοχος του οποίου (μαθητής) μπορεί να διαβάσει, να γράψει και να πλοηγηθεί. Άλλοι χρήστες - τόσο μέλη της ομάδας σπουδαστών όσο και όλοι οι άλλοι - δεν έχουν κανένα δικαίωμα και δεν μπορούν ούτε να πλοηγηθούν ούτε να διαβάσουν τα περιεχόμενα αυτού του καταλόγου, πόσο μάλλον να γράψουν οτιδήποτε σε αυτόν.

Για το /var/adm, το πρώτο πεδίο περιέχει "drwxr-xr-x". Αυτός είναι ένας κατάλογος του οποίου ο ιδιοκτήτης - root - έχει δικαιώματα "rwx" - π.χ. μπορεί να διαβάσει, να γράψει και να πλοηγηθεί σε αυτόν τον κατάλογο. Οι χρήστες από τη ριζική ομάδα έχουν δικαιώματα "r-x" - π.χ. μπορεί να διαβάσει τα περιεχόμενα του καταλόγου και να πλοηγηθεί σε αυτόν. Όλοι οι άλλοι χρήστες έχουν τα ίδια δικαιώματα.

Για το /var/empty, το πρώτο πεδίο περιέχει "dr-xr-xr-x". Αυτός είναι ένας κατάλογος του οποίου ο ιδιοκτήτης (root), η ομάδα (root) και όλοι οι άλλοι χρήστες έχουν τα ίδια δικαιώματα "r-x" - π.χ. μπορεί να διαβάσει τα περιεχόμενα του καταλόγου και να μετακινηθεί σε αυτόν, που αντιστοιχεί στο όνομα του καταλόγου (κενό). Ωστόσο, αξίζει να σημειωθεί ότι ο root μπορεί να γράψει οτιδήποτε σε αυτόν τον κατάλογο, καθώς τα δικαιώματα πρόσβασης δεν ισχύουν για τον υπερχρήστη.

Για το /var/nobody, το πρώτο πεδίο περιέχει "drwxr-x---". Αυτός είναι ένας κατάλογος του οποίου ο ιδιοκτήτης - root - έχει δικαιώματα "rwx". Η ομάδα - κανείς - δεν έχει δικαιώματα "r-x", δηλ. μπορεί να πλοηγηθεί σε έναν κατάλογο και να τον διαβάσει. Άλλοι χρήστες δεν έχουν πρόσβαση στον κατάλογο. Αυτό συμβαίνει επειδή κανείς δεν είναι ψευδο-χρήστης και το /var/nobody είναι ο αρχικός του κατάλογος (δείτε την καταχώρηση στο /etc/passwd). Αυτός είναι ένας ανίσχυρος χρήστης και δεν έχει καν το δικαίωμα να γράψει οτιδήποτε στον οικιακό του κατάλογο.

Για το /var/mail, το πρώτο πεδίο είναι "lrwxrwxrwx". Ο πρώτος χαρακτήρας - "l" - σημαίνει συμβολικό σύνδεσμο. Σύμφωνα με την έξοδο του ls -l, αυτός ο σύνδεσμος είναι στο /var/spool/mail (η διαδρομή του spool/mail είναι σχετική με τον κατάλογο όπου βρίσκεται ο σύνδεσμος - π.χ. /var). Τα δικαιώματα σε ένα αρχείο ή κατάλογο που αναφέρεται από έναν συμβολικό σύνδεσμο καθορίζονται από τα δικαιώματα του ίδιου του αρχείου και όχι από τα δικαιώματα του συνδέσμου. Άρα οι άδειες δεν σημαίνουν τίποτα εδώ.

Δύο ειδικές περιπτώσεις είναι επίσης ορατές. Το πρώτο είναι /var/tmp. Τα δικαιώματα για αυτόν τον κατάλογο είναι "rwxrwxrwt". Το τελευταίο "t" σημαίνει την παρουσία μιας πρόσθετης σημαίας στον κατάλογο - το λεγόμενο. κολλώδες κομμάτι. Αυτός είναι ο κατάλογος για προσωρινά αρχείακαι όλοι οι χρήστες επιτρέπεται να γράφουν σε αυτό. Ωστόσο, οι χρήστες μπορούν μόνο να διαγράψουν από αυτό δικα τουςαρχεία.

Η δεύτερη περίπτωση είναι /bin/su . Εδώ τα δικαιώματα είναι "rws--x---". Ο κάτοχος του αρχείου (root) μπορεί να το διαβάσει, να γράψει και να το εκτελέσει. Οι χρήστες που περιλαμβάνονται στην ομάδα τροχών μπορούν να τρέξουν μόνο αυτό το αρχείο, δεν έχουν το δικαίωμα να το διαβάσουν, πόσο μάλλον να το γράψουν. Όλοι οι άλλοι χρήστες δεν έχουν κανένα δικαίωμα σε αυτό το αρχείο. Το γράμμα "s" αντί για "x" για τα δικαιώματα κατόχου αρχείων έχει ειδική σημασία. Αυτό είναι το λεγόμενο SUID bit και η παρουσία του σημαίνει ότι αυτό το πρόγραμμα δεν θα ξεκινήσει με δικαιώματα χρήστη, αλλά με δικαιώματα του κατόχου του αρχείου. Με άλλα λόγια, ένας μη προνομιούχος χρήστης (μέλος της ομάδας τροχών!) μπορεί να τρέξει αυτό το πρόγραμμα και να αποκτήσει τα δικαιώματα του κατόχου του - π.χ. υπερχρήστης.

Όπως αναφέρθηκε, δεν μπορείτε να συνδεθείτε στο σύστημα εξ αποστάσεως με δικαιώματα υπερχρήστη. Το πρόγραμμα /bin/su είναι ένας τρόπος για να ανυψώσετε έναν τυπικό χρήστη σε διαχειριστή συστήματος. Αυτός είναι ο λόγος για τον οποίο η εκτέλεσή του επιτρέπεται μόνο σε χρήστες από την ομάδα τροχών.

Η δυνατότητα πρόσβασης σε ένα αρχείο εξαρτάται επίσης από τα δικαιώματα πρόσβασης στον κατάλογο στον οποίο βρίσκεται το αρχείο. Για παράδειγμα, ακόμα κι αν τα δικαιώματα αρχείου έχουν οριστεί σε "rwxrwxrwx", άλλοι χρήστες δεν μπορούν να έχουν πρόσβαση στο αρχείο εκτός εάν έχουν δικαιώματα εκτέλεσης για τον κατάλογο στον οποίο βρίσκεται το αρχείο. Με άλλα λόγια, για να επωφεληθείτε από τα δικαιώματα που έχετε σε ένα αρχείο, πρέπει να έχετε δικαιώματα εκτέλεσης σε όλους τους καταλόγους κατά μήκος της διαδρομής του αρχείου. Για παράδειγμα, ο ψευδοχρήστης nobody δεν θα μπορεί να διαβάσει το αρχείο ~/file.txt, παρά το γεγονός ότι τα δικαιώματα σε αυτό το αρχείο είναι "rw-r--r--", επειδή Τα δικαιώματα πρόσβασης στον αρχικό κατάλογο /home/student/ είναι "rwx------".

Η ρύθμιση και η διατήρηση των βέλτιστων δικαιωμάτων πρόσβασης είναι μία από τις πιο σημαντικές εργασίες διαχειριστής συστήματος. Τα δικαιώματα πρέπει να είναι επαρκή για την κανονική λειτουργία των χρηστών και των προγραμμάτων, αλλά όχι μεγαλύτερα από τα απαραίτητα για μια τέτοια λειτουργία. Οι διανομές ALT Linux έχουν ένα καλά μελετημένο σύστημα δικαιωμάτων (προκαθορισμένες ομάδες, ψευδο-χρήστες για διάφορα προγράμματα διακομιστή, δικαιώματα πρόσβασης για αρχεία συστήματος και καταλόγους). Πριν κάνετε σημαντικές αλλαγές σε αυτό το σύστημα, καλό είναι να κατανοήσετε τη λογική του και να μάθετε εάν υπάρχει άλλος τρόπος για να επιτευχθεί ο επιθυμητός στόχος.

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

Κάθε αρχείο έχει ένα σύνολο δικαιωμάτων, που αντιπροσωπεύονται από εννέα bit λειτουργίας. Καθορίζει ποιοι χρήστες έχουν το δικαίωμα να διαβάσουν, να γράψουν ή να εκτελέσουν ένα αρχείο. Μαζί με τα άλλα τρία bit που επηρεάζουν την εκκίνηση εκτελέσιμα αρχεία, σχηματίζεται αυτό το σύνολο κωδικός λειτουργίας πρόσβασηςστο αρχείο. Δώδεκα bit λειτουργίας αποθηκεύονται σε ένα πεδίο 16 bit inodeμαζί με τέσσερις επιπλέον κομμάτια, ορίζοντας τον τύπο αρχείου.

Τα τελευταία τέσσερα bit ορίζονται όταν δημιουργείται το αρχείο και δεν μπορούν να αλλάξουν. Τα bit λειτουργίας μπορούν να αλλάξουν από τον κάτοχο του αρχείου ή τον υπερχρήστη χρησιμοποιώντας την εντολή chmod("αλλαγή λειτουργίας" - αλλαγή τρόπου λειτουργίας). Η προβολή των τιμών αυτών των bit γίνεται χρησιμοποιώντας την εντολή ls.

Bit SUID και SGID

Τα bit που αντιστοιχούν στις οκταδικές τιμές 4000 και 2000 στον κωδικό τρόπου πρόσβασης είναι τα bit αλλαγής αναγνωριστικού χρήστη (SUID) και αλλαγής αναγνωριστικού ομάδας (SGID). Επιτρέπουν στα προγράμματα να έχουν πρόσβαση σε αρχεία και διεργασίες που διαφορετικά δεν θα ήταν προσβάσιμες από τον χρήστη που εκτελεί αυτά τα προγράμματα. Περισσότερες λεπτομέρειες αυτόν τον μηχανισμόπεριγράφεται στην παράγραφο 3.1.

Εάν το bit SGID έχει οριστεί για έναν κατάλογο, τότε τα αρχεία που δημιουργούνται σε αυτόν θα λάβουν το αναγνωριστικό ομάδας του καταλόγου κατά την εκκίνηση, αντί για το αναγνωριστικό ομάδας του κατόχου του αρχείου. Το κάνει πιο εύκολο μοιρασιάσε καταλόγους για χρήστες που ανήκουν στην ίδια ομάδα. Αυτή η δυνατότητα δεν υποστηρίζεται σε όλες τις εκδόσεις του UNIX (αυτό δεν ισχύει για εμάς συστήματα δοκιμής). Θα πρέπει επίσης να σημειωθεί ότι η ρύθμιση του bit SGID για ένα εκτελέσιμο αρχείο αντικαθιστά την ίδια ρύθμιση για έναν κατάλογο.

Σε ορισμένα συστήματα, το bit SGID μπορεί να οριστεί για αρχεία που δεν είναι εκτελέσιμα. Αυτό ζητά ειδική λειτουργίααποκλεισμός αρχείων όταν ανοίγουν.

Κολλώδες κομμάτι

Το bit που έχει οκταδική τιμή 1000 στον κωδικό τρόπου πρόσβασης ονομάζεται sticky bit. Αυτό Καλό παράδειγμαπώς το UNIX αφήνει τα απομεινάρια του καθώς ωριμάζει, αλλά συνεχίζουν να ακολουθούν το σύστημα στο πέρασμά του. Συστήματα με μικρή μνήμη, όπως το PDP-11/70, όπου το UNIX λειτουργούσε στα πρώτα του χρόνια, απαιτούσαν μεμονωμένα προγράμματαέμενε συνεχώς στη μνήμη. Τότε το sticky bit ήταν πολύ σημαντικό, καθώς απαγόρευε την εκφόρτωση προγραμμάτων από τη μνήμη. Σήμερα, σε έναν κόσμο με μονάδες μνήμης 25 $ και γρήγορα οδηγοί δίσκωνΚανείς δεν χρειάζεται το sticky bit και οι σύγχρονοι πυρήνες απλώς το αγνοούν.

Εάν το sticky bit έχει οριστεί για έναν κατάλογο, τότε τα περισσότερα Εκδόσεις UNIXσας επιτρέπει να διαγράψετε και να μετονομάσετε τα αρχεία του μόνο εάν ο χρήστης είναι ο κάτοχος του καταλόγου, ο κάτοχος του αρχείου ή ο χρήστης root. Δεν αρκεί μόνο η άδεια εγγραφής σε έναν κατάλογο. Αυτό το μέτρο αποσκοπεί στη δημιουργία καταλόγων όπως / tmpπιο προστατευμένο.

Τα συστήματα Solaris και HP-UX δεν είναι τόσο αυστηρά όσον αφορά τους καταλόγους με το σετ sticky bit. Ένας χρήστης που έχει πρόσβαση εγγραφής σε έναν τέτοιο κατάλογο μπορεί να διαγράψει αρχεία από αυτόν, ακόμα κι αν δεν είναι ο κάτοχος.

Bits λειτουργίας

Τα εννέα bit λειτουργίας έχουν σχεδιαστεί για να προσδιορίζουν ποιος μπορεί να εκτελέσει ποιες λειτουργίες σε ένα αρχείο. Το UNIX δεν μπορεί να ορίσει bit δικαιωμάτων ανά χρήστη." Υπάρχουν διαφορετικά σύνολα (τριάδες) bit για τον κάτοχο του αρχείου, την ομάδα στην οποία ανήκει το αρχείο και άλλους χρήστες. Κάθε σύνολο αποτελείται από τρία bit: το read bit, το bit εγγραφής και το bit εκτέλεσης (για έναν κατάλογο, το τελευταίο ονομάζεται bit αναζήτησης).

Είναι βολικό να αναπαραστήσετε τη λειτουργία πρόσβασης στη φόρμα οκταδικός αριθμός, αφού κάθε ψηφίο σε αυτό αντιπροσωπεύεται από τρία bit. Τα τρία πιο σημαντικά bit (στον κωδικό τρόπου πρόσβασης αντιστοιχούν στις οκταδικές τιμές 400, 200 και 100) χρησιμοποιούνται για τον έλεγχο της πρόσβασης στο αρχείο από τον κάτοχό του. Τα δεύτερα τρία bit (40, 20 και 10) καθορίζουν την πρόσβαση για τους χρήστες της ομάδας. Τα τελευταία τρία bit (4, 2 και 1) καθορίζουν την πρόσβαση στο αρχείο από όλους τους άλλους χρήστες. Το πιο σημαντικό bit κάθε τριάδας είναι το bit ανάγνωσης, το μεσαίο bit είναι το bit εγγραφής και το λιγότερο σημαντικό bit είναι το bit εκτέλεσης.

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

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

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

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

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

Προβολή χαρακτηριστικών αρχείων

Το σύστημα αρχείων αποθηκεύει πληροφορίες για κάθε αρχείο σε μια δομή που ονομάζεται λαβή ευρετηρίου.Κάθε inode περιέχει περίπου σαράντα πεδία πληροφοριών, αλλά για το μεγαλύτερο μέροςχρησιμοποιούνται μόνο από τον πυρήνα. Ο διαχειριστής του συστήματος θα ενδιαφέρεται κυρίως για τον αριθμό σκληρούς συνδέσμους, κάτοχος, ομάδα, κωδικός άδειας, μέγεθος, χρόνος τελευταίας πρόσβασης, χρόνος τελευταίας τροποποίησης και τύπος αρχείου. Όλες αυτές οι πληροφορίες μπορούν να ληφθούν χρησιμοποιώντας την εντολή ls -1 .

Οι πληροφορίες ώρας αποθηκεύονται επίσης για κάθε αρχείο τελευταία αλλαγήιδιότητες, δηλ. το ίδιο το inode. Ονομα αυτής της ιδιότητας("ctime") προκαλεί σύγχυση σε πολλούς ανθρώπους επειδή πιστεύουν ότι είναι η στιγμή που δημιουργήθηκε το αρχείο. Στην πραγματικότητα, αποθηκεύει τον χρόνο τελευταίας αλλαγής ενός από τα χαρακτηριστικά του αρχείου (για παράδειγμα, κάτοχος, κωδικός λειτουργίας), αλλά όχι το περιεχόμενό του.

Ας δούμε ένα παράδειγμα:

% ls -1 /bin/sh

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

Πίνακας 5.2.Κωδικοποίηση τύπων αρχείων σε λίστα εντολών μεγάλομικρό

Τύπος αρχείου

Δημιουργήθηκε από την ομάδα

Αφαιρέθηκε με εντολή

Κανονικό αρχείο

συντάκτες, βλ., κ.λπ. .

Μkdir

Αρχείο συσκευής προσανατολισμένο σε byte

Μκουμπώ

rΜ

Αρχείο συσκευής με προσανατολισμό μπλοκ

Μκουμπώ

πρίζα (2)

Ονομασμένος σωλήνας

Οι επόμενοι εννέα χαρακτήρες σε αυτό το πεδίο είναι τρία σύνολα bit λειτουργίας. Στη λίστα της ομάδας lsαντιπροσωπεύονται από τα γράμματα r, w και x (ανάγνωση, εγγραφή και εκτέλεση, αντίστοιχα). Σε αυτήν την περίπτωση, ο κάτοχος έχει πλήρη δικαιώματα πρόσβασης στο αρχείο και οι άλλοι χρήστες έχουν μόνο δικαιώματα ανάγνωσης και εκτέλεσης.

Εάν είχε οριστεί το bit αλλαγής αναγνωριστικού χρήστη (SUID), τότε αντί για το γράμμα x που υποδεικνύει το δικαίωμα εκτέλεσης του κατόχου, θα υπήρχε ένα s. Εάν το bit του αναγνωριστικού ομάδας αλλαγής (SGID) είχε οριστεί, η ομάδα θα είχε επίσης ένα s αντί για ένα x. Τελευταίο κομμάτιη λειτουργία (άδεια εκτέλεσης για άλλους χρήστες) αντιπροσωπεύεται από το γράμμα t όταν έχει οριστεί το sticky bit για το αρχείο. Εάν το SUID/SGID ή τα sticky bit έχουν οριστεί αλλά το κατάλληλο bit προόδου δεν είναι, αυτά τα bit αντιπροσωπεύονται από τους χαρακτήρες S και T, αντίστοιχα, υποδεικνύοντας ότι έχει προκύψει σφάλμα και ότι αυτά τα χαρακτηριστικά αγνοούνται.

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

Κάθε κατάλογος έχει τουλάχιστον δύο σκληρούς συνδέσμους: έναν από τον γονικό κατάλογο και έναν από ειδικό αρχείο"." μέσα στον ίδιο τον κατάλογο. Συμβολικοί σύνδεσμοιδεν λαμβάνονται υπόψη στον μετρητή.

Τα επόμενα δύο πεδία είναι ο κάτοχος και η ομάδα του αρχείου. Σε αυτήν την περίπτωση, ο κάτοχος του αρχείου είναι ο χρήστης ρίζα, και το αρχείο ανήκει στην ομάδα αποθήκη. Στην πραγματικότητα, ο πυρήνας αποθηκεύει αυτά τα δεδομένα όχι ως συμβολοσειρές, αλλά ως αναγνωριστικά χρήστη και ομάδας. Εάν δεν μπορούν να προσδιοριστούν οι εκδόσεις των χαρακτήρων των ονομάτων, οι αριθμοί θα εμφανίζονται σε αυτά τα πεδία. Αυτό μπορεί να συμβεί εάν μια καταχώρηση χρήστη ή ομάδας έχει διαγραφεί από το αρχείο / και τα λοιπά/ passwdή / και τα λοιπά/ ομάδααντίστοιχα. Είναι επίσης πιθανό να υπήρξε σφάλμα στη βάση δεδομένων διαχείρισης δικτύου (βλ. Κεφάλαιο 18).

Αυτό ακολουθείται από ένα πεδίο που εμφανίζει το μέγεθος του αρχείου σε byte. Το εν λόγω αρχείο έχει μέγεθος 85924 byte, δηλ. σχεδόν 84 KB. Το παρακάτω δείχνει την ημερομηνία της τελευταίας τροποποίησης: 27 Σεπτεμβρίου 1997. Το τελευταίο πεδίο της καταχώρισης περιέχει το όνομα αρχείου: / αποθήκη/ SH.

Για ένα αρχείο συσκευής, η εντολή Is παράγει ελαφρώς διαφορετικές πληροφορίες. Για παράδειγμα:

% ls -l /dev/ttya

Βασικά τα πεδία είναι τα ίδια, αλλά αντί για το μέγεθος σε byte, εμφανίζονται οι κύριοι και δευτερεύοντες αριθμοί συσκευής. Ονομα / dev/ ttyaαναφέρεται στην πρώτη συσκευή που ελέγχεται από το πρόγραμμα οδήγησης συσκευής 12 (σε αυτό το σύστημα, αυτό είναι το πρόγραμμα οδήγησης τερματικού).

Κατά την αναζήτηση για σκληρούς συνδέσμους, η εντολή μπορεί να είναι χρήσιμη ls - Εγώ, το οποίο εμφανίζει τον αριθμό inode για κάθε αρχείο. Χωρίς να μπούμε στις λεπτομέρειες της υλοποίησης του συστήματος αρχείων, ας πούμε ότι αυτός ο αριθμός είναι το ευρετήριο ενός πίνακα που παραθέτει όλα τα αρχεία του συστήματος. Σκληροί σύνδεσμοι, δείχνοντας το ίδιο αρχείο θα έχει τον ίδιο αριθμό.

Το σύστημα παρακολουθεί αυτόματα τον χρόνο τροποποίησης, τον αριθμό των συνδέσμων και το μέγεθος του αρχείου. Από την άλλη πλευρά, τα δικαιώματα αρχείων και τα αναγνωριστικά ιδιοκτησίας αλλάζουν ρητά χρησιμοποιώντας τις εντολές chmod, τσόουνΚαι chgrp.

Πρόσθετες σημαίες στο FreeBSD

Το FreeBSD και άλλα συστήματα που έχουν δημιουργηθεί στον πυρήνα 4.4BSD έχουν έναν αριθμό πρόσθετων σημαιών που μπορούν να οριστούν σε αρχεία. Αυτές οι σημαίες σχετίζονται με εκτεταμένη σημασιολογία συστήματος αρχείων. Για παράδειγμα, η σημαία sappnd κάνει το αρχείο να προσαρτάται μόνο (αυτό μπορεί να είναι χρήσιμο κατά τη δημιουργία αρχείων καταγραφής). Και χάρη στη σημαία schg, το αρχείο γίνεται αμετάβλητο και μη διαγράψιμο. Η ομάδα θα σας βοηθήσει να μάθετε για την παρουσία αυτών των αρχείων ls - ιδού:

% ls-Λοιπόν /πυρήνας

Μπορείτε να διαχειριστείτε σημαίες χρησιμοποιώντας την εντολή chflag:

# chflags noschg /πυρήνα

# ls -lo /πυρήνα

Μπορείτε να λάβετε μια λίστα με τις διαθέσιμες σημαίες στη διαδραστική σελίδα του εγχειριδίου chflag(μεγάλο).

Εντολή chmod: αλλαγή δικαιωμάτων

Ο κωδικός λειτουργίας πρόσβασης αρχείου μπορεί να αλλάξει χρησιμοποιώντας την εντολή chmod. Αυτό το δικαίωμα παραχωρείται μόνο στον κάτοχο και χρήστη του αρχείου ρίζα. Στα πρώιμα συστήματα UNIX, ο κώδικας προσδιορίστηκε ως οκταδικός αριθμός. ΣΕ σύγχρονες εκδόσειςΥποστηρίζεται επίσης ένα σύστημα μνημονικών σημειώσεων. Η πρώτη μέθοδος είναι πιο βολική για τον διαχειριστή του συστήματος, αλλά σε αυτήν την περίπτωση μπορείτε να ορίσετε μόνο την απόλυτη τιμή της λειτουργίας πρόσβασης. Και χρησιμοποιώντας τη μνημονική σύνταξη, μπορείτε να διαγράψετε και να ορίσετε μεμονωμένα bits λειτουργίας.

Το πρώτο όρισμα της εντολής chmodείναι μια προδιαγραφή δικαιωμάτων πρόσβασης. Το δεύτερο και τα επόμενα επιχειρήματα είναι τα ονόματα των αρχείων των οποίων τα δικαιώματα πρόσβασης πρόκειται να αλλάξουν. Όταν χρησιμοποιείτε οκταδική σημείωση, το πρώτο ψηφίο αναφέρεται στον κάτοχο, το δεύτερο στην ομάδα και το τρίτο στους υπόλοιπους χρήστες. Εάν πρέπει να καθοριστούν SUID/SGID ή αυτοκόλλητα bit, θα πρέπει να καθοριστούν τέσσερα οκταδικά ψηφία αντί για τρία. Το πρώτο ψηφίο σε αυτήν την περίπτωση θα αντιστοιχεί σε τρία ειδικά bit.

Στον πίνακα Το σχήμα 5.3 δείχνει τους οκτώ πιθανούς συνδυασμούς για κάθε σύνολο τριών bit, όπου τα σύμβολα r, w και x αντιπροσωπεύουν ανάγνωση, εγγραφή και εκτέλεση, αντίστοιχα.

Τραπέζι5.3 Κωδικοί πρόσβασης εντολών chmod

Οκταδικός αριθμός

Δυάδικος αριθμός

Μάσκα λειτουργίας πρόσβασης

Για παράδειγμα, η εντολή chmod 711 myprogπαραχωρεί στον κάτοχο όλα τα δικαιώματα και σε όλους τους άλλους χρήστες μόνο δικαιώματα εκτέλεσης.

Στον πίνακα Το Σχήμα 5.4 παρέχει μερικά παραδείγματα μνημονικών προδιαγραφών.

Πίνακας 5.4Παραδείγματα μνημονικών προδιαγραφών εντολών chmod

Προσδιορισμός

Ο κάτοχος του αρχείου έχει επιπλέον το δικαίωμα εκτέλεσης

Ο κάτοχος και η ομάδα έχουν πρόσβαση ανάγνωσης/εγγραφής και σε άλλους χρήστες παρέχεται πρόσβαση ανάγνωσης.

Όλοι οι χρήστες στερούνται των δικαιωμάτων εκτέλεσης

Ο κάτοχος και η ομάδα λαμβάνουν άδεια ανάγνωσης/εκτέλεσης και ορίζεται επίσης το bit SUID. Σε άλλους χρήστες απαγορεύεται η πρόσβαση στο αρχείο

Στην ομάδα εκχωρούνται τα ίδια δικαιώματα με τον κάτοχο

Το σύμβολο u ("χρήστης") υποδηλώνει τον κάτοχο του αρχείου, το σύμβολο g ("ομάδα") - μια ομάδα, το σύμβολο o ("άλλοι") - άλλους χρήστες, το σύμβολο a ("όλοι") - όλοι οι χρήστες με τη μία.

chown και chgrp εντολές: αλλαγή ιδιοκτησίας

Ομάδα τσόουνπροορίζεται για την αλλαγή του κατόχου ενός αρχείου και της εντολής chgrp— για να αλλάξετε την ομάδα στην οποία ανήκει το αρχείο. Το πρώτο όρισμα και των δύο εντολών είναι το όνομα του νέου κατόχου ή νέα ομάδααντίστοιχα. Για να εκτελέσετε την εντολή chgrp, πρέπει είτε να είστε ο κάτοχος του αρχείου και να είστε μέλος της εκχωρημένης ομάδας είτε να είστε χρήστης ρίζα.

Στις περισσότερες εκδόσεις των εντολών τσόουνΚαι chgrpσημαία που παρέχεται - R, το οποίο καθορίζει μια αλλαγή κατόχου ή ομάδας όχι μόνο του ίδιου του καταλόγου, αλλά και όλων των υποκαταλόγων και των αρχείων του. Για παράδειγμα, η σειρά των εντολών:

# chmod 755~ ματ

# chown -R ματ~ ματ

# chgrp -R προσωπικό~ ματ

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

# τσόουν - Rματ ~ ματ/.*

Το καθορισμένο μοτίβο αναζήτησης ταιριάζει επίσης με το αρχείο ~ ματ/.., Ως αποτέλεσμα, η εντολή θα αλλάξει επίσης τον κάτοχο του γονικού καταλόγου.

Σε ορισμένα συστήματα, χρησιμοποιώντας την εντολή τσόουνΜπορείτε να αλλάξετε τον κάτοχο και την ομάδα ενός αρχείου ταυτόχρονα. Η σύνταξή του σε αυτή την περίπτωση είναι η εξής:

τσόουν χρήστης:αρχείο ομάδας...

Για παράδειγμα:

# τσόουν - Rματ: προσωπικό~ ματ

Οι εκδόσεις του UNIX που ανήκουν στην οικογένεια System V συχνά επιτρέπουν στους χρήστες να παραιτηθούν από την ιδιοκτησία των αρχείων τους χρησιμοποιώντας την εντολή τσόουν, ενώ στα συστήματα BSD η εντολή τσόουνμπορεί να εκτελεστεί μόνο από τον υπερχρήστη. Η πρακτική δείχνει ότι η δυνατότητα ελεύθερα αλλαγής της ιδιοκτησίας των αρχείων οδηγεί σε πολλά προβλήματα, ιδίως σε υπερβολική ποσοστώσεις δίσκου. Είναι καλύτερο να επιτρέπεται μόνο ο χρήστης να εκτελέσει αυτήν την εντολή ρίζα.

Εντολή Umask: Ορίστε τυπικά δικαιώματα

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

Τραπέζι5.5 Σχέδιο κωδικοποίησης τιμών umask

Οκταδικός αριθμός

Δυάδικος αριθμός

Μάσκα λειτουργίας πρόσβασης

Για παράδειγμα, η εντολή umask 027 παραχωρεί όλα τα δικαιώματα στον κάτοχο του αρχείου, εμποδίζει την ομάδα να διαβάσει το αρχείο και δεν εκχωρεί κανένα δικαίωμα σε άλλους χρήστες. Προεπιλεγμένη τιμή umaskισούται, κατά κανόνα, με 022, δηλ. Μόνο ο κάτοχός του επιτρέπεται να τροποποιεί ένα αρχείο.

Δεν υπάρχει τρόπος να αναγκάσετε τον χρήστη να προσκολληθεί συγκεκριμένο νόημα umask, αφού μπορεί να το αλλάξει ανά πάσα στιγμή. Ωστόσο, είναι δυνατό να ορίσετε μια τυπική τιμή umaskσε αυτά τα αντίγραφα αρχείων . cshrcΚαι . Προφίλ, τα οποία παρέχονται σε νέους χρήστες του συστήματος.



Έχετε ερωτήσεις;

Αναφέρετε ένα τυπογραφικό λάθος

Κείμενο που θα σταλεί στους συντάκτες μας: