Δικαιώματα αρχείων σε Linux / Unix: Πώς να διαβάζετε, να γράφετε και να αλλάζετε

⚡ Έξυπνη Σύνοψη

Τα δικαιώματα αρχείων στο Linux και το Unix ελέγχουν ποιος μπορεί να διαβάσει, να γράψει και να εκτελέσει κάθε αρχείο, προστατεύοντας ένα σύστημα πολλαπλών χρηστών μέσω δύο επιπέδων: της ιδιοκτησίας, η οποία εκχωρεί έναν χρήστη, μια ομάδα και άλλους, και των bit δικαιωμάτων ανάγνωσης, εγγραφής και εκτέλεσης.

  • 👥 Ιδιοκτησία: Κάθε αρχείο και κατάλογος ανήκει σε έναν χρήστη (κάτοχο), μια ομάδα και άλλους, που μερικές φορές ονομάζονται κόσμος.
  • 🔑 δικαιώματα: Τρία δικαιώματα ισχύουν για κάθε κλάση κατόχου: ανάγνωση (r), εγγραφή (w) και εκτέλεση (x).
  • 📃 Καταχώρηση: Η εντολή ls -l εμφανίζει μια συμβολοσειρά δικαιωμάτων όπως -rw-rw-r– για τον κάτοχο, την ομάδα και τον κόσμο.
  • 🔢 Απόλυτη λειτουργία: Η εντολή chmod με τριψήφιο οκταδικό αριθμό ορίζει δικαιώματα και για τις τρεις κλάσεις ταυτόχρονα, για παράδειγμα 764.
  • Συμβολική λειτουργία: Η συνάρτηση chmod με u, g, o, a και +, -, = αλλάζει μία κλάση κατόχου χωρίς να επηρεάζει τις άλλες.
  • 🧭 Εντολές ιδιοκτησίας: Η εντολή chown αλλάζει τον κάτοχο και την ομάδα, ενώ η εντολή chgrp αλλάζει μόνο την ομάδα.
  • 🤖 Βοήθεια με την Τεχνητή Νοημοσύνη: Οι βοηθοί τεχνητής νοημοσύνης και ο συνεργάτης του GitHub μπορούν να δημιουργήσουν και να εξηγήσουν τις εντολές chmod και chown.

Δικαιώματα αρχείων σε Linux και Unix: πώς να διαβάζετε, να γράφετε και να αλλάζετε

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

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

  • Ιδιοκτησία
  • Άδεια

Η έννοια της άδειας και της ιδιοκτησίας αρχείων είναι κρίσιμη στο Linux. Εδώ, εξηγούμε τα δικαιώματα και την ιδιοκτησία του Linux και τα συζητάμε και τα δύο. Ας ξεκινήσουμε με την ιδιοκτησία.

Ιδιοκτησία αρχείων Linux

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

Διάγραμμα ιδιοκτησίας αρχείων Linux που δείχνει χρήστες, ομάδες και άλλες κλάσεις δικαιωμάτων

Χρήστες

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

Group

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

Άλλα

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

Τώρα προκύπτει το μεγάλο ερώτημα: πώς το Linux διακρίνει μεταξύ αυτών των τριών τύπων χρηστών, έτσι ώστε ένας χρήστης «Α» να μην μπορεί να επηρεάσει ένα αρχείο που περιέχει ζωτικές πληροφορίες ή δεδομένα κάποιου άλλου χρήστη «Β»; Είναι σαν να μην θέλεις έναν συνάδελφο που εργάζεται πάνω σου. Υπολογιστής Linux για να δείτε τις εικόνες σας. Εδώ μπαίνουν στο παιχνίδι τα δικαιώματα και καθορίζουν τη συμπεριφορά των χρηστών.

Ας κατανοήσουμε το σύστημα δικαιωμάτων στο Linux.

Δικαιώματα αρχείου Linux

