πανό-01

Εάν χρησιμοποιείτε Linux για κάποιο χρονικό διάστημα (και ακόμη και το OS X), πιθανότατα θα έχετε συναντήσει ένα σφάλμα "δικαιώματα". Αλλά τι ακριβώς είναι και γιατί είναι απαραίτητα ή χρήσιμα; Ας ρίξουμε μια εσωτερική ματιά.

Δικαιώματα χρήστη

Την εποχή εκείνη, οι υπολογιστές ήταν τεράστια μηχανήματα που ήταν απίστευτα ακριβά. Για να αξιοποιήσετε στο έπακρο, συνδέθηκαν πολλά τερματικά υπολογιστών που επέτρεπαν σε πολλούς χρήστες να κάνουν την επιχείρησή τους ταυτόχρονα. Η επεξεργασία και η αποθήκευση δεδομένων έγιναν στο μηχάνημα, ενώ τα ίδια τα τερματικά ήταν κάτι περισσότερο από ένα μέσο προβολής και εισαγωγής δεδομένων. Αν το σκεφτείτε, είναι σχεδόν το πώς έχουμε πρόσβαση σε δεδομένα στο "cloud". Κοιτάξτε το σύστημα Cloud MP3 του Amazon, το Gmail και το Dropbox και θα παρατηρήσετε ότι ενώ μπορούν να γίνουν αλλαγές τοπικά, όλα αποθηκεύονται από απόσταση.

τερματικό

(Εικόνα: Zenith Z-19 "dumb" terminal; πίστωση: ajmexico)

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

Πρόσβαση στο αρχείο

ανάγνωση σφάλματος

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

Στον κόσμο του Linux, τα δικαιώματα κατανέμονται σε τρεις κατηγορίες: ανάγνωση, εγγραφή και εκτέλεση. Η πρόσβαση "Ανάγνωση" επιτρέπει σε κάποιον να δει τα περιεχόμενα ενός αρχείου, η πρόσβαση "εγγραφή" επιτρέπει σε κάποιον να τροποποιήσει τα περιεχόμενα ενός αρχείου και η "εκτέλεση" επιτρέπει σε κάποιον να εκτελέσει ένα σύνολο οδηγιών, όπως ένα σενάριο ή ένα πρόγραμμα. Κάθε μία από αυτές τις κατηγορίες εφαρμόζεται σε διαφορετικές κατηγορίες: χρήστης, ομάδα και κόσμο. «Χρήστης» σημαίνει τον κάτοχο, «ομάδα» σημαίνει κάθε χρήστη που βρίσκεται στην ίδια ομάδα με τον κάτοχο, και «κόσμος» σημαίνει οποιονδήποτε και όλους.

χωρίς περμανάντ εγγραφής

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

Αλλαγή δικαιωμάτων στο Ubuntu

GUI

Για να αλλάξετε τα δικαιώματα ενός αρχείου που έχετε στο Ubuntu, απλώς κάντε δεξί κλικ στο αρχείο και μεταβείτε στην ενότητα "Ιδιότητες".

δικαιώματα Ubuntu

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

Γραμμή εντολών

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

ls -al
sshot-1

Δίπλα σε κάθε αρχείο και κατάλογο, θα δείτε μια ειδική ενότητα που περιγράφει τα δικαιώματα που έχει. Μοιάζει με αυτό:

-rwxrw-r–

Το r σημαίνει "read", το w σημαίνει "write" και το x σημαίνει "εκτέλεση". Οι κατάλογοι θα ξεκινούν με "d" αντί για "-". Θα παρατηρήσετε επίσης ότι υπάρχουν 10 κενά που έχουν αξία. Μπορείτε να αγνοήσετε το πρώτο και, στη συνέχεια, υπάρχουν 3 σετ των 3. Το πρώτο σετ είναι για τον κάτοχο, το δεύτερο σετ είναι για την ομάδα και το τελευταίο σετ για τον κόσμο.

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

αρχείο chmod [class] [operator] [άδεια]
chmod [ugoa] [+ ή -] [rwx] αρχείο

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

  • u: Αυτό είναι για τον ιδιοκτήτη. g: Αυτό είναι για την ομάδα. o: Αυτό ισχύει για όλους τους άλλους. a: Αυτό θα αλλάξει τα δικαιώματα για όλα τα παραπάνω.

Στη συνέχεια, οι χειριστές:

  • +: Το σύμβολο συν θα προσθέσει τα δικαιώματα που ακολουθούν. -: Το σύμβολο μείον θα αφαιρέσει τα δικαιώματα που ακολουθούν.

