Utilia

Αριθμομηχανή chmod

Μετατρέψτε δικαιώματα Unix ανάμεσα σε πλαίσια επιλογής, οκταδική (755) και συμβολική (rwxr-xr-x) γραφή, με setuid, setgid, sticky bit και εντολές chmod.

Δικαιώματα
ΚατηγορίαΑνάγνωση (4)Εγγραφή (2)Εκτέλεση (1)
Ιδιοκτήτης (u)
Ομάδα (g)
Υπόλοιποι (o)
Ειδικά bit

Εντολές

Αριθμητική
Συμβολική
Όπως εμφανίζεται από το ls -l
Σχετική αλλαγή από {from}

Ποιος μπορεί να κάνει τι

    Συνήθεις προεπιλογές

    Πώς να χρησιμοποιήσετε την αριθμομηχανή chmod

    1. Ξεκινήστε από οποιαδήποτε αναπαράσταση: επιλέξτε τα πλαίσια στον πίνακα Δικαιώματα, πληκτρολογήστε μια λειτουργία στο Οκταδικό (π.χ. 755 ή 4755) ή επικολλήστε μια συμβολοσειρά όπως rwxr-xr-x ή drwxr-sr-x (απευθείας από το ls -l) στο Συμβολικό (π.χ. rwxr-xr-x). Οι υπόλοιπες προβολές ακολουθούν αμέσως.
    2. Ορίστε τα Ειδικά bit αν τα χρειάζεστε: Setuid (4000), Setgid (2000) ή Sticky (1000). Η οκταδική λειτουργία έχει τότε τέσσερα ψηφία.
    3. Εισαγάγετε το Όνομα αρχείου ή καταλόγου, επιλέξτε Είναι κατάλογος και Αναδρομικά (-R) όπως χρειάζεται και αντιγράψτε την Αριθμητική ή τη Συμβολική εντολή.
    4. Για να δοκιμάσετε μια σχετική αλλαγή, πληκτρολογήστε την στο Συμβολική αλλαγή (π.χ. u+x,go-w) και πατήστε Εφαρμογή αλλαγής.

    Τα κουμπιά Συνήθεις προεπιλογές φορτώνουν τυπικές λειτουργίες όπως 644, 600, 755 ή 2775. Η γραμμή Σχετική αλλαγή από … δείχνει την έκφραση chmod που μετατρέπει την τελευταία προεπιλογή ή την τελευταία λειτουργία που πληκτρολογήσατε στην τρέχουσα, για παράδειγμα a+x από 644 σε 755.

    Ανάγνωση των δικαιωμάτων Unix

    Κάθε αρχείο έχει τρεις κατηγορίες χρηστών: τον ιδιοκτήτη (u), την ομάδα (g) του αρχείου και τους υπόλοιπους (o), δηλαδή όλους τους άλλους. Κάθε κατηγορία παίρνει τρία δικαιώματα, με αξία το καθένα: ανάγνωση = 4, εγγραφή = 2, εκτέλεση = 1. Το άθροισμά τους δίνει ένα οκταδικό ψηφίο ανά κατηγορία: rwx = 7, rw- = 6, r-x = 5, r– = 4. Γι’ αυτό το rwxr-xr-x είναι 755.

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

    Ειδικά bit

    • Το Setuid (4000) σε ένα εκτελέσιμο το κάνει να εκτελείται με τα δικαιώματα του ιδιοκτήτη του αρχείου. Η εντολή passwd το χρησιμοποιεί για να γράψει στη βάση κωδικών πρόσβασης. Εμφανίζεται ως s στη θέση εκτέλεσης του ιδιοκτήτη, ή ως S αν λείπει η εκτέλεση.
    • Το Setgid (2000) σε ένα εκτελέσιμο το εκτελεί με τα δικαιώματα της ομάδας. Σε έναν κατάλογο, τα νέα αρχεία κληρονομούν την ομάδα του καταλόγου, κάτι που κρατά συνεπείς τους κοινούς φακέλους έργων (2775).
    • Το Sticky (1000) σε έναν κατάλογο επιτρέπει μόνο στον ιδιοκτήτη ενός αρχείου να το διαγράψει ή να το μετονομάσει, ακόμη κι όταν όλοι μπορούν να γράφουν εκεί. Το /tmp είναι 1777. Εμφανίζεται ως t (ή T) στη θέση εκτέλεσης των υπολοίπων.

    Συμβολικές αλλαγές

    Μια συμβολική έκφραση είναι «ποιος, τελεστής, δικαιώματα»: το u+x προσθέτει εκτέλεση για τον ιδιοκτήτη, το go-w αφαιρεί την εγγραφή για την ομάδα και τους υπόλοιπους, το a=r ορίζει μόνο ανάγνωση για όλους, το g=u αντιγράφει τα δικαιώματα του ιδιοκτήτη στην ομάδα. Χωρίστε τις ρήτρες με κόμματα. Το κεφαλαίο X προσθέτει εκτέλεση μόνο σε καταλόγους ή σε αρχεία που έχουν ήδη bit εκτέλεσης, γεγονός που κάνει το chmod -R a+X ασφαλές σε δέντρο με μικτά αρχεία. Όταν το «ποιος» παραλείπεται, το εργαλείο εφαρμόζει την αλλαγή σε όλες τις κατηγορίες, όπως κάνει το GNU chmod με umask 0.

    Συμβουλές ασφάλειας

    Αποφύγετε το 777. Επιτρέπει σε κάθε λογαριασμό του μηχανήματος, μεταξύ αυτών και σε μια παραβιασμένη διεργασία διακομιστή ιστού, να τροποποιήσει ή να αντικαταστήσει το αρχείο. Τυπικές ασφαλείς επιλογές είναι 644 για αρχεία, 755 για καταλόγους και σενάρια, 600 για ιδιωτικά κλειδιά και 700 για ιδιωτικούς καταλόγους. Η αριθμομηχανή προειδοποιεί για λειτουργίες με δικαίωμα εγγραφής σε όλους, για το 777 και για προγράμματα setuid. Όλα υπολογίζονται τοπικά στο πρόγραμμα περιήγησής σας.

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

    Ποια είναι η διαφορά ανάμεσα στο chmod 755 και στο chmod 775;

    Με το 755 μόνο ο ιδιοκτήτης μπορεί να γράψει· η ομάδα και οι υπόλοιποι μπορούν να διαβάσουν και να εκτελέσουν. Το 775 δίνει δικαίωμα εγγραφής και στην ομάδα, κάτι που ταιριάζει σε καταλόγους που μοιράζεται μια ομάδα εργασίας.

    Ποια δικαιώματα πρέπει να έχει ένα ιδιωτικό κλειδί SSH;

    600 (rw-------). Το OpenSSH αρνείται να χρησιμοποιήσει ιδιωτικό κλειδί που μπορεί να διαβάσει η ομάδα ή οι υπόλοιποι.

    Γιατί η οκταδική λειτουργία έχει καμιά φορά τέσσερα ψηφία;

    Το πρώτο ψηφίο κρατά τα ειδικά bit: 4 για setuid, 2 για setgid, 1 για sticky. Τα 0755 και 755 είναι η ίδια λειτουργία.

    Λειτουργεί το chmod 644 σε κατάλογο;

    Ορίζει τα bit, αλλά χωρίς x κανείς δεν μπορεί να μπει στον κατάλογο ή να ανοίξει τα αρχεία του. Για καταλόγους χρησιμοποιήστε 755 ή 750.

    Τι σημαίνει ένα κεφαλαίο S ή T στο ls -l;

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