Services et serveurs

NFS : Paramétrer les partages avec le fichier exports

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

nfs



Introduction



Dans cet article, je vais récapituler le paramétrage du fichier /etc/exports qui contient la liste des partages NFS.
Cela s'applique au serveur NFS.

Installer le serveur



Sur ce site, j'ai déjà rédigé les tutoriels pour installer un serveur NFS :
- Sous Gentoo : https://www.linuxtricks.fr/wiki/gentoo-installer-un-serveur-nfs
- Sous CentOS 7 : https://www.linuxtricks.fr/wiki/centos-7-installer-un-serveur-nfs
- Sous Red Hat 8 et Alma Linux 8 : https://www.linuxtricks.fr/wiki/red-hat-8-alma-linux-8-installer-et-configurer-un-serveur-nfs
- Sous Debian : https://www.linuxtricks.fr/wiki/debian-installer-un-serveur-nfs

Le fichier exports



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           192.168.21.200(rw,sync)


Ou à un réseau :
Code BASH :
/media/partage           192.168.21.0/24(rw,sync)


Ou à plusieurs machines (on répètera les IP des machines avec les options suivies par un espace) :
Code BASH :
/media/partage           192.168.21.0.100(rw,sync) 192.168.21.0.101(rw,sync)


Attention, il ne faut aucun espace entre le réseau et les options!

Il existe une multitude d'options. Je vous en détaille certaines les plus couramment utilisées :
  • rw : Cette option permet d'avoir les droits de lecture et d'écriture sur le répertoire partagé.
  • ro : Cette option permet d'avoir les droits de lecture seule sur le répertoire partagé.
  • sync : Ne répond aux requêtes qu'après avoir écrit les modifications sur le stockage (lent). C'est le comportement par défaut.
  • async : Cette option enfreint le protocole nfs et répond aux requêtes même si les modifications ne sont pas écrites sur le stockage. Peut être utile dans certains cas.
  • subtree_check : Active la vérification des droits d'accès des sous-dossiers. C'est le comportement par défaut.
  • no_subtree_check : Ignore la vérification des droits d'accès des sous-dossiers (perte d'un petit peu de sécurité mais peut améliorer la fiabilité)
  • root_squash : Force le mapping de l'utilisateur root (UID=0) vers l'utilisateur anonyme.
  • no_root_squash : Ne force pas le mapping de l'utilisateur root (UID=0) vers l'utilisateur anonyme
  • no_all_squash : Ne force pas le mapping des utilisateurs (Option par défaut)
  • all_squash : Force le mapping de tous les utilisateurs vers l'utilisateur anonyme. Utile pour un FTP public exporté par NFS
  • anonuid=NNN : Définit l'UID de l'utilisateur anonyme (NNN est le nombre du UID concerné)
  • anongid=NNN : Définit l'UID de l'utilisateur anonyme (NNN est le nombre du UID concerné)


Exemple où on force l'UID à 1001 pour tous les utilisateurs du partage, avec accès en lecture/écriture.
J'utilise cette option pour que tous les fichiers écrits sur ce partage soit attribués à mon utilisateur sur mon PC principal (partage NFS temporaire pour des images Clonezilla)
Code BASH :
/media/DATA/nfs  192.168.21.0/24(rw,all_squash,anonuid=1001,anongid=1001,async)



Pour appliquer les changements :
Code BASH :
exportfs -a


Sur les clients, pour voir la liste des partages NFS actifs :
Code BASH :
showmount -e