Τι είναι τα δικαιώματα αρχείων Linux;

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

Τα δικαιώματα μπορούν να εκφραστούν με δύο μορφές. Η συμβολική μορφή χρησιμοποιεί γράμματα όπως rwxr-xr-x, όπου κάθε χαρακτήρας αντιπροσωπεύει ένα συγκεκριμένο δικαίωμα για μια συγκεκριμένη ομάδα. Η οκταδική (αριθμητική) μορφή χρησιμοποιεί έναν τριψήφιο ή τετραψήφιο αριθμό όπως 755, όπου κάθε ψηφίο είναι το άθροισμα των τιμών δικαιωμάτων: ανάγνωση = 4, εγγραφή = 2, εκτέλεση = 1.

Ένα προαιρετικό αρχικό ψηφίο στην οκταδική μορφή αντιπροσωπεύει ειδικά bits: setuid (4), setgid (2) και sticky bit (1). Το setuid επιτρέπει σε ένα πρόγραμμα να εκτελείται με τα δικαιώματα του ιδιοκτήτη του αρχείου, το setgid κάνει τα νέα αρχεία να κληρονομούν την ομάδα του γονικού καταλόγου, και το sticky bit εμποδίζει τους χρήστες να διαγράφουν αρχεία που δεν τους ανήκουν σε κοινόχρηστους καταλόγους.

Περιγραφή εργαλείου

Αυτό το εργαλείο σάς επιτρέπει να δημιουργείτε και να αποκωδικοποιείτε δικαιώματα αρχείων Linux διαδραστικά. Επιλέξτε τα checkboxes για ιδιοκτήτη, ομάδα και άλλους για να ορίσετε τα flags ανάγνωσης, εγγραφής και εκτέλεσης, και δείτε άμεσα το αποτέλεσμα τόσο σε οκταδική όσο και σε συμβολική μορφή. Μπορείτε επίσης να πληκτρολογήσετε απευθείας μια οκταδική τιμή όπως 755 ή μια συμβολική συμβολοσειρά όπως rwxr-xr-x, και τα checkboxes και η οπτική έξοδος ενημερώνονται αυτόματα. Μια έγχρωμη οπτική απεικόνιση διευκολύνει την κατανόηση των ενεργών δικαιωμάτων με μια ματιά, και δημιουργείται αυτόματα μια έτοιμη εντολή chmod για εσάς.

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

Οκταδικό Συμβολικό Σημασία
755 -rwxr-xr-x Ιδιοκτήτης: πλήρης πρόσβαση. Ομάδα και άλλοι: ανάγνωση και εκτέλεση.
644 -rw-r--r-- Ιδιοκτήτης: ανάγνωση και εγγραφή. Ομάδα και άλλοι: μόνο ανάγνωση.
700 -rwx------ Ιδιοκτήτης: πλήρης πρόσβαση. Καμία πρόσβαση για ομάδα ή άλλους.
777 -rwxrwxrwx Πλήρης πρόσβαση για όλους.
1755 -rwxr-xr-t Ίδιο με 755 με ενεργοποιημένο sticky bit.
4755 -rwsr-xr-x Ίδιο με 755 με ενεργοποιημένο setuid bit.

Χαρακτηριστικά

  • Εναλλαγή μεμονωμένων δικαιωμάτων ανάγνωσης, εγγραφής και εκτέλεσης ανά ομάδα με checkboxes
  • Εισαγωγή οκταδικής (π.χ. 755) ή συμβολικής (π.χ. rwxr-xr-x) μορφής απευθείας με άμεση μετατροπή
  • Έγχρωμα οπτικά blocks για γρήγορη αναγνώριση των ενεργών δικαιωμάτων
  • Υποστήριξη ειδικών bits δικαιωμάτων: setuid, setgid και sticky bit
  • Αυτόματη δημιουργία εντολής chmod έτοιμης για αντιγραφή και χρήση σε terminal

Περιπτώσεις χρήσης

  • Ρύθμιση web server: Προσδιορίστε γρήγορα το σωστό σύνολο δικαιωμάτων για αρχεία που εξυπηρετούνται από Apache ή Nginx, όπως 644 για στατικά αρχεία και 755 για εκτελέσιμα scripts.
  • Εντοπισμός σφαλμάτων απαγόρευσης πρόσβασης: Επικολλήστε τη συμβολοσειρά δικαιωμάτων από την έξοδο ls -l για να κατανοήσετε οπτικά ποια ομάδα δεν έχει πρόσβαση.
  • Εκμάθηση δικαιωμάτων Linux: Εξερευνήστε διαδραστικά πώς η εναλλαγή μεμονωμένων flags αλλάζει τις οκταδικές και συμβολικές αναπαραστάσεις.

Πώς λειτουργεί

Κάθε τύπος δικαιώματος έχει αριθμητική βαρύτητα: ανάγνωση = 4, εγγραφή = 2, εκτέλεση = 1. Το οκταδικό ψηφίο για μια ομάδα είναι το άθροισμα των βαρυτήτων των ενεργοποιημένων δικαιωμάτων. Για παράδειγμα, ανάγνωση + εκτέλεση = 4 + 1 = 5. Η πλήρης οκταδική μορφή συνενώνει τα ψηφία για ιδιοκτήτη, ομάδα και άλλους — έτσι το rwxr-xr-x γίνεται 755.

Τα ειδικά bits προσθέτουν ένα προαιρετικό αρχικό ψηφίο που υπολογίζεται με τον ίδιο τρόπο: setuid = 4, setgid = 2, sticky = 1. Μια τιμή 1755 σημαίνει sticky bit (1) συν ιδιοκτήτης=7, ομάδα=5, άλλοι=5.

Επεξήγηση επιλογών

  • Checkboxes Ιδιοκτήτη / Ομάδας / Άλλων: Εναλλαγή ανάγνωσης (r), εγγραφής (w) και εκτέλεσης (x) για κάθε ομάδα δικαιωμάτων ανεξάρτητα.
  • Setuid: Όταν ορίζεται σε εκτελέσιμο αρχείο, εκτελείται με τα δικαιώματα του ιδιοκτήτη του αρχείου αντί του χρήστη που το καλεί.
  • Setgid: Σε κατάλογο, τα νέα αρχεία κληρονομούν την ομάδα του καταλόγου. Σε εκτελέσιμο αρχείο, εκτελείται με τα δικαιώματα της ομάδας του αρχείου.
  • Sticky bit: Σε κατάλογο, μόνο ο ιδιοκτήτης του αρχείου μπορεί να το διαγράψει ή να το μετονομάσει, ακόμα και αν άλλοι έχουν δικαίωμα εγγραφής.
  • Οκταδική εισαγωγή: Πληκτρολογήστε έναν 3-ψήφιο ή 4-ψήφιο οκταδικό αριθμό για να ορίσετε όλα τα δικαιώματα ταυτόχρονα.
  • Συμβολική εισαγωγή: Πληκτρολογήστε μια συμβολική συμβολοσειρά 9 ή 10 χαρακτήρων (με προαιρετικό πρόθεμα τύπου αρχείου) για να ορίσετε τα δικαιώματα.

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

Τι σημαίνει chmod 777; Εκχωρεί δικαιώματα ανάγνωσης, εγγραφής και εκτέλεσης στον ιδιοκτήτη, την ομάδα και όλους τους άλλους χρήστες. Αυτό είναι γενικά μη ασφαλές για συστήματα παραγωγής.

Ποια είναι η διαφορά μεταξύ πεζού s και κεφαλαίου S; Το πεζό s σημαίνει ότι το bit εκτέλεσης και το ειδικό bit (setuid ή setgid) είναι και τα δύο ενεργοποιημένα. Το κεφαλαίο S σημαίνει ότι μόνο το ειδικό bit είναι ενεργοποιημένο, χωρίς δικαίωμα εκτέλεσης.

Για τι χρησιμοποιείται το sticky bit; Το sticky bit ορίζεται συνήθως σε κοινόχρηστους καταλόγους όπως το /tmp για να εμποδίζει τους χρήστες να διαγράφουν ή να μετονομάζουν αρχεία των άλλων, ακόμα και αν όλοι έχουν δικαίωμα εγγραφής στον κατάλογο.