Έχω λάβει ένα μάθημα για το Linux για τους τελευταίους μήνες και μια πτυχή του Linux που πάντα με σύγχυση ήταν πώς οι άδειες λειτουργούσαν. Για παράδειγμα, κατά τη μεταφόρτωση ενός αρχείου στο διακομιστή ιστού μου μία φορά και τη λήψη ενός σφάλματος, μου είπαν από τον οικοδεσπότη Ιστού μου να αλλάξει τα δικαιώματα αρχείων στο 755.
Δεν είχα ιδέα τι σήμαινε αυτό, παρόλο που η αλλαγή των αδειών έθεσε το πρόβλημα. Έχω συνειδητοποιήσει τώρα ότι τα δικαιώματα Linux δεν είναι όλα τόσο περίπλοκα, απλά πρέπει να καταλάβετε το σύστημα. Σε αυτό το άρθρο, θα μιλήσω για δικαιώματα Linux σε υψηλό επίπεδο και θα σας δείξω πώς να χρησιμοποιήσετε την εντολή chmod για να αλλάξετε δικαιώματα για αρχεία και φακέλους.
Δικαιώματα και επίπεδα Linux
Στο Linux, υπάρχουν βασικά τρία δικαιώματα που κανονικά θα πρέπει να ανησυχείτε: να διαβάσετε, να γράψετε και να εκτελέσετε. Και τα τρία από αυτά είναι αρκετά αυτονόητα. Τώρα, όταν αυτά τα δικαιώματα εφαρμόζονται σε ένα αρχείο, εφαρμόζονται σε επίπεδα.
Υπάρχουν τρία επίπεδα δικαιωμάτων στο Linux: ιδιοκτήτης, ομάδα και άλλα. Ο ιδιοκτήτης είναι ο χρήστης που κατέχει το αρχείο / φάκελο, η ομάδα περιλαμβάνει άλλους χρήστες στην ομάδα του αρχείου και άλλοι απλώς εκπροσωπούν όλους τους άλλους χρήστες που δεν είναι ιδιοκτήτες ή στην ομάδα.
Η ανάγνωση, η εγγραφή και η εκτέλεση εκπροσωπούνται είτε ως συμβολικοί χαρακτήρες είτε ως οκταδικοί αριθμοί. Για παράδειγμα, εάν κάνετε ένα ls -l σε έναν κατάλογο με κάποια αρχεία, θα δείτε την συμβολική απεικόνιση χαρακτήρων των δικαιωμάτων.
Τα δικαιώματα είναι γραμμένα ως εξής: το πρώτο bit είναι είτε μια παύλα είτε το γράμμα d. Η παύλα σημαίνει ότι είναι ένα αρχείο και το d αντιπροσωπεύει τον κατάλογο. Σημειώστε ότι το πρώτο bit μπορεί επίσης να είναι ένα l εάν το όνομα του αρχείου είναι ένας σύνδεσμος. Στη συνέχεια, υπάρχουν τρεις ομάδες τριών μπιτς. Το πρώτο bit σε κάθε ομάδα είναι για ανάγνωση, το δεύτερο bit είναι για εγγραφή και το τρίτο κομμάτι είναι για εκτέλεση. Τα πρώτα τρία bits είναι για τον ιδιοκτήτη, τα δεύτερα τρία bits είναι για την ομάδα και τα τρίτα τρία bits για άλλα. Ακολουθεί μια πιο οπτική εξήγηση.
Εάν δείτε μια παύλα στη θέση ενός γράμματος, αυτό σημαίνει ότι ο ιδιοκτήτης, η ομάδα ή όλοι οι άλλοι χρήστες δεν έχουν αυτήν την άδεια. Στο παραπάνω παράδειγμα, ο ιδιοκτήτης, η ομάδα και όλοι οι άλλοι έχουν διαβάσει δικαιώματα εγγραφής και εκτέλεσης.
Αν κοιτάξετε την έξοδο από την εντολή ls -l, θα παρατηρήσετε ότι το αρχείο κειμένου πρακτικής μου έχει τα ακόλουθα δικαιώματα:
-rw-rw-rw-
Αυτό σημαίνει ότι όλοι έχουν μόνο δικαιώματα ανάγνωσης / εγγραφής για το αρχείο. Ακολουθεί ένα άλλο παράδειγμα:
drwxr - r--
Εξετάζοντας το πρώτο bit, μπορούμε να δούμε ότι τα δικαιώματα είναι για έναν κατάλογο. Ο ιδιοκτήτης έχει δικαιώματα ανάγνωσης / εγγραφής / εκτέλεσης, αλλά η ομάδα και άλλοι χρήστες έχουν μόνο δικαίωμα ανάγνωσης.
Υποβολή οκτικού αριθμού
Αυτός είναι ο τρόπος με τον οποίο τα δικαιώματα εμφανίζονται στο Linux χρησιμοποιώντας σύμβολα. Ο δεύτερος τρόπος για να εκπροσωπηθούν τα ίδια δικαιώματα είναι η χρήση οκταδικών αριθμών. Όταν χρησιμοποιούμε αργότερα την εντολή chmod, θα δείτε ότι μπορείτε να αλλάξετε τα δικαιώματα χρησιμοποιώντας συμβολικά ή οκταδικά νούμερα.
Πώς λοιπόν το Linux αντιπροσωπεύει να διαβάζει, να γράφει και να εκτελεί χρησιμοποιώντας οκταδικούς αριθμούς; Βασικά, αναθέτει έναν αριθμό σε κάθε άδεια όπως φαίνεται παρακάτω.
Η άδεια ανάγνωσης αντιπροσωπεύεται από 4, γράψτε με 2 και εκτελέστε με 1. Το μόνο που έχετε να κάνετε είναι να τα προσθέσετε για να λάβετε την οκταδική άδεια. Για παράδειγμα, ας πάρουμε το παραπάνω παράδειγμα όπου όλοι έχουν όλα τα δικαιώματα:
-rwxrwxrwx
Ο ιδιοκτήτης έχει rwx, οπότε θα προσθέσουμε 4 + 2 + 1 για να πάρουμε αξία 7. Κάνουμε το ίδιο πράγμα για ομάδα και το ίδιο πράγμα για άλλους. Η τελική οκταδική τιμή είναι 777. Ας ρίξουμε μια ματιά στο παράδειγμα όπου δώσαμε μόνο δικαιώματα ανάγνωσης / εγγραφής:
-rw-rw-rw-
Ο πρώτος οκταδικός αριθμός θα είναι 4 + 2 αφού προσθέτουμε την ανάγνωση και εγγραφή. Το δεύτερο θα είναι το ίδιο με τον τρίτο οκταδικό αριθμό. Εδώ έχουμε τελική οκταδική τιμή 666.
Τώρα, λοιπόν, να το δοκιμάσουμε με τον άλλο τρόπο. Πείτε ότι θέλουμε να μάθουμε τι δικαιώματα αντιπροσωπεύει το 755 ; Λοιπόν, είναι πολύ εύκολο να καταλάβεις αν το χωρίζεις με μεμονωμένους αριθμούς. Ο πρώτος αριθμός είναι 7, ο οποίος μπορούμε να πάρουμε μόνο προσθέτοντας 4 + 2 + 1, που σημαίνει ότι ο ιδιοκτήτης έχει δικαίωμα ανάγνωσης / εγγραφής / εκτέλεσης. Πέντε μπορούν να πάρουν μόνο προσθέτοντας 4 + 1, που σημαίνει ότι η ομάδα και οι άλλοι χρήστες έχουν διαβάσει και εκτελέσει δικαιώματα.
Ας ελπίσουμε ότι αυτή είναι μια καλή εξήγηση για το πώς να εκπροσωπείτε δικαιώματα στο Linux χρησιμοποιώντας οκταδικούς αριθμούς. Είναι αρκετά ευθεία συνολικά.
Χρησιμοποιώντας το chmod για να τροποποιήσετε τα δικαιώματα
Τώρα που καταλαβαίνουμε πώς να διαβάσουμε τα δικαιώματα, ας μιλήσουμε για το πώς μπορούμε να τα αλλάξουμε. Το ευκολότερο βοηθητικό πρόγραμμα που θα χρησιμοποιηθεί για το σκοπό αυτό είναι η εντολή chmod. Ετσι δουλευει. Ο καλύτερος τρόπος για να εξηγήσετε την εντολή είναι να περάσετε από ένα παράδειγμα.
Ας ξεκινήσουμε με τα δικαιώματα που μιλήσαμε παραπάνω, δηλαδή:
-rw-rw-rw-
Αν θέλαμε να προσθέσουμε την άδεια εκτέλεσης για τον ιδιοκτήτη, την ομάδα και άλλα, θα μπορούσαμε να το κάνουμε με δύο τρόπους. Θα μπορούσαμε να χρησιμοποιήσουμε τη μέθοδο των συμβόλων ή την οκταδική μέθοδο. Για τη μέθοδο συμβόλων, θα κάνουμε τα εξής, όπως φαίνεται παρακάτω:
Η ακριβής εντολή είναι
όνομα αρχείου chmod a + x
Η σύνταξη είναι η εξής: το γράμμα ή τα γράμματα που αντιπροσωπεύουν τον κάτοχο ( u ), ομάδα ( g ), άλλο ( o ) ή όλα ( α ) ακολουθούμενα από + για προσθήκη αδειών ή a - η άδεια ( r για ανάγνωση, w για εγγραφή και x για εκτέλεση).
Στο παραπάνω παράδειγμα, πρόσθεσα την άδεια εκτέλεσης για όλους τους χρήστες. Το αποτέλεσμα, όπως μπορείτε να δείτε στο παραπάνω στιγμιότυπο οθόνης, είναι ένα x για ιδιοκτήτη, ομάδα και άλλα. Τώρα ας υποθέσουμε ότι ήθελα να καταργήσω τα δικαιώματα εγγραφής και εκτέλεσης μόνο για την ομάδα και άλλους χρήστες.
Όπως μπορείτε να δείτε εδώ, συνήθιζα με την ακόλουθη εντολή για να πετύχω αυτό:
όνομα αρχείου chmod go-wx
Δεδομένου ότι θέλω να αλλάξω τα δικαιώματα για ομάδα και άλλα, χρησιμοποιώ το γράμμα g και το γράμμα o . Θέλω να καταργήσω τα δικαιώματα, επομένως χρησιμοποιώ το σύμβολο. Τέλος, θέλω να καταργήσω τα δικαιώματα εγγραφής και εκτέλεσης, επομένως χρησιμοποιώ w και x . Εδώ είναι ένα εύχρηστο μικρό τραπέζι για τη χρήση συμβόλων:
Επομένως, αυτό είναι το μόνο που πρέπει να χρησιμοποιήσετε τη μέθοδο συμβόλων. Τώρα ας μιλήσουμε για την οκταδική μέθοδο, την οποία βρίσκω κάπως πιο εύκολη. Το Οκτάλ είναι ωραίο επειδή μπορείτε να προσθέσετε ή να καταργήσετε όλα τα δικαιώματα με μία κίνηση.
Αν ξεκινήσουμε με τα ακόλουθα δικαιώματα σε ένα αρχείο, ας δούμε πώς μπορούμε να τα αλλάξουμε χρησιμοποιώντας την οκταδική μέθοδο:
-rw-rw-rw-
Πάνω, μπορείτε να δείτε ότι χρησιμοποίησα την ακόλουθη εντολή:
όνομα αρχείου chmod 744
Αυτό ουσιαστικά λέει ότι ο ιδιοκτήτης παίρνει δικαιώματα ανάγνωσης / εγγραφής / εκτέλεσης και η ομάδα και άλλα παίρνουν άδεια ανάγνωσης μόνο. Όπως μπορείτε να δείτε, είναι εύκολο να προσθέσετε ή να καταργήσετε δικαιώματα σε μια απλή εντολή. Ας συνεχίσουμε να λέμε ότι θέλω να αλλάξω τα δικαιώματα και πάλι.
Τώρα χρησιμοποίησα την ακόλουθη εντολή, και πάλι πολύ απλή:
όνομα αρχείου chmod 640
Εδώ έχουμε δώσει στον ιδιοκτήτη δικαιώματα ανάγνωσης / εγγραφής, η άδεια ανάγνωσης ομάδας μόνο και η άλλη ομάδα χωρίς δικαιώματα. Χρησιμοποιείτε μηδέν για να μην αναφέρετε δικαιώματα. Πολύ απλό, ε;
Εν κατακλείδι, αυτή είναι μια πολύ απλή επισκόπηση των δικαιωμάτων του Linux και μπορεί να γίνει πολύ πιο περίπλοκη από αυτό, αλλά για αρχάριους, είναι ένα καλό μέρος για να ξεκινήσετε. Θα δημοσιεύσω περισσότερα άρθρα σχετικά με πιο προηγμένες άδειες στο μέλλον. Αν έχετε οποιεσδήποτε ερωτήσεις, μην διστάσετε να σχολιάσετε. Απολαμβάνω!