Αριθμομηχανή chmod
Μετατρέψτε δικαιώματα Unix ανάμεσα σε πλαίσια επιλογής, οκταδική (755) και συμβολική (rwxr-xr-x) γραφή, με setuid, setgid, sticky bit και εντολές chmod.
| Κατηγορία | Ανάγνωση (4) | Εγγραφή (2) | Εκτέλεση (1) |
|---|---|---|---|
| Ιδιοκτήτης (u) | |||
| Ομάδα (g) | |||
| Υπόλοιποι (o) |
Εντολές
- Αριθμητική
- Συμβολική
- Όπως εμφανίζεται από το ls -l
- Σχετική αλλαγή από {from}
Ποιος μπορεί να κάνει τι
Συνήθεις προεπιλογές
Πώς να χρησιμοποιήσετε την αριθμομηχανή chmod
- Ξεκινήστε από οποιαδήποτε αναπαράσταση: επιλέξτε τα πλαίσια στον πίνακα Δικαιώματα, πληκτρολογήστε μια λειτουργία στο Οκταδικό (π.χ. 755 ή 4755) ή επικολλήστε μια συμβολοσειρά όπως
rwxr-xr-xήdrwxr-sr-x(απευθείας από τοls -l) στο Συμβολικό (π.χ. rwxr-xr-x). Οι υπόλοιπες προβολές ακολουθούν αμέσως. - Ορίστε τα Ειδικά bit αν τα χρειάζεστε: Setuid (4000), Setgid (2000) ή Sticky (1000). Η οκταδική λειτουργία έχει τότε τέσσερα ψηφία.
- Εισαγάγετε το Όνομα αρχείου ή καταλόγου, επιλέξτε Είναι κατάλογος και Αναδρομικά (-R) όπως χρειάζεται και αντιγράψτε την Αριθμητική ή τη Συμβολική εντολή.
- Για να δοκιμάσετε μια σχετική αλλαγή, πληκτρολογήστε την στο Συμβολική αλλαγή (π.χ. 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.
Σχετικά εργαλεία
- Μετατροπέας αριθμητικών συστημάτων Μετατρέψτε αριθμούς μεταξύ δυαδικού, οκταδικού, δεκαδικού, δεκαεξαδικού και οποιασδήποτε βάσης 2–36, με συμπλήρωμα ως προς δύο, κλάσματα και βήματα.
- Γεννήτρια ανακατευθύνσεων .htaccess Δημιουργήστε ανακατευθύνσεις 301 και 302 για .htaccess ή Nginx, επιβάλετε HTTPS και www, μετακινήστε domain και ελέγξτε για βρόχους και αλυσίδες.
- Δημιουργός εκφράσεων Cron Δημιουργήστε μια έκφραση cron πεδίο προς πεδίο, δείτε τις επόμενες εκτελέσεις σε οποιαδήποτε ζώνη ώρας και μετατρέψτε την σε μορφή systemd, Quartz ή AWS.