5.6.2 Network File System (NFS)

Το NFS (Network File System) αρχικά σχεδιάστηκε απο την  Sun για το λειτουργικό της σύστημα Solaris . Αν και πιο εύκολα ρυθμίζεται και είναι έτοιμο για χρήση σε σχέση με το SMB, είναι πολύ λιγότερο ασφαλές. Στο NFS είναι πολυ εύκολο να ξεγελαστεί το σύστημα με χρήστες και ονόματα γκρουπ από άλλα συστήματα. Επόμενες εκδόσεις του πρωτοκόλλου πιθανόν να αντιμετωπίζουν αυτά τα προβλήματα, κάτι που δεν συμβαίνει προς το παρον.

Η ρύθμιση του ΝFS γίνεται στο αρχείο /etc/exports. Αρχικά το αρχείο περιέχει 2 γραμμές με σχόλια. Πρέπει να προσθέσουμε μια γραμμή για κάθε φάκελο που θέλουμε να κάνουμε export , η οποία θα περιέχει λίστα με τους πελάτες υπολογιστές που μπορεί να έχουν πρόσβαση. Για παράδειγμα, αν θέλουμε να κάνουμε export το  /home/foo στον υπολογιστή  Bar, δημιουργούμε την γραμμή:

/home/foo Bar(rw)

στο /etc/exports. Τα εξής είναι παραδείγματα απο την σελίδα manual του  /etc/exports (man exports):

# sample /etc/exports file
/               master(rw) trusty(rw,no_root_squash)
/projects       proj*.local.domain(rw)
/usr            *.local.domain(ro) @trusted(rw)
/home/joe       pc001(rw,all_squash,anonuid=150,anongid=100)
/pub            (ro,insecure,all_squash)

Υπάρχουν κάποιες επιλογές όσον αφορά τα σημεία προσάρτησης (mount points) τις οποίες είναι εύκολο να κατανοήσουμε.

Το NFS υποθέτει οτι  ένας χρήστης έχει το ίδιο όνομα για διαφορετικά συστήματα σε ένα δίκτυο. Όταν μια αίτηση γίνεται να διαβάσει ή να γράψει απο έναν πελάτη  NFS  σε έναν NFS server,  το αναγνωριστικό χρήστη (UID) στέλνεται ως μέρος αυτής της αίτησης. Έτσι, αν κάποιος μπορεί να στείλει ένα διαφορετικό αναγνωριστικό από αυτό που έχει στο σύστημα του , κάτω απο τις κατάλληλες συνθήκες θα μπορεί να έχει πρόσβαση σε shares που δεν προορίζονται γι'αυτόν. Σαν μερική λύση κάθε φάκελος προσαρτάται με την τιμή  root_squash. Αυτό καταχωρεί το αναγνωριστικό (UID) για οποιονδήποτε χρήστη ισχυρίζεται οτι είναι ο root σε ένα διαφορετικό αναγνωριστικό, εμποδίζοντας έτσι πρόσβαση root στα αρχεία/φακέλους αυτού του share. Αν και η root_squash φαίνεται πως είναι ενεργοποιημένη εξ'ορισμού, καλό είναι να την προσδιορίζουμυ στο  /etc/exports αρχείο μας.

Μπορούμε επίσης να κάνουμε export ένα φάκελο απευθείας απο την γραμμή εντολών με την εντολή exportfs :

# exportfs -o rw,no_root_squash Bar:/home/foo
      

το οποίο εκχωρεί το /home/foo στον υπολογιστή “Bar” με δικαιώματα ανάγνωσης/εγγραφής. Επιπλέον μιας και χρησιμοποιούμε την επιλογή no_root_squash, κάθε χρήστης στον υπολογιστή  Bar με  UID  “0” (το UID για το χρήστη root)  θα έχει τα ίδια προνόμια με τον χρήστη  root στον server.

Και πάλι οι σελίδες manual (man exports) θα μας δώσουν πολύτιμες πληροφορίες για να κάνουμε τη δουλειά μας.