Λειτουργικά Συστήματα - Εργαστήριο 6. 6ο Εργαστήριο. Συμπίεση αρχείων Χρήση ειδικών χαρακτήρων στην γραμμή εντολών. Χρήστες και Ομάδες Χρηστών

Σχετικά έγγραφα
ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τμήμα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήματα (Εργαστήριο) Διδάσκων: I. Τσακνάκης. 8ο Εργαστήριο

ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τµήµα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήµατα (Εργαστήριο) Διδάσκων: I. Τσακνάκης. 7ο Εργαστήριο

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 1

3ο Εργαστήριο Βασικές εντολές διαχείρισης αρχείων σε LINUX

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

[11] Υπολογιστικά συστήματα: Στρώματα. Περιεχόμενα. Εισαγωγή. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό

Δίκτυα Η/Υ στην Επιχείρηση

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Εισαγωγή στο Unix

Μερικές άλλες χρήσιμες εντολές

Unix: Εντολές, οργάνωση και χειρισµός αρχείων, διεργασίες

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στο Λ.Σ. UNIX

2ο Εργαστήριο. Εισαγωγική στο Λ.Σ. LINUX Γενικές εντολές συστήματος και χρηστών

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

Δικαιώματα Πρόσβασης στο Λειτουργικό Σύστημα UNIX. Χρήστες και Ομάδες στο Unix. Δικαιώματα στο Unix. Παράδειγμα Δένδρου Συστήματος Αρχείων

Η εντολή ln. σύνδεση με την πραγματική καταχωρημένη πληροφορία. περισσότερα ονόματα (συνδέσεις). Τα επιπλέον ονόματα δημιουργούνται με

% ls -l /usr/bin/wc -rwxr-xr-x 1 root bin 7368 Jul /usr/bin/wc

Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ

Προγραμματισμός Διαχείρισης Συστημάτων Ι

Βασικές εντολές του Unix-Linux

Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

Εργαστήριο ΔΙΑΧΕΙΡΙΣΗ ΑΡΧΕΙΩΝ & ΚΑΤΑΛΟΓΩΝ ΣΤΟ UNIX. Εισαγωγή

Εγχειρίδιο για το Λειτουργικό Σύστηµα Linux. Ιωάννης Ε. Λιβιέρης

Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης eclass 1.7. Οδηγίες Αναβάθμισης (Upgrade) Αθήνα, 16 Μαρτίου Εισαγωγή

Δικαιώματα Πρόσβασης στο Λειτουργικό Σύστημα UNIX

Users / Groups / Permissions. Πώς ξεκίνησε η ανάγκη για πολλαπλούς χρήστες σε ένα σύστημα;

Μερικές άλλες χρήσιμες εντολές

Εργαστήριο ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ UNIX

Λειτουργικά Συστήματα

Open eclass Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης

Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης eclass 2.0. Οδηγίες Αναβάθµισης (Upgrade) Αθήνα, 1 Ιουνίου Εισαγωγή

Επαναληπτικές Ασκήσεις

ΜΑΘΗΜΑ: ΕΙΑΓΩΓΗ ΣΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ. 9o ΕΡΓΑΣΤΗΡΙΟ

./mydiz {-c -a -x -m -d -p -j} <archive-file> <list-of-files/dirs>

Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ

Λειτουργικό Σύστημα: διαχείριση πόρων. Τι είναι ένα αρχείο ; Διαχείριση αρχείων. Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

Προγραμματισμός Διαχείρισης Συστημάτων Ι

Linux με τη χρήση κονσόλας

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

1ο Εργαστήριο Σύστημα Αρχείων

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στο Λ.Σ. UNIX

2.Shell, users, groups και privilegies

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΟΙΚΟΝΟΜΙΚΩΝ ΕΠΙΣΤΗΜΩΝ

ΤΕΙΘ ΣΤΕΦ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ. 3o ΕΡΓΑΣΤΗΡΙΟ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Επισκόπηση Λ.Σ. Εργαστηριακές Ασκήσεις

Εισαγωγή στα Λειτουργικά Συστήματα (Λ/Σ) Το UNIX και οι εντολές του Παρουσίαση 3

Λειτουργικό Σύστημα: διαχείριση πόρων. Διαχείριση αρχείων. Τι είναι ένα αρχείο ; Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

ΔΙΑΧΕΙΡΙΣΗ ΚΟΙΝΟΧΡΗΣΤΩΝ ΦΑΚΕΛΩΝ ΚΑΙ ΑΡΧΕΙΩΝ

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Σχολή Θετικών Επιστημών Τμ. Πληροφορικής. Διδάσκων: Ι. Η. Λαγαρής. Εισαγωγή

Κεφάλαιο 4: Λογισμικό Συστήματος

Εισαγωγή...1 Το κοινό αυτού του βιβλίου...2 Οι συμβάσεις που χρησιμοποιούνται στο βιβλίο...3

ιαχείριση Πληροφοριών στο ιαδίκτυο

Διαχείριση Πληροφοριών στο Διαδίκτυο. Εργαστήριο 1

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I

Οδηγός Χρήσης της Υπηρεσίας Τηλεομοιότυπου (RightFax Fax Service) Web Utility. (διαδικτυακή εφαρμογή)

Εντολές του Λειτουργικού Συστήματος UNIX

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΑΣΦΑΛΕΙΑ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Ασκήσεις

Υπηρεσία διαμοιρασμού αρχείων

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ ΕΡΓΑΣΤΗΡΙΟ ΑΠΑΙΤΗΣΕΙΣ ΚΑΙ ΔΙΑΔΙΚΑΣΙΑ ΕΞΕΤΑΣΗΣ

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή

ΕΡΓΑΣΤΗΡΙΟ 1: Εισαγωγή, Χρήσιμες Εφαρμογές

Εργαστήριο 4 Ασκήσεις: Διαχείριση Δικτύου (nmap, iptables) και Προχωρημένες Εντολές Unix (grep, ps, cut, find)

Οδηγίες για την εγκατάσταση του πακέτου Cygwin

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Μάθημα 2 ο ΟΡΓΑΝΩΣΗ ΣΥΣΤΗΜΑΤΟΣ ΑΡΧΕΙΩΝ

Λειτουργικά Συστήµατα

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές

Εφαρμογές Πληροφορικής

Μεταφορά Αρχείων µε χρήση της Υπηρεσίας FTP σελ. 1

ΜΑΘΗΜΑ: ΕΙΑΓΩΓΗ ΣΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ. 10o ΕΡΓΑΣΤΗΡΙΟ

Λειτουργικά Συστήματα (Λ/Σ)

ΟΔΗΓΙΕΣ ΧΡΗΣΤΗ ΓΙΑ ΤΟ ΠΡΟΓΡΑΜΜΑ ΗΛΕΚΤΡΟΝΙΚΗΣ ΤΑΞΗΣ

Privilege Separation. Dimitris Mitropoulos

PERL. Δήμος Παύλου Δημήτρης Κουζαπάς

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας

Πληροφορική 2. Δομές δεδομένων και αρχείων

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP

ΠΑΓΚΑΛΟΣ ΙΩΑΝΝΗΣ ΣΙΣΜΑΝΗΣ ΝΙΚΟΣ. File Transfer Protocol

Εισαγωγή στα Λειτουργικά Συστήματα

Εργαστήριο Βάσεων Δεδομένων

Προγραμματιστικό Περιβάλλον

Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ

Εισαγωγή στο λειτουργικό σύστηµα Unix

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