Ακόμα μαζί μου? Και η τελευταία ενότητα είναι η ίδια όπως όταν ελέγξαμε τα δικαιώματα ενός αρχείου:

  • r: Επιτρέπει την πρόσβαση ανάγνωσης. w: Επιτρέπει την πρόσβαση εγγραφής. x: Επιτρέπει την εκτέλεση.

Τώρα, ας το βάλουμε μαζί. Ας υποθέσουμε ότι έχουμε ένα αρχείο με το όνομα "todo.txt" που έχει τα ακόλουθα δικαιώματα:

-rw-rw-r–

Δηλαδή, ο ιδιοκτήτης και η ομάδα μπορούν να διαβάσουν και να γράψουν, και ο κόσμος μπορεί να διαβάσει μόνο. Θέλουμε να αλλάξουμε τα δικαιώματα σε αυτά:

-rwxr—–

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

chmod u + x todo.txt

Στη συνέχεια, θα καταργήσουμε την άδεια εγγραφής για την ομάδα.

chmod gw todo.txt

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

chmod ή todo.txt

Μπορούμε επίσης να τα συνδυάσουμε σε μία εντολή, όπως:

chmod u + x, gw ή todo.txt
sshot-2

Μπορείτε να δείτε ότι κάθε ενότητα χωρίζεται με κόμματα και δεν υπάρχουν κενά.

Ακολουθούν ορισμένα χρήσιμα δικαιώματα:

  • -rwxr-xr-x: Ο κάτοχος έχει πλήρη δικαιώματα, η ομάδα και άλλοι χρήστες μπορούν να διαβάσουν τα περιεχόμενα των αρχείων και να εκτελέσουν. -rwxr – r–: Ο κάτοχος έχει πλήρη δικαιώματα, η ομάδα και άλλοι χρήστες μπορούν να διαβάσουν μόνο το αρχείο (χρήσιμο εάν δεν σας πειράζει να βλέπουν τα αρχεία σας άλλοι. -rwx——: Ο κάτοχος έχει πλήρη δικαιώματα, όλοι οι άλλοι δεν έχουν κανένα (χρήσιμο για προσωπικά -rw-rw--: Ο κάτοχος και η ομάδα μπορούν να διαβάσουν και να γράψουν (χρήσιμο για συνεργασία με μέλη της ομάδας). -rw-r-r–: Ο κάτοχος μπορεί να διαβάσει και να γράψει, η ομάδα και άλλοι χρήστες μπορούν να διαβάσουν μόνο το αρχείο (χρήσιμο για την αποθήκευση προσωπικών αρχείων σε κοινόχρηστο δίκτυο). -rw ——-: Ο κάτοχος μπορεί να διαβάσει και να γράψει, όλοι οι άλλοι δεν έχουν κανένα (χρήσιμο για την αποθήκευση προσωπικών αρχείων).

Υπάρχουν μερικά άλλα πράγματα που μπορείτε να κάνετε με το chmod - όπως το setuid και το setgid - αλλά είναι λίγο σε βάθος και οι περισσότεροι χρήστες δεν θα χρειαστεί να τα χρησιμοποιήσουν ούτως ή άλλως.

Τα αρχεία Root ή Super-User και System

sshot-3

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

Λοιπόν, το Unix και τα παράγωγά του - Linux, OS X, μεταξύ άλλων - διακρίνουν επίσης μεταξύ πραγμάτων που εκτελείται από τον χρήστη, πραγμάτων που διαχειρίζεται ένας διαχειριστής ή με δικαιώματα διαχειριστή και πραγμάτων που διαχειρίζεται το ίδιο το σύστημα. Ως εκ τούτου, τα πράγματα που είναι αναπόσπαστα για το σύστημα χρειάζονται δικαιώματα διαχειριστή για αλλαγή ή πρόσβαση. Με αυτόν τον τρόπο, δεν βάζετε τίποτα κατά λάθος.

Στο Ubuntu, για να κάνετε αλλαγές στα αρχεία συστήματος χρησιμοποιείτε το "sudo" ή το "gksudo" για να αποκτήσετε το αντίστοιχο των δικαιωμάτων διαχειριστή. Σε άλλες διανομές, μεταβείτε σε "root" ή "super-user" που κάνει το ίδιο πράγμα μέχρι να αποσυνδεθείτε.

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

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

Νομίζετε ότι μπορείτε να εξηγήσετε τα πράγματα πιο εύκολα; Έχετε μια διόρθωση; Θέλετε να θυμηθείτε τις παλιές μέρες; Κάντε ένα διάλειμμα και κάντε τις σκέψεις σας στα σχόλια.