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

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

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

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

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

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

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

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

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

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

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

Σύντομη εισαγωγή στο λειτουργικό σύστημα Linux

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

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

Κεφάλαιο 10 Διαχείριση Αρχείων και Καταλόγων

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

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

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

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

Ελληνικός Οδηγός Εγκατάστασης Linux για Αρχάριους

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 4: Ρύθμιση Συστήματος

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

Κεφάλαιο 1.6: Συσκευές αποθήκευσης

Εισαγωγή στον Προγραμματισμό Μάθημα 1: Βασική Πλοήγηση σε Linux CLI. Οκτώβριος 2016 Χ. Αλεξανδράκη

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

ΕΡΓΑΣΤΗΡΙΟ 2: Unix Tutorial

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

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

Κεφάλαιο 2.4: Εργασία με εικονίδια

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

Εγχειρίδιο Προσάρτησης δίσκων

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

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

ΗΛΕΚΤΡΟΝΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ

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

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

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

Σύντομο Εγχειρίδιο Linux. 1 ον Μέρος.

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

Κεφάλαιο 5. Έλεγχος Πρόσβασης σε Λειτουργικά Συστήματα

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

Περιεχόμενα. Λίγα λόγια από το συγγραφέα Windows Vista Επιφάνεια εργασίας Γραμμή εργασιών... 31

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

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

Αρχιτεκτονική Υπολογιστών

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

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

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

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

Παράρτηµα Α : Εισαγωγή στο Linux.

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

Κοινή χρήση πόρων με τα Windows XP

GreekLUG Ελεύθερο Λογισμικό & Λογισμικό Ανοικτού Κώδικα

Πως δημιουργούμε ένα νέο αρχείο κειμένου; Με τρεις τρόπους:

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

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

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

Κεφάλαιο 16: Ο κειμενογράφος Vi

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

ΚΕΦΑΛΑΙΟ 1 Ψηφιακός Κόσμος

Βοηθητικό πρόγραµµα Setup

Μια εισαγωγή στο Linux με την διανομή Fedora. Βάιος Κολοφωτιάς MSc Informational Systems

qemu img create linux.img f raw 2G

Σχολική Βιβλιοθήκη 3ου Γυμνασίου Κερατσινίου Σύνταξη Αλέξανδρος Τοπαλίδης

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση:

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

Οδηγός Βήμα-Βήμα για να εγκαταστήσετε τα Windows 7 στον Η/Υ σας

Unity Editor #02 Κεντρικό Μενού: File, Build Settings και Build & Run

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

Εισαγωγή στους Η/Υ. Ενότητα 5: Λειτουργικά Συστήματα ΙΙ. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Αρχιτεκτονική Υπολογιστών

Βασικές Έννοιες Υπολογιστών

Κεφάλαιο 2. Διδακτικοί Στόχοι

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

Ενηµερώσεις λογισµικού Οδηγός χρήσης

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

Ώπα, ώπα ώπα... Ξέρω τι σκέφτεστε. Δεν είμαι Διαχειριστής Συστημάτων! Και ούτε θέλω να γίνω!.

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

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

Εισαγωγή στο Linux και στο περιβάλλον εργασίας.

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

Να αποθηκεύουμε και να ξανανοίγουμε αρχεία σε περιβάλλον Windows. Να ξεχωρίζουμε τα συστατικά (αρχεία, φακέλους κλπ.) ενός δίσκου

Share and Storage Management. Τεχνικός Δικτύων & Τηλεπικοινωνιών - Διαχείριση Δικτύων ΙΙ

Τα Windows Πολύ Απλά και Πολύ Σύντομα

Βοηθητικό πρόγραµµα Setup Οδηγός χρήσης

Σύντομη εισαγωγή στο Unix

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

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

Transcript:

