Utiliser Debian et dérivées

Debian : Installer un serveur NFS

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

nfs



Introduction


NFS, pour Network File System (système de fichiers en réseau) est à l'origine un protocole qui permet à un ordinateur d'accéder à des fichiers via un réseau. Il permet de partager des données principalement entre systèmes UNIX.

Ici, on va détailler l'installation d'un serveur NFS et montrer comment connecter un client à ce partage.

IP du serveur : 10.21.27.20
IP du client : 10.21.27.96


Installation


L'installation se fait via deux paquets :

Code BASH :
apt install nfs-kernel-server


Si on a un nom de domaine, on peut éditer le fichier idmapd.conf

Code BASH :
vi /etc/idmapd.conf


Code BASH :
Domain = linuxtricks.lan


Et on active et démarre le service nfs :

Code BASH :
systemctl enable --now nfs-server.service



Configuration



On indique dans le fichier /etc/exports quels répertoires on souhaite partager et à qui :

Code BASH :
vi /etc/exports


On peut partager un dossier à une seule machine :
Code BASH :
/media/partage           10.21.27.96(rw,sync,no_root_squash)


Ou à plusieurs machines
Code BASH :
/media/partage           10.21.27.0/24(rw,sync,no_root_squash)


  • rw: Cette option permet d'avoir les droits de lecture et d'écriture. Pour lecture seule : utiliser ro
  • sync : vérifie les données écrites avant d'en écrire de nouvelles (lent). Pour écrire plus rapidement au prix d'une corruption des données, utiliser async
  • no_root_squash : ne force pas le mapping de l'utilisateur root vers un utilisateur anonyme


Par défaut, toutes les données écrites dans ce répertoire partagé sont de la propriété de l'utilisateur anonyme (nobody).
On peut indique au serveur NFS un UID et/ou un GID de l'utilisateur avec anonuid et anongid pour éviter d'utiliser nobody. Utiliser au passage l'option all_squash :

Code BASH :
/media/partage  10.21.27.0/24(rw,all_squash,anonuid=1001,anongid=1001,sync)


Pour appliquer les changements :

Code BASH :
exportfs -a




Partie client


Pour la partie cliente, on installe aussi les paquets adéquats :

Code BASH :
apt install nfs-common


Et pour monter le partage, rien de plus simple :

Code BASH :
mkdir -p /media/nfs
mount -t nfs 10.21.27.20:/media/partage /media/nfs


Avec la commande df, on peut voir que tout est monté :

Code BASH :
df -h
Filesystem            Size  Used Avail Use% Mounted on
10.21.27.20:/media/partage       20G  985M   18G   5% /media/nfs


On peut aussi monter ça dans le fstab, mais attention, si le serveur NFS n'est pas dispo, le boot peut venir en échec :

Code BASH :
10.21.27.20:/media/partage   /media/nfs   nfs      auto,noatime,nolock,bg,nfsvers=3,intr,tcp,actimeo=1800 0 0


:magic: