Πώς λειτουργούν τα δικαιώματα αρχείων Linux;
Εάν χρησιμοποιείτε το Linux για κάποιο χρονικό διάστημα (και ακόμη και το OS X), πιθανότατα θα συναντήσατε ένα σφάλμα "δικαιωμάτων". Αλλά τι ακριβώς είναι και γιατί είναι απαραίτητες ή χρήσιμες; Ας πάρουμε μια εσωτερική ματιά.
Δικαιώματα χρήστη
Πίσω την ημέρα, οι υπολογιστές ήταν μαζικές μηχανές που ήταν εξαιρετικά ακριβές. Για να αξιοποιήσουν στο έπακρο τα πλεονεκτήματα τους, συνδέθηκαν πολλοί τερματικοί υπολογιστές που επέτρεψαν σε πολλούς χρήστες να προχωρήσουν ταυτόχρονα στην επιχείρησή τους. Η επεξεργασία και η αποθήκευση δεδομένων πραγματοποιήθηκαν στο μηχάνημα, ενώ οι ίδιοι οι τερματικοί σταθμοί ήταν κάτι περισσότερο από ένα μέσο προβολής και εισαγωγής δεδομένων. Αν το σκεφτείτε, είναι λίγο πώς θα έχουμε πρόσβαση στα δεδομένα σχετικά με το "σύννεφο". κοιτάξτε το σύστημα Cloud MP3 του Amazon, το Gmail και το Dropbox και θα παρατηρήσετε ότι ενώ οι αλλαγές μπορούν να γίνουν τοπικά, τα πάντα αποθηκεύονται εξ αποστάσεως.
(Εικόνα: τερματικό Zenith Z-19 "χαζή", πίστωση: ajmexico)
Για να λειτουργήσει αυτό, οι μεμονωμένοι χρήστες πρέπει να έχουν λογαριασμούς. Πρέπει να έχουν ένα τμήμα της περιοχής αποθήκευσης που τους έχει κατανεμηθεί και πρέπει να τους επιτρέπεται να εκτελούν εντολές και προγράμματα. Ο καθένας παίρνει συγκεκριμένα "δικαιώματα χρηστών", που υπαγορεύει τι μπορούν και δεν μπορούν να κάνουν, πού στο σύστημα κάνουν και δεν έχουν πρόσβαση και ποια αρχεία μπορούν και δεν μπορούν να τροποποιήσουν. Κάθε χρήστης τοποθετείται επίσης σε διάφορες ομάδες, οι οποίες παρέχουν ή περιορίζουν περαιτέρω πρόσβαση.
Πρόσβαση αρχείων
Σε αυτόν τον περιθωριοποιημένο κόσμο για πολλούς χρήστες, έχουμε ήδη ορίσει όρια ως προς το τι μπορούν να κάνουν οι χρήστες. Αλλά τι γίνεται με τι έχουν πρόσβαση; Λοιπόν, κάθε αρχείο έχει ένα σύνολο δικαιωμάτων και έναν κάτοχο. Ο ορισμός του κατόχου, ο οποίος συνήθως συνδέεται με τη δημιουργία του αρχείου, δηλώνει σε ποιον χρήστη ανήκει και μόνο ο χρήστης μπορεί να αλλάξει τα δικαιώματα πρόσβασης του.
Στον κόσμο του Linux, τα δικαιώματα κατανέμονται σε τρεις κατηγορίες: ανάγνωση, εγγραφή και εκτέλεση. Η πρόσβαση "ανάγνωσης" επιτρέπει την προβολή ενός περιεχομένου ενός αρχείου, η πρόσβαση "εγγραφής" επιτρέπει την τροποποίηση του περιεχομένου ενός αρχείου και η "εκτέλεση" επιτρέπει την εκτέλεση ενός συνόλου οδηγιών, όπως μια δέσμη ενεργειών ή ένα πρόγραμμα. Κάθε μία από αυτές τις κατηγορίες εφαρμόζεται σε διαφορετικές κατηγορίες: χρήστης, ομάδα και κόσμος. "Χρήστης" σημαίνει ο ιδιοκτήτης, "ομάδα" σημαίνει κάθε χρήστη που ανήκει στην ίδια ομάδα με τον ιδιοκτήτη και "κόσμος" σημαίνει οποιονδήποτε και όλους.
Οι φάκελοι μπορούν επίσης να περιοριστούν με αυτά τα δικαιώματα. Μπορείτε, για παράδειγμα, να επιτρέψετε σε άλλα άτομα της ομάδας σας να προβάλλουν καταλόγους και αρχεία στον αρχικό σας φάκελο, αλλά όχι κανέναν εκτός της ομάδας σας. Ίσως θελήσετε να περιορίσετε την πρόσβαση "εγγραφής" μόνο στον εαυτό σας, εκτός και αν εργάζεστε σε ένα κοινό έργο κάποιου είδους. Μπορείτε επίσης να δημιουργήσετε έναν κοινόχρηστο κατάλογο ο οποίος επιτρέπει σε οποιονδήποτε να προβάλλει και να τροποποιεί αρχεία σε αυτόν το φάκελο.
Αλλαγή δικαιωμάτων στο Ubuntu
GUI
Για να αλλάξετε τα δικαιώματα ενός αρχείου που κατέχετε στο Ubuntu, απλά κάντε δεξί κλικ στο αρχείο και μεταβείτε στην επιλογή "Ιδιότητες".
Μπορείτε να αλλάξετε αν ο Κάτοχος, η Ομάδα ή άλλοι μπορούν να διαβάζουν και να γράφουν, να διαβάζουν μόνο ή να μην κάνουν τίποτα. Μπορείτε επίσης να επιλέξετε ένα πλαίσιο για να επιτρέψετε την εκτέλεση του αρχείου και αυτό θα το ενεργοποιήσει ταυτόχρονα για τον ιδιοκτήτη, την ομάδα και άλλους.
Γραμμή εντολών
Μπορείτε επίσης να το κάνετε αυτό μέσω της γραμμής εντολών. Μεταβείτε σε έναν κατάλογο που περιέχει αρχεία και πληκτρολογήστε την ακόλουθη εντολή για να δείτε όλα τα αρχεία σε μια λίστα:
ls -al
Δίπλα σε κάθε αρχείο και κατάλογο, θα δείτε μια ειδική ενότητα που περιγράφει τα δικαιώματα που έχει. Μοιάζει με αυτό:
-rwxrw-r-
ο r σημαίνει "διαβάστε", το w σημαίνει "γράψτε" και το Χ σημαίνει "εκτέλεση". Οι κατάλογοι θα ξεκινούν με "d" αντί για "-". Θα παρατηρήσετε επίσης ότι υπάρχουν 10 χώροι που έχουν αξία. Μπορείτε να αγνοήσετε το πρώτο και στη συνέχεια να υπάρχουν 3 σετ 3. Το πρώτο σετ είναι για τον ιδιοκτήτη, το δεύτερο σετ για την ομάδα και το τελευταίο σετ για τον κόσμο.
Για να αλλάξετε τα δικαιώματα ενός αρχείου ή καταλόγου, ας δούμε τη βασική μορφή της εντολής chmod.
chmod [τάξη] [χειριστής] [αρχείο δικαιωμάτων]
αρχείο chmod [ugoa] [+ ή -] [rwx]
Αυτό μπορεί να φαίνεται περίπλοκο στην αρχή, αλλά πιστέψτε με, είναι αρκετά εύκολο. Πρώτον, ας δούμε τις τάξεις:
- u: Αυτό είναι για τον ιδιοκτήτη.
- g: Αυτό ισχύει για την ομάδα.
- o: Αυτό ισχύει για όλους τους άλλους.
- a: Αυτό θα αλλάξει τα δικαιώματα για όλα τα παραπάνω.
Στη συνέχεια, οι φορείς εκμετάλλευσης:
- +: Το σύμβολο συν θα προσθέσει τα δικαιώματα που ακολουθούν.
- -: Το σύμβολο μείον θα αφαιρέσει τα δικαιώματα που ακολουθούν.
Ακόμα μαζί μου? Και η τελευταία ενότητα είναι η ίδια όπως και όταν ελέγχαμε τα δικαιώματα ενός αρχείου:
- r: Επιτρέπει πρόσβαση ανάγνωσης.
- w: Επιτρέπει την πρόσβαση εγγραφής.
- x: Επιτρέπει την εκτέλεση.
Τώρα, ας τα βάλουμε μαζί. Ας υποθέσουμε ότι έχουμε ένα αρχείο με όνομα "todo.txt" που έχει τα ακόλουθα δικαιώματα:
-rw-rw-r-
Δηλαδή, ο ιδιοκτήτης και η ομάδα μπορούν να διαβάσουν και να γράψουν, και ο κόσμος μπορεί μόνο να διαβάσει. Θέλουμε να αλλάξουμε τα δικαιώματα σε αυτά:
-rwxr-
Δηλαδή, ο ιδιοκτήτης έχει πλήρη δικαιώματα και η ομάδα μπορεί να διαβάσει. Μπορούμε να το κάνουμε αυτό σε 3 βήματα. Αρχικά, θα προσθέσουμε την άδεια εκτέλεσης για το χρήστη.
chmod u + x todo.txt
Στη συνέχεια, θα καταργήσουμε την άδεια εγγραφής για την ομάδα.
chmod g-w todo.txt
Τέλος, θα καταργήσουμε τα δικαιώματα ανάγνωσης για όλους τους άλλους χρήστες.
chmod o-r todo.txt
Μπορούμε επίσης να τα συνδυάσουμε σε μία εντολή, όπως έτσι:
chmod u + x, g-w, o-r todo.txt
Μπορείτε να δείτε ότι κάθε τμήμα χωρίζεται με κόμματα και δεν υπάρχουν κενά.
Ακολουθούν ορισμένα χρήσιμα δικαιώματα:
- -rwxr-xr-x: Ο κάτοχος έχει πλήρη δικαιώματα, ομάδα και άλλοι χρήστες μπορούν να διαβάσουν τα περιεχόμενα του αρχείου και να εκτελέσουν.
- -rwxr-r-: Ο ιδιοκτήτης έχει πλήρη δικαιώματα, ο όμιλος και άλλοι χρήστες μπορούν να διαβάσουν μόνο το αρχείο (χρήσιμο εάν δεν σας πειράζει οι άλλοι που βλέπουν τα αρχεία σας.
- -rwx-: Ο ιδιοκτήτης έχει πλήρη δικαιώματα, όλοι οι άλλοι δεν έχουν (χρήσιμο για προσωπικά σενάρια).
- -rw-rw--: Ο ιδιοκτήτης και η ομάδα μπορούν να διαβάσουν και να γράψουν (χρήσιμοι για συνεργασία με μέλη της ομάδας).
- -rw-r-r-: Ο ιδιοκτήτης μπορεί να διαβάζει και να γράφει, ομαδοποιεί και άλλοι χρήστες μπορούν να διαβάζουν μόνο το αρχείο (χρήσιμο για την αποθήκευση προσωπικών αρχείων σε κοινόχρηστο δίκτυο).
- -rw--: Ο ιδιοκτήτης μπορεί να διαβάσει και να γράψει, όλοι οι άλλοι δεν έχουν (χρήσιμο για την αποθήκευση προσωπικών αρχείων).
Υπάρχουν μερικά άλλα πράγματα που μπορείτε να κάνετε με chmod - όπως setuid και setgid - αλλά είναι λίγο σε βάθος και οι περισσότεροι χρήστες δεν θα πρέπει πραγματικά να τους χρησιμοποιήσει ούτως ή άλλως.
Τα αρχεία root ή Super-User και System
Σήμερα, δεν εκτελούμε πάντα συστήματα που έχουν πολλούς χρήστες. Γιατί να ανησυχούμε ακόμα για τις άδειες?
Λοιπόν, το Unix και τα παράγωγά του - το Linux, το OS X, μεταξύ άλλων - διακρίνουν επίσης τα πράγματα που διαχειρίζεται ο χρήστης, τα πράγματα που εκτελούνται από διαχειριστή ή με δικαιώματα διαχειριστή και πράγματα που εκτελούνται από το ίδιο το σύστημα. Ως εκ τούτου, τα πράγματα που είναι αναπόσπαστα για το σύστημα χρειάζονται δικαιώματα διαχειριστή για να αλλάξουν ή να έχουν πρόσβαση. Με αυτόν τον τρόπο, δεν χάνετε τίποτα τυχαία.
Στο Ubuntu, για να κάνετε αλλαγές στα αρχεία συστήματος που χρησιμοποιείτε "sudo" ή "gksudo" για να αποκτήσετε το ισοδύναμο των δικαιωμάτων διαχειριστή. Σε άλλες διανομές, μεταβείτε στο "root" ή στο "super-user", το οποίο κάνει το ίδιο πράγμα μέχρι να αποσυνδεθείτε.
Λάβετε υπόψη ότι και στις δύο αυτές περιπτώσεις, η αλλαγή των δικαιωμάτων αρχείων μπορεί να οδηγήσει σε μη λειτουργικά προγράμματα, αλλάζοντας ακούσια την ιδιοκτησία αρχείων στον χρήστη root (αντί για τον κάτοχο) και καθιστώντας το σύστημα λιγότερο ασφαλές (χορηγώντας περισσότερα δικαιώματα). Ως εκ τούτου, συνιστάται να μην αλλάξετε δικαιώματα για αρχεία - ειδικά για αρχεία συστήματος - εκτός αν είναι απαραίτητο ή ξέρετε τι κάνετε.
Τα δικαιώματα αρχείων ισχύουν για να παρέχουν ένα βασικό σύστημα ασφάλειας στους χρήστες. Η εκμάθηση του τρόπου με τον οποίο εργάζονται μπορεί να σας βοηθήσει να ρυθμίσετε τη βασική κοινή χρήση σε ένα περιβάλλον για πολλούς χρήστες, να προστατεύσετε τα αρχεία "δημόσιας" και να σας δώσουμε μια ιδέα για το πότε κάτι πάει στραβά με την κατοχή αρχείων συστήματος.
Σκεφτείτε ότι μπορείτε να εξηγήσετε τα πράγματα ευκολότερα; Έχετε μια διόρθωση; Θέλετε να θυμίσουμε για τις παλιές μέρες; Κάντε ένα διάλειμμα και βάλτε τις σκέψεις σας στα σχόλια.