Κεφάλαιο 9: Δομή αρχείων συστήματος Έχουμε ήδη μιλήσει για τη δομή των καταλόγων στο Slackware Linux. Θα πρέπει λοιπόν να μπορείτε να βρείτε αρχεία και καταλόγους όπου χρειάζεστε. Υπάρχουν όμως πολλά περισσότερα στη δομή τω αρχείων του συστήματος εκτός της δομής των καταλόγων. Το Linux είναι έχει σχεδιαστεί έτσι ώστε να εξυπηρετεί πολλές χρήστες ταυτόχρονα (multiuser). Κάθε οπτική γωνία έχει αυτή την λογική, σύστημα αρχείων. Το σύστημα αποθηκεύει τις πληροφορίες με την ιδέα του σε ποιόν ανήκει εάν αρχείο και ποιος μπορεί απλά να το διαβάσει. Υπάρχουν και άλλα αξιόλογα μέρη γύρω από τα δομή των αρχείων του συστήματος, όπως οι σύνδεσμοι (links) και οι προσαρτημένοι κατάλογοι μέσω NFS (Network File System). Η ενότητα αυτή επεξηγεί αυτά, όπως επίσης και την λογική της εξυπηρέτησης πολλών χρηστών. 9.1 Ιδιοκτησία (Ownership) Η ιδιοκτησία του κάθε αρχείου μπορεί να τεθεί ξεχωριστά για το κάθε αρχείο και κατάλογο μέσα στο σύστημα. Αυτό περιλαμβάνει τόσο το χρήστη όσο και τις ομάδες για ένα συγκεκριμένο αρχείο. Ο ευκολότερος τρόπος για να αντλήσετε τέτοιου είδους πληροφορίες για ένα αρχείο είναι με την εντολή ls: % ls -l /usr/bin/wc -rwxr-xr-x 1 root bin 7368 Jul 30 1999 /usr/bin/wc Μας ενδιαφέρουν η τρίτη και τέταρτη στήλη. Αυτές περιέχουν το όνομα χρήστη και την ομάδα χρηστών όπου ανήκει το συγκεκριμένο αρχείο. Μπορούμε να δούμε ότι το αρχείο ανήκει στον χρήστη root και την ομάδα bin. Μπορούμε, επίσης εύκολα, να αλλάξουμε τις ιδιοκτησία του αρχείου με την εντολή chown(1) (που βγαίνει από το change owner - άλλαξε ιδιοκτήτη ) και με την εντολή chgrp(1) (που βγαίνει από το change group - άλλαξε ομάδα ). Για να αλλάξουμε τον ιδιοκτήτητ από root σε daemon πρέπει να κάνουμε το εξής: # chown daemon /usr/bin/wc Για να αλλάξουμε την ομάδα από bin σε root : # chgrp root /usr/bin/wc Μπορούμε να ορίσουμε τον ιδιοκτήτη και την ομάδα με μια εντολή: # chown daemon:root /usr/bin/wc Στα παραπάνω παραδείγματα, ο χρήστης θα μπορούσε να είχε χρησιμοποιήσει τελεία αντί άνω κάτω τελείας. Το αποτέλεσμα θα ήταν το ίδιο. Η χρήση της τελείας όμως δε συνιστάται και είναι πολύ πιθανό να αφαιρεθεί από μέλλουσες εκδόσεις της chown για να επιτραπούν ονόματα χρηστών με περιόδους. Αυτά τα ονόματα είναι αρκετά διαδεδομένα στους Microsoft Exchange Servers και χρησιμοποιούνται αρκετά σε διευθύνσεις ηλεκτρονικού ταχυδρομείου: mr.jones@example.com. Στο Slackware, οι διαχειριστές συστήματος καλό είναι να μην δίνουν τέτοια ονόματα στους χρήστες μιας και υπάρχουν διάφορα scripts

