Γιατί το cgi script πρέπει να έχει permissions 755;
Οι χρήστες των Windows γνωρίζουν πως αν κάνουν δεξί κλικ πάνω σε ένα αρχείο, μπορούν να δουν τις ιδιότητες (properties) για το συγκεκριμένο αρχείο.
Ένα αρχείο στα windows μπορεί να είναι read only (μόνο για ανάγνωση), hidden (κρυφό αρχείο) ή archive (κανονικό εκτελέσιμο αρχείο).
Συμβαίνει συχνά, όταν αντιγράφουν κάποιο αρχείο από cd στο σκληρό τους δίσκο, να μην μπορούν να το εκτελέσουν κατευθείαν. Αυτό συμβαίνει γιατί τα αρχεία σε cd αποθηκεύονται σε κατάσταση read only.
Όταν προσπαθούν να τρέξουν το αντιγραμμένο αρχείο, ο υπολογιστής εμφανίζει ένα παράθυρο διαλόγου, με την εξής προειδοποίηση: "Το συγκεκριμένο αρχείο είναι read only (μόνο για ανάγνωση) θέλετε να μετατραπεί σε archive (εκτελέσιμο) ώστε να μπορέσετε να το εκτελέσετε;" Αν η απάντηση είναι θετική, το αρχείο μεταπίπτει σε κατάσταση εκτελέσιμου αρχείου και εκτελείται κανονικά.
Κάπως έτσι είναι τα πράγματα και στα LINUX συστήματα. Και εκεί για να μπορέσει να εκτελεστεί ένα αρχείο πρέπει να έχει την ιδιότητα του εκτελέσιμου αρχείου.
Το Unix/LINUX όμως είναι ένα multitasking - multiuser λειτουργικό σύστημα, οπότε τα πράγματα είναι κάπως πολυπλοκότερα.
Σε ένα αρχείο ή ένα φάκελο αρχείων στο LINUX, έχουν δικαιώματα 3 διαφορετικοί παράγοντες. Ο ιδιοκτήτης (owner ή o ) του αρχείου, η ομάδα (group ή g ), και ο υπόλοιπος κόσμος (world ή w ).
O ιδιοκτήτης (owner) του αρχείου είναι αυτός που δημιούργησε το συγκεκριμένο αρχείο.
Αν π.χ. ανεβάσετε το αρχείο myfile.cgi στο server εσείς θα είστε ιδιοκτήτης του συγκεκριμένου αρχείου. Η ομάδα (group) αναφέρεται στους χρήστες που ανήκουν στην ίδια ομάδα με τον ιδιοκτήτη του αρχείου.
Αν π.χ. στο site σας έχετε 3 χρήστες τους user1, user2, user3 και το αρχείο το έχει ανεβάσει στο server ο χρήστης user2, τότε ο χρήστης user2 είναι ο ιδιοκτήτης του αρχείου και οι χρήστες user1 και user3 ανήκουν στην ομάδα.
Οι υπόλοιποι (world) είναι όλοι οι υπόλοιποι χρήστες - επισκέπτες του site που μπορούν να εκτελέσουν το αρχείο π.χ. να στείλουν μία φόρμα επικοινωνίας.
Σε αντίθεση με Windows όπου τα δικαιώματα του αρχείου είναι ίδια για όλους τους χρήστες που εργάζονται στον συγκεκριμένο υπολογιστή, στο Unix μπορεί να έχουμε διαφορετικά δικαιώματα για τον ιδιοκτήτη γα την ομάδα και για τους υπόλοιπους.
Ο τρόπος που αντιστοιχίζονται τα δικαιώματα στο αρχείο είναι ο εξής: χρησιμοποιείται το οκταδικό σύστημα (από 0 έως 7), με τον εξής τρόπο, το δικαίωμα ανάγνωσης (read) αντιστοιχεί στον αριθμό 4.
Το δικαίωμα εγγραφής (write) αντιστοιχεί στον αριθμό 2. Και το δικαίωμα εκτέλεσης (execute) αντιστοιχεί στον αριθμό 1.
Όταν λοιπόν κάποιος έχει πλήρη δικαίωματα πάνω στο αρχείο, δηλαδή ανάγνωσης, εγγραφής και εκτέλεσης, τα δικαιώματα του αντιστοιχούν στον αριθμό 7 (4+2+1=7).
Όταν κάποιος έχει δικαίωμα ανάγνωσης και εκτέλεσης του αρχείου, έχει 4+1=5.
Το σύνολο των ιδιοτήτων ενός αρχείου, εξαρτάται από τα δικαιώματα του ιδιοκτήτη της ομάδας και των υπολοίπων και εκφράζεται με έναν τριψήφιο αριθμό ogw.
Το πρώτο ψηφίο ο (owner) χαρακτηρίζει τα δικαιώματα του ιδιοκτήτη του αρχείου.
Το δεύτερο ψηφίο g (group) τα δικαιώματα της ομάδας και το τρίτο ψηφίο w (world) τα δικαιώματα των υπολοίπων.
Έτσι για παράδειγμα σε ένα αρχείο με δικαιώματα 755 ο ιδιοκτήτης έχει δικαιώματα ανάγνωσης, εγγραφής και εκτέλεσης, η ομάδα έχει δικαίωμα ανάγνωσης και εκτέλεσης και οι υπόλοιποι έχουν δικαίωμα ανάγνωσης και εκτέλεσης.
Για να τρέξει ένα cgi script πρέπει να είναι εκτελέσιμο από τους υπόλοιπους (world) πρέπει να έχει file permissions 755.