« Administration réseau sous Linux/NFS » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 11 : | Ligne 11 : | ||
ps ax | grep nfsd |
ps ax | grep nfsd |
||
Pour lancer les démons manuellement sous Debian : |
>Pour lancer les démons manuellement sous Debian : |
||
/etc/init.d/nfs-kernel-server start |
/etc/init.d/nfs-kernel-server start |
||
ou, si c'est le serveur NFS en [[w:espace utilisateur|espace utilisateur]] qui est installé : |
ou, si c'est le serveur NFS en [[w:espace utilisateur|espace utilisateur]] qui est installé : |
||
Ligne 25 : | Ligne 25 : | ||
<répertoire local> <nom ou IP des machines autorisées à se connecter>(<options>) <autres machines>(<options>)... |
<répertoire local> <nom ou IP des machines autorisées à se connecter>(<options>) <autres machines>(<options>)... |
||
Par exemple : |
>Par exemple : |
||
/home/bob ollinux(rw) station1(ro) |
/home/bob ollinux(rw) station1(ro) |
||
/projet station1(rw) (ro) |
/projet station1(rw) (ro) |
Version du 14 mai 2019 à 15:15
Le protocole NFS (Network file system) permet de partager des fichiers entre des machines Unix, et donc Linux. C'est un modèle client-serveur : une machine met à disposition (exporte) 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. Un ordinateur peut être à la fois client et serveur NFS.
Installation coté serveur
Commencer par vérifier que les demons NFS (nfsd) ne sont pas déjà lancés avec, par exemple, la commande
ps ax | grep nfsd
>Pour lancer les démons manuellement sous Debian :
/etc/init.d/nfs-kernel-server start
ou, si c'est le serveur NFS en espace utilisateur qui est installé :
/etc/init.d/nfs-user-server start
On peut remplacer start
par restart
pour redémarrer le serveur.
Configuration
Pour partager (ou exporter) des répertoires, il faut renseigner le fichier /etc/exports. Il indique la liste des répertoires partagés et le nom des machines qui y ont accès.
Chaque ligne correspond à un répertoire et a la forme :
<répertoire local> <nom ou IP des machines autorisées à se connecter>(<options>) <autres machines>(<options>)...
>Par exemple :
/home/bob ollinux(rw) station1(ro) /projet station1(rw) (ro) /brouillon
Le serveur exporte son répertoire /home
.
La machine ollinux
pourra le monter en lecture/écriture (rw
), station1
en lecture seule (ro
), et les autres machines 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).
Pour connaitre la liste des options possibles et leur signification, consultez man exports.
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 suivante pour que les modifications soient prises en compte :
/etc/init.d/nfs-kernel-server reload
Installation coté client
C'est relativement simple puisque le "système de fichier réseau" NFS est directement intégré au noyau. Il 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'option nfs :
mount -t nfs <machine distante>:<répertoire partagé> <répertoire local> -o <options>
Par exemple :
mount -t nfs 192.168.105.2:/armor/plages /mnt/cotes -o ro
Cette commande montera le répertoire /armor/plages
, exporté par la station 192.168.105.2, dans le répertoire local /mnt/cotes
, en lecture seule.
A la place d'une adresse IP, vous pouvez aussi donner un nom de machine, comme par exemple sasa
. Pour cela, il faut que le nom sasa
puisse être converti en adresse IP (en modifiant /etc/hosts par exemple, si on n'a pas de serveur DNS)
Connexion au démarrage
Il est possible de connecter les répertoires partagés au démarrage de la station.
Le plus simple est de renseigner le fichier /etc/fstab
qui contient une liste des systèmes de fichiers connus.
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 :
sasa:/armor/plages /mnt/cotes nfs auto,rw,user,soft 0 0
Les options sont décrites dans la page de man de mount
.
Certaines sont communes à d'autres systèmes de fichiers (ext2, vfat...) alors que d'autres sont spécifiques à NFS.