όπου χρησιμοποιούν την τελεία για να δηλώσουν χρήστη και ομάδα για κάποιο αρχείο η κατάλογο. Στο δικό μας παράδειγμα, η chmod θα νόμιζε για το mr.jones ότι το mr είναι ο χρήστης και το jones η ομάδα. Θα πρέπει να είστε πολύ προσεκτικοί σχετικά με τα δικαιώματα και την ιδιοκτησία σε ένα σύστημα Linux, ακόμη και αν εσείς είστε ο μόνος χρήστης. Υπάρχουν και περιπτώσεις όπου θα χρειαστεί να ρυθμίσετε την ιδιοκτησία σε ειδικά αρχεία και αρχεία που αντιπροσωπεύουν διάφορες συσκευές. 9.2 Άδειες (Permissions) Οι άδειες είναι το άλλο πολύ σημαντικό κομμάτι για ένα σύστημα που είναι έτσι δομημένο για την εξυπηρέτηση πολλών χρηστών. Με αυτές, μπορείτε να ορίσετε ποιος θα έχει το δικαίωμα να διαβάζει, να γράφει, και να εκτελεί τα αρχεία. Οι πληροφορίες τω αδειών έχουν τη μορφή οκταδικών ψηφίων, όπου το καθένα καθορίζει διαφορετική άδεια. Υπάρχουν οι άδειες του ιδιοκτήτη, της ομάδας και όλων των άλλων. Το τέταρτο οκταδικό ψηφίο χρησιμοποιείται για ειδικές πληροφορίες όπως το ID του χρήστη, της ομάδας και του λεγόμενου stikcy bit. Οι οκταδικές τιμές που ορίζονται ως άδεις είναι (μπορεί επίσης να χρησιμοποιηθούν και γραμματικοί χαρακτήρες για να οριστούν οι άδειες και εμφανίζονται με την εντολή ls αλλά και που μπορούν να χρησιμοποιηθούν με την chmod): Πίνακας 9 1. Οκταδικές τιμές αδειών Οκταδική Τύπος άδειας Χαρακτήρας τιμή sticky bit 1 t user ID 4 s group ID 2 s read 4 r write 2 w execute 1 x Προσθέτετε τις οκταδικές τιμές για κάθε ομάδα αδειών. Για παράδειγμα, εάν θέλετε μια ομάδα να μπορεί να διαβάζει και να γράφει στο αρχείο, τότε θα πρέπει να χρησημοποιήσετε τον αριθμό 6 στο μέρος της ομάδας: Οι άδειες για το bash είναι: % ls -l /bin/bash -rwxr-xr-x 1 root bin 477692 Mar 21 19:57 /bin/bash Η πρώτη παύλα θα μπορούσε να αντικατασταθεί με το γράμμα d εάν ήταν κατάλογος. Οι άλλες τρεις ομάδες αδειών (owner, group, world) εμφανίζονται ως γράμματα. Μπορούμε να δούμε ότι ο ιδιοκτήτης μπορεί να διαβάσει, να γράψει και να εκτελέσει το αρχείο (rwx). Η ομάδα μπορεί απλώς να διαβάσει και να εκτελέσει το αρχείο (r-x). Και όλοι οι υπόλοιπη μπορούν επίσης να διαβάσουν και να εκτελέσουν το αρχείο (r-x). Πώς μπορούμε όμως να δώσουμε άλλες τιμές στις άδειες; Ας δούμε ένα παράδειγμα:

% touch /tmp/example % ls -l /tmp/example -rw-rw-r--- 1 david users 0 Apr 19 11:21 /tmp/example Θα χρησιμοποιήσουμε την chmod(1) για να ορίσουμε άδειες στο αρχείο example. Προσθέτουμε τις τιμές των οκταδικών αριθμών για τις άδειες που θέλουμε. Για τον ιδιοκτήτη θέλουμε να μπορεί να διαβάζει, να γράφει και να εκτελεί το αρχείο οπότε έχουμε τη τιμή 7. Το να διαβάζει και να εκτελεί το αρχεία τη τιμή 5. Οπότε έχουμε: % chmod 755 /tmp/example % ls -l /tmp/example -rwxr-xr-x 1 david users 0 Apr 19 11:21 /tmp/example Τώρα όμως μπορεί να σκέφτεστε. Γιατί δεν δημιούργησε ένα αρχείο με αυτές τις άδειες από τη πρώτη στιγμή;. Η απάντηση είναι απλή. Το bash περιλαμβάνει μια πολύ καλή λειτουργία η οποία λέγεται umask. Αυτή η λειτουργία βρίσκεται σχεδόν σε όλα τα κέλυφη που είναι διαθέσιμο στο Unix, και ελέγχει το τι άδεις θα δωθούν σε ένα νέο αρχείο. Περισσότερα για εσωτερικές λειτουργίες του μπορείτε να δείτε στο κεφάλαιο 8.3.1. Θα χρειαστεί να δώσετε λίγο χρόνο για να καταλάβετε ακριβώς τη umask. Δουλεύει πάντως πανομοιότυπα με τη chmod, μόνο ανάποδα. Πρέπει να ορίσετε τις οκταδικές τιμές των αδειών όπου δεν θέλετε να πάρει το αρχείο, ή ο κατάλογος. Η προεπιλογή είναι 0022. % umask 0022 % umask 0077 % touch tempfile % ls -l tempfile -rw-------- 1 david users 0 Apr 19 11:21 tempfile Μπορείτε να δείτε τη σελίδα man του bash για περισσότερες πληροφορίες. Για να ορίσετε τις άδειες με τη chmod, προσθέστε τις τιμές και τοποθετήστε το σύνολο στη πρώτη στήλη. Για παράδειγμα, για να ορίσουμε το ID του χρήστη και της ομάδας, χρησημοποιούμε το 6 στη πρώτη στήλη: % chmod 6755 /tmp/example % ls -l /tmp/example -rwsr-sr-x 1 david users 0 Apr 19 11:21 /tmp/example

Εάν σας δυσκολεύουν οι οκταδικές τιμές, τότε μπορείτε να χρησιμοποιήσετε χαρακτήρες με την chmod: Ιδιοκτήτης Ομάδα Υπόλοιποι Όλοι u g o a Για να εφαρμόσετε όμως με χαρακτήρες ότι κάναμε παραπάνω, πρέπει να δώσετε περισσότερες εντολές: % chmod a+rx /tmp/example % chmod u+w /tmp/example % chmod ug+s /tmp/example Μερικοί χρήστες προτιμούν τους χαρακτήρες. Όπως και να έχει όμως, το αποτέλεσμα θα είναι το ίδιο. Οι οκταδικοί μορφή είναι συνήθως γρηγορότερη, και αυτή που χρησιμοποιείται πιο συχνά. Μερικές φορές όμως οι χαρακτήρες μπορούν να αποδώσουν περισσότερο. Δεν είναι δυνατόν με τις οκταδικές τιμές να μπορέστε να αλλάξετε μια ομάδα αδειών ενώ θέλετε να διατηρήσετε μία άλλη. Με τους χαρακτήρες όμως γίνεται: % ls -l /tmp/ -rwxr-xr-x 1 alan users 0 Apr 19 11:21 /tmp/example0 -rwxr-x--- 1 alan users 0 Apr 19 11:21 /tmp/example1 ----r-xr-x 1 alan users 0 Apr 19 11:21 /tmp/example2 % chmod g-rwx /tmp/example? -rwx---r-x 1 alan users 0 Apr 19 11:21 /tmp/example0 -rwx------ 1 alan users 0 Apr 19 11:21 /tmp/example1 -------r-x 1 alan users 0 Apr 19 11:21 /tmp/example2 Μιλήσαμε παραπάνω για το ID του χρήστη και της ομάδας. Πολύ πιθανόν να αναρωτιέστε τι μπορεί να είναι αυτά. Συνήθως, όταν τρέχετε ένα πρόγραμμα, τρέχει κάτω από το όνομα του χρήστη που το ξεκίνησε. Αυτό σημαίνει ότι έχει όλες τις άδειες που έχει και ο χρήστης. Το ίδιο ισχύει και για την ομάδα. Όταν τρέχετε ένα πρόγραμμα, εκτελείται με τις άδειες της ομάδας στην οποία ανήκει ο χρήστης. Με το να ορίσουμε το ID του χρήστη το πρόγραμμα θα τρέχει κάθε φορά με τις άδειες σε αυτόν που ανήκει. Το ίδιο ισχύει και για την ομάδα. Πρέπει όμως να είστε προσεκτικοί όταν ορίζετε τα ID του χρήστη και της ομάδας μιας και μπορεί έτσι να δημιούργησε κενά ασφαλείας στο σύστημά σας. Εάν ορίζετε ID χρήστη σε προγράμματα που ανήκουν στον υπερχρήστη (root), σημαίνει ότι επιτρέπετε σε οποιονδήποτε να τρέξει το συγκεκριμένο πρόγραμμα σαν να είναι ο υπερχρήστης. Μιας και ο υπερχρήστης δεν έχει κανέναν περιορισμό μέσα στο σύστημα, μπορεί εύκολα κάποιος να φανταστεί το κενά ασφαλείας δημιουργούνται. Εν συντομία, δεν είναι κακό να χρησιμοποιείται τα ID του χρήστη και της ομάδας, αλλά χρησιμοποιήστε επίσης τη λογική σας.