Κάθε αρχείο και κατάλογος στο σύστημα Unix/Linux σας έχει τα ακόλουθα τρία δικαιώματα που έχουν οριστεί και για τους τρεις κατόχους που αναφέρθηκαν παραπάνω.

  • Διαβάστε: Αυτό το δικαίωμα σάς δίνει την εξουσιοδότηση να ανοίγετε και να διαβάζετε ένα αρχείο. Το δικαίωμα ανάγνωσης σε έναν κατάλογο σάς δίνει τη δυνατότητα να παραθέσετε το περιεχόμενό του.
  • Γράφω: Το δικαίωμα εγγραφής σάς δίνει την εξουσιοδότηση να τροποποιήσετε τα περιεχόμενα ενός αρχείου. Το δικαίωμα εγγραφής σε έναν κατάλογο σάς δίνει την εξουσιοδότηση να προσθέσετε, να καταργήσετε και να μετονομάσετε αρχεία που είναι αποθηκευμένα στον κατάλογο. Σκεφτείτε ένα σενάριο όπου έχετε δικαίωμα εγγραφής σε ένα αρχείο αλλά δεν έχετε δικαίωμα εγγραφής στον κατάλογο όπου είναι αποθηκευμένο το αρχείο. Θα μπορείτε να τροποποιήσετε τα περιεχόμενα του αρχείου, αλλά δεν θα μπορείτε να μετονομάσετε, να μετακινήσετε ή να καταργήσετε το αρχείο από τον κατάλογο.
  • Εκτέλεση: In Windows, ένα εκτελέσιμο πρόγραμμα έχει συνήθως την επέκταση ".exe", την οποία μπορείτε εύκολα να εκτελέσετε. Σε Unix/Linux, δεν μπορείτε να εκτελέσετε ένα πρόγραμμα εκτός εάν έχετε ορίσει το δικαίωμα εκτέλεσης. Εάν δεν έχετε ορίσει το δικαίωμα εκτέλεσης, ενδέχεται να εξακολουθείτε να μπορείτε να δείτε ή να τροποποιήσετε τον κώδικα του προγράμματος (υπό την προϋπόθεση ότι έχουν οριστεί δικαιώματα ανάγνωσης και εγγραφής), αλλά όχι να τον εκτελέσετε.

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

ls -l

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

Η έξοδος ls -l του τερματικού εμφανίζει τη συμβολοσειρά δικαιωμάτων rw-rw-r-- για ένα αρχείο

Εδώ, έχουμε επισημάνει το '-rw-rw-r–', και αυτός ο περίεργος κώδικας είναι αυτός που μας λέει για τα δικαιώματα Unix που έχουν δοθεί στον κάτοχο, την ομάδα χρηστών και τον κόσμο.

Εδώ, το πρώτο '-' υποδηλώνει ότι έχουμε επιλέξει ένα αρχείο. Το παρακάτω εικονίδιο υποδεικνύει ένα κανονικό αρχείο.

Μικρό εικονίδιο που υποδεικνύει ότι το στοιχείο που αναφέρεται είναι ένα κανονικό αρχείο

Διαφορετικά, αν ήταν κατάλογος, θα είχε εμφανιστεί ένα 'd', όπως στην παρακάτω λίστα.

Λίστα τερματικού που εμφανίζει έναν κατάλογο που έχει επισημανθεί με d στην αρχή της συμβολοσειράς δικαιωμάτων

Οι χαρακτήρες είναι αρκετά εύκολο να θυμηθούν.

  • r = δικαίωμα ανάγνωσης
  • w = δικαίωμα εγγραφής
  • x = δικαίωμα εκτέλεσης
  • – = χωρίς άδεια

Ας το δούμε ως εξής. Το πρώτο μέρος του κώδικα είναι το 'rw-'. Αυτό υποδηλώνει ότι ο κάτοχος 'Home' μπορεί:

  • Διαβάστε το αρχείο
  • Γράψτε ή επεξεργαστείτε το αρχείο

Ο κάτοχος δεν μπορεί να εκτελέσει το αρχείο, επειδή το bit εκτέλεσης έχει οριστεί σε '-'. Το παρακάτω εικονίδιο δείχνει ότι το bit εκτέλεσης έχει διαγραφεί σε παύλα.

Μικρό εικονίδιο που δείχνει ότι το bit δικαιωμάτων εκτέλεσης έχει διαγραφεί σε μια παύλα

Από τη σχεδίαση, πολλές διανομές Linux όπως το Fedora, το CentOS και το Ubuntu προσθέστε έναν χρήστη σε μια ομάδα με το ίδιο όνομα με τον χρήστη. Έτσι, ένας χρήστης 'tom' προστίθεται σε μια ομάδα με το όνομα 'tom'.

