| Installer et Utiliser NFS |
Le protocole NFS permet de partager facilement
des fichiers entre des machines Unix, et donc Linux.
C'est un modèle client-serveur : une machine exporte, ie met
à disposition, des répertoires de son système de fichier
local sur le réseau. Suivant les droits d'accès, les autres
stations du réseau peuvent monter ces répertoires, qui seront
alors vus comme des répertoires locaux.
Bien évidemment, un ordinateur peut être à la fois
client et serveur NFS.
Nous illustrerons la mise en oeuvre avec une Redhat 6.2.
rpm -Uvh nfs-utils-version-plateforme.rpm
Soit, si vous installer le paquetage d'origine de la Redhat 6.2:
rpm -Uvh nfs-utils-0.1.6-2.i386.rpm
Assurez-vous que les services nfs et nfslock soient correctement
renseignés dans les scripts de démarrage :
si ce n'est pas le cas, faites :
ln -s /etc/rc.d/init.d/nfs
/etc/rc.d/rc3.d//S70nfs
ln -s /etc/rc.d/init.d/nfslock
/etc/rc.d/rc3.d//S71nfslock
Adaptez "rc3.d" en fonction de votre niveau d'exécution
(runlevel) et "S70" suivant l'ordre de démarrage des services.
Vous pouvez également utiliser un outil graphique du type tksysv.
Si vous préférez les lancer manuellement, faites un :
/etc/rc.d/init.d/nfs restart
/etc/rc.d/init.d/nfslock restart
(Faire un restart vous assure un redémarrage propre des daemons si ceux-ci étaient déjà lancés)
Vous pouvez toujours vous assurer du bon fonctionnement du service par :
/etc/rc.d/init.d/nfs status
Attention : la version Redhat de NFS utilise le diffuseur de ports dynamiques
(portmapper) : assurez-vous que ce service soit bien lancé
au préalable :
/etc/rc.d/init.d/portmap status
Sinon, démarrez-le :
/etc/rc.d/init.d/portmap start
"répertoire local" "liste des machines autorisées à se connecter avec les options collées entre parenthèses"
par exemple :
/home ollinux(rw) station1(ro)
/projet station1(rw) (ro)
/brouillon
L'ordinateur exporte son répertoire /home : la machine
ollinux pourra le monter en lecture/écriture (rw),
station1 en lecture seule(ro),
les autres machine ne pourront pas se connecter.
De même, station1 pourra accéder en lecture/écriture
au répertoire projet et toutes les autres stations en lecture seule.
Enfin, tout le monde pourra accéder en lecture/écriture
au répertoire brouillon ( l'option rw est celle par défaut).
Notez bien que les droits en écriture via le réseau seront toujours inhibés par les droits sur le système de fichier. Prenons par exemple un fichier test appartenant à root, situé dans le répertoire projet et avec les droits 600 (lecture/écriture pour root uniquement , aucun droit pour les autres). Si l'utilisateur toto accède via la station station1 au répertoire /projet, il ne pourra pas accéder au fichier test, bien qu'il ait les "droits réseaux read-write".
Un fois le fichier /etc/exports correctement configuré, il suffit de relancer le service NFS par la commande pour que les modifications soient prises en compte :
/etc/rc.d/init.d/nfs reload
C'est relativement simple puisque le "système de fichier réseau"
NFS est directement intégré au noyau.
Il vous suffit de vérifier que ce dernier a été
compilé
avec la prise en charge de NFS. C'est le cas de toutes les distributions
récentes.
Pour monter un système de fichier distant, utiliser la commande mount avec l'otion nfs :
mount -t nfs machine_distante:répertoire répertoire_local -o options
Par exemple :
mount -t nfs breizh:/armor/plages /mnt/cotes -o ro
montera le répertoire /armor/plages, exporté par
la station breizh, dans le répertoire local /mnt/cotes,
en lecture seule.
Il faut bien entendu que le nom breizh soit résolu par
un
gethostbyname(). Pour un petit réseau,
une simple entrée dans le répertoire /etc/hosts suffit:
192.168.0.11 breizh
où 192.168.0.11 est l'adresse IP de breizh.
Le plus simple est de renseigner le fichier /etc/fstab , afin de faciliter le montage : la syntaxe est la suivante :
"ordinateur distant:répertoire distant" "répertoire local" nfs options 0 0
Pour reprendre l'exemple précédent , cela donnerait :
breizh:/armor/plages /mnt/cotes nfs auto,rw,user,soft 0 0
Les options sont les mêmes que pour le système de fichier local (ext2fs) avec en plus, spécifiques à NFS :
soft : utilisée conjointement avec
auto, elle permet de monter un répertoire
distant au démarrage mais sans insister si le serveur est inaccessible.
timeo=t : indique la durée en seconde
(remplacer t par un chiffre) pendant laquelle le répertoire
essaye d'être monté.