9.3 Σύνδεσμοι (Links) Οι σύνδεσμοι είναι δείκτες μεταξύ αρχείων. Με τους συνδέσμους μπορείτε να έχετε αρχεία να υπάρχουν σε οποιοδήποτε μέρος του συστήματός σας και να είναι προσβάσιμα από κάπου αλλού και με άλλο όνομα. Οι λεγόμενοι σκληροί σύνδεσμοι - hard links, χρησιμοποιούνται σας ονόματα για συγκεκριμένα αρχεία. Μπορούν να υπάρχουν μόνο σε ένα σύστημα αρχείων και διαγράφονται όταν διαγραφεί και το αρχείο το οποίο συνδέουν. Υπάρχουν και οι μαλακοί σύνδεσμοι - soft links, που επίσης αποκαλούνται συμβολικοί σύνδεσμοι - symbolic links, οι οποίοι στην ουσία είναι μικρά αρχεία τα περιέχουν τις απαραίτητες πληροφορίες και μπορούν να συνδέσουν αρχεία και σε άλλα συστήματα.. Μπορείτε να δημιουργήσετε και να διαγράψετε soft links χωρίς να επηρεαστεί καθόλου το βασικό αρχείο. Μιας και τα soft links είναι αρχεία τα οποία περιέχουν τις δικές τους πληροφορίες, μπορούν να συνδέσουν και καταλόγους. Είναι σύνηθες να υπάρχει ένας σύνδεσμος του /var/tmp στο /tmp. Οι σύνδεσμοι δεν έχουν τις δικές τους άδειες, αλλά δέχονται αυτές του αρχείου, ή του καταλόγου, του οποίου συνδέουν. Το Slackware χρησιμοποιεί κατά κύριο λόγο soft links. Για του λόγου το αληθές ας δούμε το παρακάτω παράδειγμα: % ls -l /bin/sh lrwxrwxrwx 1 root root 4 Apr 6 12:34 /bin/sh -> bash Το sh κέλυφος στο Slackware είναι το bash. Οι σύνδεσμοι διαγράφονται όπως και όλα τα άλλα αρχεία με την εντολή rm. Η εντολή ln χρησιμοποιείται για να δημιουργήσει συνδέσμους. Όλες αυτές οι εντολές αναλύονται στο κεφάλαιο 10. 9.4 Προσαρτίζοντας συσκευές - Mounting Devices Έχοντας μιλήσει νωρίτερα στο κεφάλαιο 4.1.1, όλες οι συσκευές στο σύστημα σας φαίνονται ως αρχεία και αποτελούν το σύστημα αρχείων. Διάφορες κατατμήσεις σκληρών δίσκων, CD-ROM, οδηγοί δισκέτας, όλα αυτά προσαρτίζονται στο ίδιο σύστημα αρχείων, κάτω από το ίδιο δέντρο. Προκειμένου να προσθέσετε τις συσκευές αυτές στο σύστημά σας, πρέπει να τις προσαρτήσετε με την εντολή mount(1). Και όταν θέλετε να τις αφαιρέσετε, να μην είναι πλέον προσαρτημένες, χρησιμοποιήστε την umount(1). Κάποιες συσκευές προσαρτίζονται αυτόματα με το που ξεκινάτε τον υπολογιστή σας. Αυτές βρίσκονται στο αρχείο /etc/fstab. Οτιδήποτε θέλετε να προσαρτίζεται αυτόματα κατά τη διάρκεια της εκκίνησης θα πρέπει να το προσθέσετε σε αυτό το αρχείο. Για τις υπόλοιπες συσκευές, θα χρειαστεί να το κάνετε χειροκίνητα κάθε φορά που θα θέλετε να τις χρησιμοποιήσετε (αυτό δεν ισχύει για την έκδοση 12 του Slackware και μεταγενέστερες).