Το δεύτερο μέρος είναι το 'rw-'. Προορίζεται για την ομάδα χρηστών 'Home' και τα μέλη της ομάδας μπορούν:

  • Διαβάστε το αρχείο
  • Γράψτε ή επεξεργαστείτε το αρχείο

Το τρίτο μέρος αφορά τον κόσμο, που σημαίνει οποιονδήποτε χρήστη. Λέει 'r–'. Αυτό σημαίνει ότι ο χρήστης μπορεί μόνο να:

  • Διαβάστε το αρχείο

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

Ανάλυση της συμβολοσειράς δικαιωμάτων rw-rw-r-- σε ενότητες κατόχου, ομάδας και κόσμου

Αλλαγή δικαιωμάτων αρχείων/καταλόγων στο Linux Χρησιμοποιώντας την εντολή 'chmod'

Ας υποθέσουμε ότι δεν θέλετε ένας συνάδελφος να βλέπει τις προσωπικές σας εικόνες. Αυτό μπορεί να επιτευχθεί αλλάζοντας τα δικαιώματα πρόσβασης στα αρχεία.

Μπορούμε να χρησιμοποιήσουμε το 'chmod' εντολή, το οποίο σημαίνει «αλλαγή λειτουργίας». Χρησιμοποιώντας την εντολή, μπορούμε να ορίσουμε δικαιώματα (ανάγνωση, εγγραφή, εκτέλεση) σε ένα αρχείο ή κατάλογο για τον κάτοχο, την ομάδα και τον κόσμο.

Σύνταξη:

chmod permissions filename

Υπάρχουν δύο τρόποι για να χρησιμοποιήσετε την εντολή:

  • Απόλυτη λειτουργία
  • Συμβολική λειτουργία

Απόλυτη (Αριθμητική) Λειτουργία στο Linux

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

αριθμός Τύπος άδειας Σύμβολο
0 Χωρίς άδεια -
1 Εκτέλεση
2 Γράφω -Σε-
3 Εκτέλεση + Εγγραφή -wx
4 Διάβασε r–
5 Ανάγνωση + Εκτέλεση rx
6 Ανάγνωση + Γράψιμο rw -
7 Ανάγνωση + Εγγραφή + Εκτέλεση rwx

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

Τερματικό που εκτελεί την εντολή chmod 764 στο δείγμα αρχείου για να αλλάξει τα δικαιώματά του

Στο παραπάνω παράθυρο τερματικού, αλλάξαμε τα δικαιώματα του αρχείου 'sample' σε '764'. Ο απόλυτος κώδικας '764' αναφέρει τα εξής:

  • Ο κάτοχος μπορεί να διαβάσει, να γράψει και να εκτελέσει.
  • Η ομάδα χρηστών μπορεί να διαβάζει και να γράφει.
  • Ο κόσμος μόνο διαβάζει.

Αυτό εμφανίζεται ως '-rwxrw-r–', όπως στο παρακάτω αποτέλεσμα.

Λίστα τερματικού που εμφανίζει το αρχείο δείγματος με τη συμβολοσειρά δικαιωμάτων -rwxrw-r-- μετά το chmod 764

Έτσι μπορείτε να αλλάξετε τα δικαιώματα χρήστη στο Linux σε ένα αρχείο, αντιστοιχίζοντας έναν απόλυτο αριθμό.

Συμβολική λειτουργία στο Linux

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

OperaTor Περιγραφή
+ Προσθέτει μια άδεια σε ένα αρχείο ή κατάλογο
- Καταργεί την άδεια
= Ορίζει το δικαίωμα και παρακάμπτει τα δικαιώματα που ορίστηκαν νωρίτερα

Οι διάφοροι ιδιοκτήτες παρουσιάζονται ως εξής.

Χρήστες Σημειώσεις
u χρήστη/ιδιοκτήτη
g ομάδα
o Άλλα
a όλοι

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

Τερματικό που χρησιμοποιεί συμβολικό chmod με u, g, o και +, -, = για να αλλάξει συγκεκριμένα δικαιώματα

Αλλαγή ιδιοκτησίας και ομάδας στο Linux

Για να αλλάξετε την ιδιοκτησία ενός αρχείου ή καταλόγου, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή:

chown user filename

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

chown user:group filename

Ας το δούμε αυτό στην πράξη, όπως φαίνεται παρακάτω.