Εγκατάσταση Joomla 1. Στο Π.Σ.Δ. ( 2. Τοπικά 3. Σε δωρεάν Server

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή

Αρχεία. Προγραμματισμός II 1

Εδώ υπάρχει ένα παράδειγμα από ένα φανταστικό πρόγραμμα και το πακέτο του:

Λειτουργικά Συστήματα

Οδηγίες Χρήσης της MySQL

Εγχειρίδιο Χρήστη - Μαθητή

ΟΛΑ ΤΑ SCRIPT files πρέπει να είναι ΕΚΤΕΛΕΣΙΜΑ: $*, : ΟΛΑ - Η λίστα (ο πίνακας) με τα ορίσματα $# πλήθος παραμέτρων. one two third parameter

Transcript:

ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τμήμα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήματα (Εργαστήριο) Διδάσκων: I. Τσακνάκης 6ο Εργαστήριο Συμπίεση αρχείων Χρήση ειδικών χαρακτήρων στην γραμμή εντολών Χρήστες και Ομάδες Χρηστών Δικαιώματα Αρχείων 1

Συμπίεση αρχείων Στα λειτουργικά συστήματα Unix και Linux χρησιμοποιούνται διάφορες εφαρμογές για συμπίεση και αποσυμπίεση των αρχείων. Για το σκοπό αυτό χρησιμοποιουνται 2 βασικές εντολές: gzip και compress. tar Η εντολή tar παίρνει ως ορίσματα αρχεία ή καταλόγους και τα συνενώνει σε ένα ενιαίο αρχείο, συνήθως για να συμπιεστεί. Με την ίδια εντολή μπορούμε να κάνουμε και την αντίστροφη ενέργεια. Function letters και η λειτουργεία τους: -c, create a new archive -d, find differences between archive and file system -t, list the contents of an archive -u, only append files newer than copy in archive -x, extract files from an archive Παραδείγματα: tar cf a.tar test1 test2 συνένωσε τους φακέλους test1 και test2, όλους τους φακέλους τους και τα αρχεία τους, σε ένα αρχείο με όνομα a.tar tar tf a.tar εμφάνισε τα περιεχόμενα του αρχείου a.tar tar xf a.tar δημιούγησε (extract) τους φακέλους test1 και test2, όλους τους φακέλους τους και τα αρχεία τους gzip και gunzip Η εντολή gzip παίρνει όρισμα ένα αρχείο το οποίο το συμπιέζει, προσθέτει σ' αυτό την επέκταση.gz και διαγράφει το πρωτότυπο αρχείο. Για να αποσυμπιέσουμε ένα αρχείο, χρησιμοποιούμε την εντολή gunzip ή την εντολή gzip με την επιλογή -d αλλά πρέπει το αρχείο που θέλουμε να αποσυμπιέσουμε να έχει την επέκταση.gz. Με την επιλογή -S μπορούμε να καθορίσουμε την δική μας επέκταση και με την επιλογή -l μπορούμε να δούμε τα συμπιεσμένα ή αποσυμπιεσμένα μεγέθη των αρχείων κατά τη διάρκεια της συμπίεσης ή της αποσυμπίεσης. Με την επιλογή -t μπορούμε να ελέγξουμε την ακεραιότητα του συμπιεσμένου αρχείου. Η εντολή gunzip μπορεί να αποσυμπιέσει και αρχεία που έχουν δημιουργηθεί με την εντολή compress που παρουσιάζεται παρακάτω. 2

Παράδειγμα: $ gzip mydir.tar Συμπιέζει το αρχείο mydir.tar στο αρχείο mydir.tar.gz και διαγράφει το mydir.tar. bzip2 και bunzip2 Η εντολή bzip2 παίρνει όρισμα ένα αρχείο το οποίο το συμπιέζει, προσθέτει σ' αυτό την επέκταση.gz2 και διαγράφει το πρωτότυπο αρχείο. Επιτυγχάνει συνήθως καλύτερα αποτελέσματα από την gzip. zip Η εντολή zip χρησιοποιείται τόσο για την συμπίεση όσο και για την αποσυμπίση αρχείων. Είναι συμβατή με την εφαρμογή winzip και pkzip των Windows. Σε αντίθεση με τις προηγούμενες εντολές μπορεί να συμπιέσει περισσότερα από ένα αρχεία. compress και uncompress Η εντολή compress παίρνει όρισμα ένα αρχείο το οποίο το συμπιέζει, προσθέτει σ' αυτό την επέκταση.z και διαγράφει το πρωτότυπο αρχείο. Παράδειγμα: $ compress mydir.tar Συμπιέζει το αρχείο mydir.tar στο αρχείο mydir.tar.z και διαγράφει το mydir.tar. Χρήστες και Ομάδες Χρηστών Χρήστες Το Λ.Σ. του UNIX επιτρέπει την ύπαρξη αλλά και την ταυτόχρονη χρήση του συστήματος σε πάνω από ένα χρήστες. Κάθε χρήστης έχει ένα μοναδικό αριθμό, που τον χαρακτηρίζει (user ID - UID User Identification), ο οποίος αντιστοιχεί στο όνομα χρήστη. Όλα τα ονόματα χρηστών και τα UID αποθηκεύονται στο αρχείο /etc/passwd. Οι κωδικοί πρόσβασης για κάθε χρήστη είναι αποθηκευμένοι στο αρχείο /etc/shadow κωδικοποιημένοι έτσι ώστε να μην είναι εφικτή η ανάγνωση των κωδικών άλλων χρηστών ακόμα και σε χρήστες που έχουν πρόσβαση στο αρχείο και μπορούν να το διαβάσουν. Όπως έχει ήδη αναφερθεί, σε προηγούμενα εργαστήρια, σε κάθε χρήστη αντιστοιχεί ένα home directory (αρχικός φάκελος χρήστη). Ο φάκελος αυτός βρίσκεται κάτω από τον φάκελο /home, έχει όνομα το username του χρήστη και κάτω από αυτόν αποθηκεύονται τα προσωπικά αρχεία κάθε χρήστη. Κάθε χρήστης μπορεί να δει μόνο τα δικά του αρχεία (ανάγνωση, εγγραφή, εκτέλεση), εκτός αν του δώσουν δικαιώματα οι άλλοι χρήστες. Όταν ένας χρήστης δημιουργήσει ένα αρχείο, τότε ο χρήστης αυτός είναι owner (κύριος) του αρχείου αυτού και μπορεί να διαχειριστεί τα δικαιώματα πρόσβασης των υπολοίπων χρηστών σε αυτό. Το UID του owner κάθε αρχείου αποθηκεύεται στα metadata που φυλάσσονται στο inode. 3

Ομάδες Κάθε χρήστης ανήκει σε μία ή περισσότερες ομάδες χρηστών. Η κάθε ομάδα έχει ένα μοναδικό αριθμό που την χαρακτηρίζει (group ID - GID Group Identification), ο οποίος αντιστοιχεί στο όνομα ομάδας (groupname). Για κάθε χρήστη επιλέγεται μία ομάδα η οποία θεωρείται πρωτεύουσα ή κύρια ομάδα (primary group). Η πρωτεύουσα ομάδα ορίζεται στο αρχείο /etc/passwd ενώ οι δευτερεύουσες ομάδες ορίζονται στο αρχείο /etc/group. Οι χρήστες μίας ομάδας μοιράζονται τα αρχεία που ανήκουν στην ομάδα. Όταν ένας χρήστης δημιουργήσει ένα αρχείο, τότε η πρωτεύουσα ομάδα του είναι αυτή στην οποία ανήκει ένα νέο αρχείο. Η πληροφορία αυτή, δηλαδή το GID της ομάδας στην οποία ανήκει το αρχείο, αποθηκεύεται στα metadata που φυλάσσονται στο inode. Ιδιωτική ομάδα χρήστη (user private group): Κάθε χρήστης ανήκει στη δική του ομάδα. Με αυτό τον τρόπο, αποθαρρύνεται ο χρήστης από το να αλλάζει επιπόλαια τα δικαιώματα χρήσης των αρχείων του. Ο χρήστης root Ο root είναι ειδικός λογαριασμός χρήστη με δικαιώματα διαχείρισης του συστήματος. Αυτός ο λογαριασμός χρήστη έχει απεριόριστη πρόσβαση σε όλο το σύστημα (αρχεία, συσκευές, εφαρμογές) και είναι ο owner των περισσότερων αρχείων που υπάρχουν στο σύστημα και δεν ανήκουν σε κάποιον από τους κανονικούς χρήστες. Μερικές φορές αναφερόμαστε σε αυτόν ως superuser. Ο διαχειριστής πρέπει να χρησιμοποιεί ένα συνηθισμένο λογαριασμό χρήστη και χρησιμοποιεί τον root μόνο όταν είναι απολύτως απαραίτητο. Οι συνηθισμένοι χρήστες ενός συστήματος δε μπορούν να κάνουν μεγάλη ζημιά σε ένα σύστημα. Ένα απλό λάθος στη δακτυλογράφηση μίας εντολής, από το χρήστη root, μπορεί να καταστρέψει το σύστημα. Οι χρήστες και ομάδες του συστήματος Εκτός από τους λογαριασμούς των χρηστών και του διαχειριστή του συστήματος (root), σε ένα σύστημα Unix/Linux, υπάρχουν και άλλοι λογαριασμοί χρηστών που δεν αντιστοιχούν σε φυσικά πρόσωπα. Οι λογαριασμοί αυτοί, και οι αντίστοιχες ομάδες, υπάρχουν κυρίως για να εκτελούν τις server εφαρμογές (π.χ. web server). Οι λογαριασμοί αυτοί έχουν UID και GID μικρότερα του 500. Η εκτέλεση των εφαρμογών με αυτό τον τρόπο περιορίζει την ζημιά που μπορεί, πιθανώς, να προκαλέσει κάθε εφαρμογή στο σύστημα. Κατηγορίες χρηστών αρχείων Υπάρχουν τρεις κατηγορίες χρηστών: Χρήστης ή ιδιοκτήτης ή κύριος (user, owner, συμβολίζεται με u) Χρήστες που ανήκουν στην ίδια ομάδα (group, συμβολίζεται με g) Όλοι οι υπόλοιποι χρήστες(others, συμβολίζεται με o). 4

Τα αρχεία /etc/passwd, /etc/shadow & /etc/group Οι πληροφορίες για την πιστοποίηση των χρηστών φυλάσσονται σε απλά αρχεία κειμένου: Στο αρχείο /etc/passwd αποθηκεύεται η αντιστοίχιση μεταξύ ονομάτων χρηστών (username) και αριθμού χρήστη (UID). Το αρχείο /etc/passwd έχει τα ακόλουθα πεδία: User name χρήστη, συνθηματικό (δεν εμφανίζεται εδώ), UID, GID πρωτεύουσας ομάδας, όνομα χρήστη, home directory, login shell. Στο αρχείο /etc/group αποθηκεύεται η αντιστοίχιση μεταξύ ονόματος ομάδας (groupname) και αριθμού ομάδας (GID). Το αρχείο /etc/group έχει τα ακόλουθα πεδία: όνομα ομάδας, συνθηματικό ομάδας (group password), GID, κατάλογος μελών της ομάδας. Στο αρχείο /etc/shadow αποθηκεύονται τα password των χρηστών και πληροφορίες σχετικά με την ενδεχόμενη λήξη των λογαριασμών τους. Ως διαχωριστικό των πεδίων και στα τρία αρχεία που αναφέραμε, χρησιμοποιείται ο χαρακτήρας :. Δικαιώματα Αρχείων Το μοντέλο ασφαλείας του Unix/Linux Κάθε αρχείο ανήκει σε ένα χρήστη και κάθε χρήστης βλέπει τα δικά του αρχεία. Μόνο αν ο ιδιοκτήτης ενός αρχείου δώσει άδεια σε άλλους χρήστες μπορούν αυτοί να δουν τα αρχεία του. Η ταυτότητα του χρήστη προσδιορίζεται κατά τη διαδικασία του login. Κάθε αρχείο είναι συσχετισμένο με μία ομάδα. Κάθε διεργασία (εφαρμογή που εκτελείται) έχει ένα ιδιοκτήτη (χρήστη) και μία συσχετισμένη ομάδα, μπορεί δε να προσπελάσει μόνο τους πόρους του συστήματος που μπορεί να προσπελάσει ο ιδιοκτήτης της και η ομάδα αυτή. Ασφάλεια αρχείων Το UNIX καθορίζει την ασφάλεια των αρχείων χρησιμοποιώντας ένα μοντέλο στο οποίο για κάθε αρχείο διατηρούνται ξεχωριστά δικαιώματα. Υπάρχουν συγκεκριμένες κατηγορίες χρηστών και για κάθε κατηγορία καθορίζονται διαφορετικά δικαιώματα. Κάθε φορά που υπάρχει πρόσβαση σε ένα αρχείο από κάποιον χρήστη, γίνεται έλεγχος της κατηγορίας στην οποία ανήκει ο χρήστης και κατόπιν έλεγχος των δικαιωμάτων της συγκεκριμένης 5

κατηγορίας για να επιτραπεί ή όχι η ενέργεια που επιχειρεί ο χρήστης πάνω στο αρχείο. Διαδικασία ελέγχου δικαιωμάτων Όταν μία διεργασία ζητά πρόσβαση σε ένα αρχείο, ο χρήστης και η ομάδα της διεργασίας συγκρίνονται με το χρήστη και την ομάδα του αρχείου: 1. Αν ο χρήστης ταυτίζεται, εφαρμόζονται τα δικαιώματα πρόσβασης του χρήστη και δεν εξετάζονται τα δικαιώματα της ομάδας και των υπολοίπων χρηστών 2. Αλλιώς, αν ταυτίζεται η ομάδα, εφαρμόζονται τα δικαιώματα πρόσβασης της ομάδας και δεν εξετάζονται τα δικαιώματα των υπολοίπων χρηστών 3. Αλλιώς, εφαρμόζονται τα δικαιώματα για τους υπόλοιπους χρήστες Τύποι δικαιωμάτων αρχείων Το UNIX αναγνωρίζει τρία δικαιώματα: Ανάγνωσης (Read) Εγγραφής (Write) Εκτέλεσης (Execute) Τα δικαιώματα για αρχεία, για οποιαδήποτε από τις τρεις κατηγορίες χρηστών, έχουν ως εξής: 1. Δικαίωμα ανάγνωσης (read) σημαίνει ότι τα περιεχόμενα του αρχείου μπορούν να διαβαστούν (πχ να εμφανιστούν με μία εντολή όπως η cat ή η less). 2. Δικαίωμα εγγραφής (write) σημαίνει ότι το αρχείο μπορεί να υποστεί επεξεργασία και να αποθηκευτεί το περιεχόμενό του. 3. Δικαίωμα εκτέλεσης (execute) σημαίνει ότι ο φλοιός θα προσπαθήσει να εκτελέσει το αρχείο, όταν το όνομα του αρχείου δοθεί ως εντολή. Αυτό το δικαίωμα έχει νόημα μόνο για binary αρχεία (αρχεία που έχουν προκύψει από την μεταγλώττιση (compile) αρχείων κειμένου που περιέχουν εντολές γραμμένες σε γλώσσα C ή C++) ή αρχεία script (αρχεία κειμένου που περιέχουν εντολές συστήματος) και όχι για απλά αρχεία δεδομένων. Εξειδικεύοντας τα δικαιώματα για αρχεία καταλόγων (σε παλαιότερο εργαστήριο έχει αναφερθεί ότι κατάλογος είναι ένα αρχείο, που περιέχει μία λίστα με εγγραφές της μορφής όνομα αρχείου αριθμός inode, για όλα τα αρχεία που περιέχονται στο κατάλογο), για οποιαδήποτε από τις τρεις κατηγορίες χρηστών, γίνεται αντιληπτό ότι: 1. Δικαίωμα ανάγνωσης σημαίνει ότι εμφανίζονται τα περιεχόμενα του καταλόγου (με χρήση της εντολής ls) 2. Δικαίωμα εγγραφής σημαίνει ότι μπορούν να δημιουργηθούν νέα αρχεία μέσα σε αυτόν τον κατάλογο, να διαγραφούν αρχεία από τον κατάλογο αυτό αλλά και να μετονομαστούν. 6

3. Δικαίωμα εκτέλεσης σημαίνει ότι ο χρήστης μπορεί να μπει στον κατάλογο αυτό (με χρήση της εντολής cd) και μπορεί να εκτελέσει την εντολή ls l. Ένα αρχείο μπορεί να διαγραφεί από οποιοδήποτε χρήστη έχει δικαίωμα εγγραφής (write) στον κατάλογο που βρίσκεται το αρχείο, ανεξάρτητα από τα δικαιώματα που υπάρχουν για το ίδιο το αρχείο. Αναπαράσταση δικαιωμάτων Χρησιμοποιούνται τέσσερα σύμβολα για την απεικόνιση των δικαιωμάτων: r για το δικαίωμα της ανάγνωσης (read) w για το δικαίωμα της εγγραφής (write) x για το δικαίωμα της εκτέλεσης (execute) που δηλώνει την απουσία δικαιώματος Για κάθε κατηγορία χρηστών (owner, group, others) καθορίζεται η τριάδα των δικαιωμάτων στη μορφή: rwx Η σειρά είναι πάντα αυτή, δηλαδή πρώτα η ανάγνωση, μετά η γραφή και στο τέλος η εκτέλεση ενώ αν δεν υπάρχει κάποιο από τα δικαιώματα αυτά τότε ο συγκεκριμένος χαρακτήρας αντικαθίσταται με τον χαρακτήρα - Παράδειγμα 1: r-x Υπάρχει το δικαίωμα της ανάγνωσης, δεν υπάρχει το δικαίωμα της εγγραφής και υπάρχει το δικαίωμα της εκτέλεσης. Παράδειγμα 2: r-- Υπάρχει το δικαίωμα της ανάγνωσης, δεν υπάρχει το δικαίωμα της εγγραφής και δεν υπάρχει το δικαίωμα της εκτέλεσης. Παράδειγμα 3: -w- Δεν υπάρχει το δικαίωμα της ανάγνωσης, υπάρχει το δικαίωμα της εγγραφής και δεν υπάρχει το δικαίωμα της εκτέλεσης. Επισκόπηση δικαιωμάτων αρχείων μέσω inode metadata Έχει αναφερθεί ότι στα metadata που φυλάσσονται στη δομή inode για κάθε αρχείο αποθηκεύονται και τα δικαιώματα πρόσβασης σε αυτό. Ορισμένα από τα metadata του αρχείου εμφανίζονται με τη χρήση της εντολής ls -l filename. Ο τύπος του αρχείου και τα δικαιώματα του αρχείου συμβολίζονται με μία συμβολοσειρά 10 χαρακτήρων που εμφανίζεται στην πρώτη στήλη. Ο πρώτος χαρακτήρας αντιπροσωπεύει τον τύπο του αρχείου (- για 7

απλό αρχείο, d για αρχείο καταλόγου, l για αρχείο συνδέσμου) και οι υπόλοιποι εννέα τα δικαιώματα του αρχείου. Στη δεύτερη στήλη εμφανίζεται ο αριθμός των ονομάτων που δείχνουν στην ίδια εγγραφή inode. Στην τρίτη στήλη εμφανίζεται το όνομα χρήστη που είναι κύριος (owner) του αρχείου. Στην τέταρτη στήλη εμφανίζεται το όνομα της ομάδας στην οποία ανήκει το αρχείο. Στην πέμπτη στήλη εμφανίζεται το μέγεθος του αρχείου σε bytes. Στην έκτη στήλη εμφανίζεται η ημερομηνία τελευταίας τροποποίησης του αρχείου. Στην έβδομη στήλη το όνομα του αρχείου Δικαιώματα χρήστη (ιδιοκτήτη), ομάδας και υπολοίπων χρηστών Στα αποτελέσματα της εντολής ls l για την πρώτη στήλη: οι χαρακτήρες 2,3 και 4 αντιπροσωπεύουν τα δικαιώματα ανάγνωσης, εγγραφής και εκτέλεσης για τον ιδιοκτήτη του αρχείου οι χαρακτήρες 5,6 και 7 αντιπροσωπεύουν τα δικαιώματα ανάγνωσης, εγγραφής και εκτέλεσης για τους χρήστες που ανήκουν στην ίδια ομάδα με τον ιδιοκτήτη του αρχείου οι χαρακτήρες 8,9 και 10 αντιπροσωπεύουν τα δικαιώματα ανάγνωσης, εγγραφής και εκτέλεσης για τους υπόλοιπους χρήστες. Αλλαγή δικαιωμάτων Η αλλαγή των δικαιωμάτων ενός αρχείου γίνεται με την εντολή chmod. Η εντολή chmod δέχεται ως ορίσματα μία ακολουθία δικαιωμάτων και μία λίστα αρχείων στα οποία θα εφαρμοστούν αυτά τα δικαιώματα. Η chmod μπορεί να χρησιμοποιηθεί είτε για να μεταβάλλουμε τα ήδη υπάρχοντα δικαιώματα είτε για να θέσουμε νέα δικαιώματα. Η chmod μπορεί να χρησιμοποιηθεί με δύο τρόπους, τον συμβολικό και τον αριθμητικό. Χρήσιμος διακόπτης της εντολής chmod είναι ο R (recursive), ο οποίος επιτρέπει την επεξεργασία των δικαιωμάτων ενός καταλόγου και όλων των αρχείων που περιέχονται σε αυτόν. Σύνταξη: chmod options files options: επιλογές που καθορίζουν τα δικαιώματα για κάθε κατηγορία χρηστών files: Λίστα ονομάτων αρχείων χωρισμένα μεταξύ τους με κενό ή path με χρήση ειδικών χαρακτήρων όπως *,? για την αντιστοίχιση σε περισσότερα από ένα ονόματα αρχείων. 8

Αλλαγή δικαιωμάτων με χρήση συμβόλων Στη συμβολική μέθοδο, η συμβολοσειρά που περιγράφει τα δικαιώματα του αρχείου αποτελείται από τρία μέρη: (α) ποιος, (β) τελεστής και (γ) δικαιώματα. Ποιος: u (user/ιδιοκτήτης), g (group/ομάδα), ο (others/υπόλοιποι χρήστες) και a (all/όλοι οι προηγούμενοι). Τελεστής: + (προσθήκη δικαιώματος), - (αφαίρεση δικαιώματος), = (ορισμός δικαιώματος). Δικαιώματα: r (read/ανάγνωση), w (write/εγγραφή), x (execute/εκτέλεση) καθώς επίσης και τα s και t. Παράδειγμα 1 chmod g+w file.txt Προσθέτει στα υπάρχοντα δικαιώματα, το δικαίωμα εγγραφής για την ομάδα στο αρχείο file.txt. Παράδειγμα 2 chmod go-rw /tmp/test Αφαιρεί από τα υπάρχοντα δικαιώματα, τα δικαιώματα ανάγνωσης και εγγραφής για την ομάδα και τους υπόλοιπους χρήστες στο αρχείο test που βρίσκεται κάτω από τον κατάλογο tmp του root. Παράδειγμα 3 chmod u=rw,a+x file.txt Θέτει για το χρήστη τα δικαιώματα ανάγνωσης και εγγραφής (χωρίς να λαμβάνει υπόψη τα προηγούμενα δικαιώματα) και προσθέτει σε όλους τους χρήστες (ιδιοκτήτη, ομάδα, υπόλοιπους χρήστες) το δικαίωμα εκτέλεσης στο αρχείο file.txt. Αλλαγή δικαιωμάτων με χρήση αριθμών Στην αριθμητική μέθοδο χρησιμοποιούμε ένα τριψήφιο αριθμό για να θέσουμε τα δικαιώματα ενός αρχείου. Ο πρώτος αριθμός αντιπροσωπεύει τα δικαιώματα του χρήστη, ο δεύτερος της ομάδας και ο τρίτος των υπολοίπων χρηστών. Ο κάθε αριθμός προκύπτει προσθέτοντας τους αριθμούς που αντιπροσωπεύουν τα δικαιώματα ανάγνωσης (4), εγγραφής (2) και εκτέλεσης (1). Χρησιμοποιείται μόνο για να ορίσουμε εκ νέου όλα τα δικαιώματα, όχι για να αλλάξουμε κάποια από αυτά. Παράδειγμα 1 chmod 664 file Ανάγνωση και εγγραφή για το χρήστη και την ομάδα, ανάγνωση για τους υπόλοιπους 9

Παράδειγμα 2 chmod 660 file Ανάγνωση και εγγραφή για το χρήστη και την ομάδα, κανένα δικαίωμα για τους υπόλοιπους Παράδειγμα 3 chmod 600 file Ανάγνωση και εγγραφή για το χρήστη, κανένα δικαίωμα για την ομάδα και τους υπόλοιπους χρήστες Παράδειγμα 4 chmod 444 file Ανάγνωση μόνο για όλους τους χρήστες Για καταλόγους, συνήθως δίνουμε μαζί με το δικαίωμα ανάγνωσης και το δικαίωμα εκτέλεσης (για να μπορούμε να εκτελέσουμε την εντολή cd). Παράδειγμα 5 chmod 755 directory Πλήρη δικαιώματα για τον ιδιοκτήτη, ανάγνωση και εκτέλεση για την ομάδα και τους υπόλοιπους χρήστες Παράδειγμα 6 chmod 770 directory Πλήρη δικαιώματα για τον ιδιοκτήτη και την ομάδα, κανένα δικαίωμα για τους υπόλοιπους χρήστες Παράδειγμα 7 chmod 700 directory Πλήρη δικαιώματα για τον ιδιοκτήτη, κανένα δικαίωμα για την ομάδα και τους υπόλοιπους χρήστες Παράδειγμα 8 chmod 555 directory Ανάγνωση και εκτέλεση για όλους τους χρήστες Η εντολή umask Εξ ορισμού, χωρίς τη χρήση της umask, σε κάθε νέο αρχείο, όλοι οι χρήστες θα είχαν δικαιώματα ανάγνωσης και εγγραφής (rw-rw-rw- ή 666) ενώ σε κάθε κατάλογο, όλοι οι χρήστες θα είχαν δικαιώματα ανάγνωσης, εγγραφής και εκτέλεσης (rwxrwxrwx ή 777). Προκειμένου να περιορίσουμε τα προκαθορισμένα δικαιώματα, χρησιμοποιούμε την εντολή umask. H τιμή της umask δείχνει ποια δικαιώματα θέλουμε να μην δίνουμε στα νέα αρχεία. Παίρνει μια τιμή σε οκταδικό σύστημα, όπου κάθε ψηφίο έχει την παρακάτω σημασία: Πως κάθε umask ψηφίο (σε οκταδικό) μεταφράζεται σε (r, w, x) δικαιώματα: 10

Mask digit (octal) Mask digit (binary) Mask digit negated (binary) Logical AND with "rwx" request 0 000 111 rwx 1 001 110 rw- 2 010 101 r-x 3 011 100 r-- 4 100 011 -wx 5 101 010 -w- 6 110 001 --x 7 111 000 --- Έτσι, όταν δημιουργούμε αρχεία με umask 0002 (το πρώτο μηδενικό σημαίνει ότι είναι οκταδικός αριθμός), τα αρχεία δημιουργούνται με δικαιώματα 664 και οι κατάλογοι 775. Σημειώστε ότι το δικαίωμα εκτέλεσης ενός αρχείου δε δίνεται ποτέ σε ένα νέο αρχείο, ανεξάρτητα από την τιμή της umask. Το δικαίωμα εκτέλεσης ενός αρχείου πρέπει να δίνεται σε συγκεκριμένο αρχείο μόνο. Από την άλλη μεριά, το δικαίωμα εκτέλεσης δίνεται πάντα σε ένα κατάλογο κατά τη δημιουργία του, εκτός αν το αρνείται η umask. Για τους απλούς χρήστες η umask έχει την τιμή 0002, ενώ για τον root είναι 0022. Η τιμή της umask ορίζεται σε script. Συνεπώς αν θέλετε να αλλάξετε μόνιμα τη umask σας, προσθέστε στο ~/.bashrc την εντολή umask με την επιθυμητή τιμή της. Ερωτήσεις 1. Μεταφερθείτε στον κατάλογο folder1 (αν δεν υπάρχει δημιουργήστε τον). Δημιουργήστε τα ακόλουθα αρχεία: file000, file111, file555, file600, file644, file700, file711, file731, file755, file777 Για κάθε ένα από τα αρχεία που το όνομά του ξεκινάει με file δώστε την εντολή chmod ώστε να αλλάξετε τα δικαιώματά του χρησιμοποιώντας την αριθμητική μορφή της εντολής. Τα νέα δικαιώματα κάθε αρχείου αντιπροσωπεύονται από τους αριθμούς που εμφανίζονται στο όνομά του. Συμπληρώστε τον παρακάτω πίνακα με τα δικαιώματα των αρχείων σε συμβολική μορφή. 11

Αρχείο Δικαιώματα σε Αριθμητική Μορφή file000 000 file111 111 file555 555 file600 600 file644 644 file700 700 file711 711 file731 731 file755 755 file777 777 Δικαιώματα σε Συμβολική Μορφή 2. Δημιουργήστε το αρχείο newfile. Δώστε του δικαιώματα 755. Με ποιες εντολές μπορείτε να τα αλλάξετε σε r-xr--r--; (Υπάρχουν πολλές σωστές απαντήσεις). Ποια είναι η αριθμητική μορφή αυτών των δικαιωμάτων; 3. Έστω ότι έχετε ένα εκτελέσιμο αρχείο, το cmdfile, που μόλις προμηθευτήκατε. Με ποιες εντολές (τουλάχιστον δύο) μπορείτε να του δώσετε δικαιώματα εκτέλεσης; 4. Έστω ότι στον κατάλογο folder3 δίνετε την εντολή: ls l f*. Το αποτέλεσμα της εντολής μοιάζει με το ακόλουθο: -rwxr-xr-x 1 root root 0 2010-01-28 00:30 file1 -rw-rw-r-- 1 root student 0 2010-01-28 00:30 file2 Παρατηρήστε ότι εμφανίζονται δύο αρχεία με τα ακόλουθα δικαιώματα: Στο αρχείο file1, ο ιδιοκτήτης του (χρήστης root) έχει δικαιώματα ανάγνωσης, εγγραφής και εκτέλεσης (rwx), η ομάδα (ομάδα root) έχει δικαιώματα ανάγνωσης και εκτέλεσης (r-x) και οι υπόλοιποι χρήστες έχουν επίσης δικαιώματα ανάγνωσης και εκτέλεσης (r-x). Στο αρχείο file2, ο ιδιοκτήτης του (χρήστης root) έχει δικαιώματα ανάγνωσης και εγγραφής (rw-), η ομάδα (ομάδα student) έχει δικαιώματα ανάγνωσης και εγγραφής (rw-) και οι υπόλοιποι χρήστες έχουν δικαίωμα ανάγνωσης μόνο (r--). Έστω ότι στο σύστημά σας υπάρχουν δύο χρήστες, οι john και antonis. Στον πίνακα που ακολουθεί εμφανίζονται οι χρήστες αυτοί και οι ομάδες στις οποίες ανήκουν. Χρήστης Πρωτεύουσα Ομάδα Δευτερεύουσες Ομάδες john john staff antonis antonis staff, admin 12

Έστω ότι δίνετε την εντολή ls l d*. Το αποτέλεσμα της εντολής μοιάζει με το ακόλουθο: -rw-rw-r-- 1 root staff 0 2010-01-28 00:30 document1.doc -rwxr-xr-- 1 john john 0 2010-01-28 00:30 document2.doc -rw-r--r-- 1 mary admin 0 2010-01-28 00:30 document3.doc Δεδομένου ότι οι χρήστες ανήκουν στις προαναφερθείσες ομάδες, τι δικαιώματα εφαρμόζονται σε κάθε αρχείο για καθέναν από τους 2 χρήστες; John Antonis document1.doc document2.doc document3.doc 5. Μεταφερθείτε στον κατάλογο folder1 (αν δεν υπάρχει δημιουργήστε τον). Δώστε την εντολή umask για να δείτε την τιμή της. Δημιουργήστε ένα κενό αρχείο umfile1 και ένα κατάλογο umdir1. Χρησιμοποιήστε την εντολή ls -l για να δείτε τα δικαιώματα που ορίστηκαν. Αλλάξτε την umask σε 027. Δημιουργήστε ένα κενό αρχείο umfile2 και ένα κατάλογο umdir2. Προτού δείτε τα δικαιώματα των αρχείων και των καταλόγων, σημειώστε στον παρακάτω πίνακα ποια περιμένετε να είναι αυτά. Αρχείο /Κατάλογος umfile1 umdir1 umfile2 umdir2 Δικαιώματα σε Αριθμητική Μορφή Δικαιώματα σε Συμβολική Μορφή 6. Συμπληρώστε στον παρακάτω πίνακα, σε συμβολική μορφή, τα δικαιώματα που θα έχει κάθε αρχείο ή κατάλογος που θα δημιουργηθεί με την αντίστοιχη umask. Umask Δικαιώματα Καταλόγου Δικαιώματα Αρχείου 002 022 007 027 077 13