9.4.1 fstab Ρίχνοντας μια ματιά στο /etc/fstab του συστήματός μου: % cat /etc/fstab /dev/sda1 / ext2 defaults 1 1 /dev/sda2 /usr/local ext2 defaults 1 1 /dev/sda4 /home ext2 defaults 1 1 /dev/sdb1 swap swap defaults 0 0 /dev/sdb3 /export ext2 defaults 1 1 none /dev/pts devpts gid=5,mode=620 0 0 none /proc proc defaults 0 0 /dev/fd0 /mnt ext2 defaults 0 0 /dev/cdrom /mnt/cdrom iso9660 ro 0 0 Η πρώτη στήλη δηλώνει τη συσκευή. Στη δική μας περίπτωση, οι συσκευές είναι πέντε κατατμήσεις από δύο σκληρούς δίσκους τύπου SCSI, δύο ειδικά αρχεία συστήματος όπου δεν χρειάζονται συσκευές, ένας οδηγός δισκέτας και ένα οδηγός CD-ROM. Η δεύτερη στήλη είναι αυτή όπου δηλώνει το που θα προσαρτηθεί η κάθε συσκευή. Χρειάζεται λοιπόν να είναι μια υπαρκτή τοποθεσία στο σύστημά σας, εκτός και αν πρόκειται για κατάτμηση μνήμης swap. Η τρίτη στήλη δηλώνει τον τύπο, το format, της κατάτμησης. Για τα περισσότερα συστήματα Linux αυτό θα είναι ext2 (second extended file system) ή ext3. Οι οδηγοί CD-ROM είναι τύπου iso9660, και οι κατατμήσεις Windows είναι συνήθως vfat ή ntfs. Η τέταρτη στήλη δηλώνει τις επιλογές για το αντίστοιχη κατάτμηση. Το defaults είναι το πιο συνηθισμένο και συνήθως κάνει για όλες τις δουλειές. Συσκευές όμως που είναι μόνο για ανάγνωση θα πρέπει να δηλώνονται ως ro (read only). Υπάρχουν πάρα πολλές επιλογές όπου μπορούν να χρησιμοποιηθούν. Για να τις δείτε ανατρέξτε στη σελίδα man του fstab(5). Οι δύο τελευταίες στήλες χρησιμοποιούνται από το fsck και άλλες εντολές όπου εφαρμόζονται σε συσκευές. Μια ματιά στις αντίστοιχες σελίδες man θα σας βοηθήσει ιδιαίτερα. Όταν πραγματοποιείται την εγκατάσταση του Slakcware, το πρόγραμμα εγκατάστασης θα δημιουργήσει το μεγαλύτερο μέρος του fstab. 9.4.2 mount και umount Το να προσαρτήσετε κάποια συσκευή στο σύστημά σας είναι σχετικά εύκολο. Το μόνο που χρειάζεται να κάνετε είναι να κάνετε χρήση της εντολής mount, μαζί με τις διάφορες επιλογές τις οποίες έχει διαθέσιμες. Εάν έχετε μία συσκευή δηλωμένη στο fstab τότε με την εντολή mount μπορείτε απλά να δώσετε το όνομα της και αυτή θα προσαρτηθεί στο σύστημα σας. Για παράδειγμα: % mount /cdrom Μιας και υπάρχει δηλωμένη η συσκευή cdrom στο fstab, η mount γνωρίζει τις επιλογές να χρησιμοποιήσει. Εάν δεν υπήρχε η συσκευή αυτή στο fstab, τότε θα έπρεπε να είχαμε χρησιμοποιήσει κάποιες από τις επιλογές της εντολής. Για παράδειγμα:

% mount -t iso9660 -o ro /dev/cdrom /cdrom Η εντολή αυτή περιλαμβάνει τις ίδιες πληροφορίες για τη συσκευή με το αρχείο fstab που δώσαμε παραπάνω. Το t iso9660 δηλώνει τον τύπο της συσκευής. Στη περίπτωσή μας είναι iso9660 μιας και αυτό είναι ότι χρησιμοποιούν τα CD ROM. To o ro δηλώνει ότι η συσκευή θα προσφέρετε μόνο για ανάγνωση. Το /dev/cdrom δηλώνει το ποια συσκευή θα προσαρτηθεί, και το /cdrom δηλώνει το που θα προσαρτηθεί. Πριν αφαιρέστε κάποια δισκέτα, CD ROM, ή κάποια άλλη αφαιρούμενη συσκευή, η οποία είναι προσαρτημένη στο σύστημα, θα πρέπει να την αφαιρέσετε από το σύστημα κάνοντας χρήση της εντολή umount. Εάν ρωτήσετε γιατί λείπει ένα n από την εντολή, να ξέρετε ότι δεν έχουμε ιδέα για το που πήγε! Μπορείτε να δηλώσετε είτε τη συσκευή είτε τη διαδρομή όπου η συσκευή έχει προσαρτηθεί προκειμένου να την αφαιρέσετε από το σύστημα σας. Για παράδειγμα, εάν θέλουμε να αφαιρέσουμε το CD ROM από το προηγούμενο παράδειγμα, τότε πρέπει να κάνουμε το εξής: # umount /dev/cdrom # umount /cdrom 9.5 NFS Mounts Τα αρχικά NFS έρχονται από το Network File System. Δεν είναι ένα πραγματικό σύστημα αρχείων, αλλά μπορεί να χρησιμοποιηθεί ώστε να προσθέσει καταλόγους σε ένα υπάρχων σύστημα αρχείων. Μεγάλες συνήθως τοποθεσίες που κάνουν χρήση του Unix, θέλουν να μοιράζονται τα ίδια προγράμματα και τους φακέλους των χρηστών (home directories). Το πρόβλημα του να αντιγράφεις το κάθε τι στο κάθε μηχάνημα λύνεται με το NFS. Μπορούμε να κάνουμε χρήση του NFS για να μοιράσουμε όλες τους φακέλους χρηστών σε όλους τους σταθμούς εργασίας. Οι σταθμοί εργασίας στη συνέχεια προσαρτίζουν στο σύστημα τους τους κοινόχρηστους φακέλους μέσω του NFS και εμφανίζονται σαν να είναι κανονικό κομμάτι του συστήματος. Η ενότητα 5.6.2 και οι σελίδες man για τα exports(5), nfsd(8) και mountd(8) παρέχουν αρκετά περισσότερες πληροφορίες.