Τερματικό που εκτελεί την εντολή chown για να αλλάξει τον κάτοχο και την ομάδα ενός αρχείου

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

chgrp group_name filename

Το 'chgrp' σημαίνει change group. Το παρακάτω στιγμιότυπο οθόνης δείχνει την εντολή chgrp σε χρήση.

Τερματικό που εκτελεί την εντολή chgrp για να αλλάξει μόνο τον κάτοχο της ομάδας ενός αρχείου

Άκρο

  • Το αρχείο /etc/group περιέχει όλες τις ομάδες που έχουν οριστεί στο σύστημα.
  • Μπορείτε να χρησιμοποιήσετε την εντολή "groups" για να βρείτε όλες τις ομάδες στις οποίες είστε μέλος, όπως φαίνεται παρακάτω.

Τερματικό που εκτελεί την εντολή groups για να εμφανίσει τις ομάδες στις οποίες ανήκει ο χρήστης

  • Μπορείτε να χρησιμοποιήσετε την εντολή newgrp για να εργαστείτε ως μέλος μιας ομάδας διαφορετικής από την προεπιλεγμένη ομάδα σας, όπως φαίνεται παρακάτω.

Τερματικό που εκτελεί την εντολή newgrp για μετάβαση σε διαφορετική ομάδα

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

Συχνές Ερωτήσεις

Προσθέστε το δικαίωμα εκτέλεσης με την εντολή chmod. Η συμβολική μορφή chmod +x script.sh παραχωρεί δικαίωμα εκτέλεσης σε όλους, ενώ η chmod u+x script.sh το παραχωρεί μόνο στον κάτοχο. Μετά από αυτό, μπορείτε να εκτελέσετε το σενάριο απευθείας με την εντολή ./script.sh από τον κατάλογό του.

Το umask ορίζει τα προεπιλεγμένα δικαιώματα που αφαιρούνται από τα νεοδημιουργημένα αρχεία και καταλόγους. Τα αρχεία ξεκινούν από το 666 και οι κατάλογοι από το 777, τότε η τιμή umask είναι δευτερεύουσα.tracted. Ένα συνηθισμένο umask 022 δίνει αρχεία 644 και καταλόγους 755. Εκτελέστε την εντολή umask για να δείτε την τρέχουσα τιμή.

Αυτά είναι bit ειδικών δικαιωμάτων. Το setuid εκτελεί ένα πρόγραμμα με τα δικαιώματα του κατόχου του, το setgid το εκτελεί με τα δικαιώματα της ομάδας ή κάνει νέα αρχεία να κληρονομήσουν την ομάδα ενός καταλόγου και το bit sticky επιτρέπει μόνο στον κάτοχο ενός αρχείου να το διαγράψει μέσα σε έναν κοινόχρηστο κατάλογο, όπως το /tmp.

Ναι. Μόνο ο χρήστης root ή ένας χρήστης που εκτελεί sudo μπορεί να αλλάξει τον κάτοχο ενός αρχείου με την εντολή chown. Ένας κανονικός κάτοχος μπορεί να παραχωρήσει το αρχείο του σε μια ομάδα στην οποία ανήκει, αλλά η εκ νέου ανάθεσή του σε άλλον χρήστη απαιτεί δικαιώματα root για λόγους ασφαλείας.

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

Χρησιμοποιήστε την αναδρομική επιλογή -R. Η εντολή chmod -R 755 myfolder εφαρμόζει τα δικαιώματα στον φάκελο και σε κάθε αρχείο και υποφάκελο που βρίσκεται μέσα σε αυτόν, και η εντολή chown -R user:group myfolder κάνει το ίδιο για την ιδιοκτησία. Χρησιμοποιήστε την εντολή -R προσεκτικά, καθώς επηρεάζει κάθε στοιχείο κάτω από τον φάκελο.

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

Ναί. GitHub Copilot μπορεί να προτείνει εντολές chmod, chown και chgrp από ένα σύντομο σχόλιο που περιγράφει τα δικαιώματα ή τον κάτοχο που θέλετε και να τις συμπληρώνει καθώς πληκτρολογείτε. RevΕξετάστε κάθε πρόταση πριν την εκτελέσετε, καθώς οι αλλαγές στα δικαιώματα και την ιδιοκτησία επηρεάζουν την ασφάλεια.

Συνοψίστε αυτήν την ανάρτηση με: