Δημοσιεύτηκε: 31 Αύγ 2011, 00:38
από lucinos
Ας πούμε και δυο λογάκια για τις άδειες τών αρχείων.

Βρισκόμαστε στον φάκελο ~/playground
Τρέξτε:
Κώδικας: Επιλογή όλων
ls -l sktriptaki.sh

Αυτό δίνει αναλυτικότερες πληροφορίες για το αρχείο skriptaki.sh
Στην αρχή ξεκινάει από την σειρά συμβόλων: -rwxr-xr-x
Το πρώτο σύμβολο εκφράζει το είδος τού αρχείου.
Η απλή παύλα - σημαίνει "κανονικό" αρχείο
Το γράμμα d σημαίνει φάκελος (directory)
Το γράμμα l σημαίνει σύνδεσμος (link), ένα ενδιαφέρον είδος αρχείων που δεν έτυχε να δούμε
Τα γράμματα c και b σημαίνουν συσκευή (character, block). Η μεταξύ τους διαφορά αφορά τον πυρήνα και όχι επομένως εσάς (τον χρήστη)

Τα επόμενα τρία γράμματα αφορούν τα δικαιώματα τού ιδιοκτήτη. r σημαίνει ότι υπάρχει δικαίωμα ανάγνωσης. Σε περίπτωση που δεν το έχει το δικαίωμα θα είχαμε παύλα. w σημαίνει δικαίωμα εγγραφής. Πάλι αν δεν υπάρχει το δικαίωμα θα είχαμε παύλα. Τέλος το x σημαίνει δικαίωμα εκτέλεσης. Τα x προστέθηκαν όταν δώσαμε δικαιώματα εκτελέσιμου στο skriptaki.sh στην προηγούμενη ενότητα, πριν αυτό αντί για x υπήρχαν παύλες. Ο ιδιοκτήτης λοιπόν έχει δικαιώματα ανάγνωσης, εγγραφής και εκτέλεσης. Τα επόμενα τρία γράμματα λειτουργούν με τον ίδιο ακριβώς τρόπο αλλά αφορούν τα δικαιώματα τής ομάδας χρηστών στην οποία ανήκει το αρχείο. Αυτοί έχουν δικαίωμα ανάγνωσης και εκτέλεσης αλλά όχι εγγραφής (δηλαδή δεν μπορούν να σβήσουν ή να πειράξουν το skriptaki.sh). Τέλος τα επόμενα τρία γράμματα αφορούν όλους τούς υπολοίπους χρήστες. Επίσης βλέπουμε δικαιώματα ανάγνωσης και εκτέλεσης αλλά όχι εγγραφής. Ακολουθεί ένας άσσος που σημαίνει το πλήθος τών αρχείων και μετά δυο φορές το όνομα τού χρήστη σας. Το πρώτο αναφέρεται στον ιδιοκτήτη τού αρχείου, ενώ το δεύτερο στην ομάδα τού αρχείου. Έτσι οι χρήστες που ανήκουν στην ομάδα σας έχουν τα δικαιώματα τής μεσαίας τριάδας συμβόλων όπως αναφέραμε, ενώ όσοι δεν ανήκουν στην ομάδα σας έχουν τα δικαιώματα τής τελευταίας τριάδας.

Ακολουθεί ένας αριθμός που εκφράζει το μέγεθος τού αρχείου, η ημερομηνία και ώρα δημιουργίας/τροποποίησης τού αρχείου και τέλος το όνομα τού αρχείου.
Κώδικας: Επιλογή όλων
chmod 750 skriptaki.sh

Το παραπάνω είναι παράδειγμα τού γενικού τρόπου καθορισμού τών δικαιωμάτων στο αρχείο. Το 750 είναι ένας οκταδικός αριθμός (octal) που καθωρίζει όλες τις άδειες. Αυτό μεταφράζεται με τον ακόλουθο τρόπο. Το πρώτο ψηφίο αφορά τον ιδιοκτήτη, το δεύτερο την ομάδα και το τρίτο τούς λοιπούς και κάθε ψηφίο εκφράζεται σας άθροισμα όπου r=4, w=2, χ=1 και -=0. Έτσι 7=4+2+1 δηλαδή rwx, 5=4+1 δηλαδή r-x και το 0 σημαίνει ---

Πειραματιστείτε με τις άδειες (μέσα σε αρχεία και φακέλους που θα φτιάξετε στο ~/playground ) για να ξεκαθαρίσετε απορείες τού στυλ: μπορώ να μετακινήσω/σβήσω ένα αρχείο που έχω δικαίωμα εγγραφής μέσα σε φάκελο που δεν έχω δικαίωμα εγγραφής; μπορώ να τού αλλάξω περιεχόμενο; κλπ. (υπόδειξη: οι φάκελοι συμπεριφέρονται σαν αρχεία με περιεχόμενο τούς τίτλους τών φακέλων/αρχείων που περιέχουν)

Γενικά η ιδιοκτησία αλλάζει με το chown ενώ ειδικά για την ομάδα υπάρχει και η chgrp (ίσως χρειάζονται δικαιώματα υπερχρήστη για τέτοιες αλλαγές). Με την εντολή groups βλέπετε σε ποιες ομάδες ανήκετε.

Κάθε αρχείο ανήκει σε έναν χρήστη και μία ομάδα. Κάθε χρήστης μπορεί να ανήκει σε οποιονδήποτε αριθμό ομάδων. Μπορούμε να δημιουργήσουμε όσες ομάδες θέλουμε ώστε να δίνουμε δικαιώματα κατά βούληση. (Αν το σκεφτείτε καλά θα δείτε ότι το γεγονός ότι τα αρχεία ανήκουν σε μία ομάδα δεν είναι περιοριστικό)

Κάντε και το ακόλουθο: Προσθέστε στο skriptaki.sh την γραμμή
Κώδικας: Επιλογή όλων
ls /root

Θα διαπιστώσετε όπως αναμένετε ότι υπάρχει άρνηση πρόσβασης. Πρέπει να το τρέξετε με δικαιώματα υπερχρήστη (sudo).

Με την ευκαιρία διαβάστε και το ενδιαφέρον κομιξάκι που έχει βγάλει η google για τον chrome.
http://www.google.com/googlebooks/chrome/med_26.html
Όλο έχει ενδιαφέρον αλλά συγκεκριμένα αναφέρομαι στις σελίδες 27 ως 29

Ίσως τώρα έχετε μια ιδέα τών δυσκολιών που έχει να αντιμετωπίσει ένας ιός στο λίνουξ. Ένα εκτελέσιμο αν δεν έχει και δικαιώματα υπερχρήστη κανονικά δεν μπορεί να πειράξει το σύστημα. Αυτό αμέσως περιορίζει το πεδίο δράσης του ιού μόνο στα όρια τού χρήστη. Καθώς στο λίνουξ ποτέ δεν ανταλλάσσουμε εκτελέσιμα συστήματος με τον τρόπο που το κάναμε στην DOS ή στα windows πρακτικά δεν μπορούν να διαδοθούν ποτέ ιοί με ανάλογο τρόπο. Υπάρχουν πολλοί που αναφέρουν ότι το λίνουξ δεν υποφέρει από ιούς γιατί δεν το χρησιμοποιεί ανάλογα πολύς κόσμος και επομένως δεν υπάρχει αντίστοιχο ενδιαφέρον να βρεθούν κενά στην άμυνα. Λίνουξ χρησιμοποιούν σήμερα πολλά εκατομμύρια σε όλον τον κόσμο. Κάποτε η DOS δεν είχε τόσους χρήστες, είχε όμως ένα κάρο ιούς. Ακόμα καλύτερα το λίνουξ κανονικά θα έπρεπε να το υπολογίζουμε σαν υψηλής προτεραιότητας στόχο αφού έχει υψηλότατο ποσοστό στούς σέρβερ. Παραμένει όμως ιδιαίτερα ασφαλές. Υπάρχει απόλυτη ασφάλεια; Όχι. Δύο κυρίως είναι οι βασικές τρύπες. Η μία είναι η ανοησία τού ίδιου τού χρήστη και η άλλη είναι οι πιθανές τρύπες στα ίδια τα εγκατεστημένα προγράμματα. Όπως λέει και το ρητό, το λίνουξ είναι τόσο σταθερό όσο είναι τα αποθετήριά του.