Administration réseau sous Linux/NFS
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 à des clients. Suivant les droits d'accès donnés, des 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 côté serveur
modifierInstallation sur Debian :
# apt install nfs-kernel-server
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
modifierPour 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/name station0(rw) station1(ro) /projet station1(rw) (ro) /brouillon
Le serveur exporte son répertoire /home/name
.
La machine station0
pourra le monter en lecture/écriture (rw
read-write), station1
en lecture seule (ro
read-only), 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 via le réseau seront toujours inhibés par les droits sur le système de fichier : si un utilisateur accède via la station1
au répertoire /projet
, il ne pourra pas accéder au fichier test
situé dans le répertoire /projet
, bien qu'il ait les droits réseaux rw
, si le fichier test
appartient à root
avec les droits 600
(lecture/écriture pour root uniquement, aucun droit pour les autres).
Une 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 côté client
modifierinstallation sur Debian (Le "système de fichier réseau" NFS est intégré au noyau compilé avec sa prise en charge dans toutes les distributions récentes.)
# apt install nfs-common
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 si le serveur précédent à pour ip 192.168.105.2 :
mount -t nfs 192.168.105.2:/home/name /mnt/rep_local -o ro
Cette commande montera le répertoire /home/name
, exporté par la station 192.168.105.2, dans le répertoire local /mnt/rep_local
, en lecture seule.
À la place d'une adresse IP, vous pouvez aussi donner un nom de machine (nom d'hôte ou hostname : le nom figurant à droite du @ dans une console user@hostname
). Pour cela, il faut que le nom de machine puisse être converti en adresse IP (en modifiant /etc/hosts par exemple, si on n'a pas de serveur DNS)
Montage au démarrage
modifierIl est possible de monter 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 :
192.168.105.2:/home/name /mnt/rep_local nfs auto,rw,user,soft,(autres options…) 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.
Si le serveur n'est pas toujours disponible ou susceptible de ne plus l'être en cours d'utilisation il est préférable de ne pas monter automatiquement le répertoire distant au démarrage au risque de bloquer votre poste client : option noauto .