Debian : Installer un serveur NFS
Table des matières
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
L'installation se fait via deux paquets :
Si on a un nom de domaine, on peut éditer le fichier idmapd.conf
Et on active et démarre le service nfs :
On indique dans le fichier /etc/exports quels répertoires on souhaite partager et à qui :
On peut partager un dossier à une seule machine :
Ou à plusieurs machines
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 :
Pour appliquer les changements :
Pour la partie cliente, on installe aussi les paquets adéquats :
Et pour monter le partage, rien de plus simple :
Avec la commande df, on peut voir que tout est monté :
On peut aussi monter ça dans le fstab, mais attention, si le serveur NFS n'est pas dispo, le boot peut venir en échec :
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