Linux · Άρθρο
Δικαιώματα αρχείων: chmod & chown
Τρέξε ls -la σε οποιονδήποτε φάκελο Linux και θα δεις κάτι σαν -rwxr-xr-x μπροστά από κάθε αρχείο. Μοιάζει με κρυπτογράφημα, αλλά είναι απλώς η απάντηση σε ένα ερώτημα: ποιος επιτρέπεται να κάνει τι σε αυτό το αρχείο.
Τρεις κατηγορίες χρηστών
Κάθε αρχείο στο Linux έχει τρεις ομάδες δικαιωμάτων: τον ιδιοκτήτη (owner), την ομάδα (group) και όλους τους υπόλοιπους (others). Το -rwxr-xr-x χωρίζεται ακριβώς σε αυτές τις τρεις: rwx για τον ιδιοκτήτη, r-x για την ομάδα, r-x για όλους τους άλλους.
Τρεις τύποι δικαιωμάτων
r(read) — μπορείς να διαβάσεις το περιεχόμενοw(write) — μπορείς να το τροποποιήσεις ή να το διαγράψειςx(execute) — μπορείς να το τρέξεις (αρχείο) ή να μπεις μέσα του (φάκελος)
Ένα - στη θέση ενός γράμματος σημαίνει ότι εκείνο το δικαίωμα απουσιάζει.
Τα νούμερα: chmod 755
Κάθε δικαίωμα αντιστοιχεί σε μια δύναμη του 2: r=4, w=2, x=1. Προσθέτεις αυτά που θέλεις ενεργά και παίρνεις ένα ψηφίο ανά κατηγορία χρηστών. Το rwx είναι 4+2+1=7, το r-x είναι 4+0+1=5. Άρα -rwxr-xr-x γίνεται 755 — αυτό που βλέπεις συνέχεια σε scripts και εκτελέσιμα.
Για να το αλλάξεις: chmod 755 script.sh. Πιο συχνό ακόμα: chmod +x script.sh, που απλώς προσθέτει το δικαίωμα εκτέλεσης χωρίς να αγγίξει τα υπόλοιπα.
Αλλαγή ιδιοκτήτη: chown
Το chmod αλλάζει τι επιτρέπεται· το chown αλλάζει σε ποιον ανήκει το αρχείο. chown mao archive.zip κάνει τον χρήστη mao ιδιοκτήτη. Αν θες να αλλάξεις και την ομάδα μαζί: chown mao:developers archive.zip.
Γιατί αξίζει να το προσέχεις
Οι περισσότερες «περίεργες» αποτυχίες σε scripts και servers είναι δικαιώματα, όχι bugs: ένα Permission denied επειδή ξέχασες το chmod +x, ή μια υπηρεσία που δεν μπορεί να γράψει σε log επειδή ο owner είναι λάθος χρήστης. Πριν ψάξεις βαθύτερα, κοίτα πρώτα το ls -la.
Με λίγα λόγια
- Τρεις κατηγορίες: owner, group, others — τρία δικαιώματα η καθεμία: r, w, x.
- Τα νούμερα (π.χ. 755) είναι το άθροισμα r=4, w=2, x=1 ανά κατηγορία.
chmodαλλάζει τι επιτρέπεται,chownαλλάζει σε ποιον ανήκει.- Permission denied είναι συχνά η πρώτη υποψία, όχι η τελευταία.
Σχόλια · 0