Services et serveurs

NFS : Paramétrer les partages avec le fichier exports

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


A propos des droits



Sur le serveur NFS, les droits Linux sont par défaut conservés.

Les noms des utilisateurs ne sont pas utilisés mais ce sont les UID.
De même, les noms des groupes ne sont pas utilisés mais ce sont les GID.

Ainsi, si sur le client, l'utilisateur dont l'UID est 1000 écrit un fichier, il sera écrit avec le UID 1000.

Si plusieurs utilisateurs doivent écrire sur le partage NFS, penser à donner tous les droits au dossier racine.
Si un seul utilisateur doit écrire sur le partage NFS, attribuer le dossier au UID concerné et définir les droits complets.
Si un seul groupe doit écrire sur le partage NFS, attribuer le dossier au GID concerné et définir les droits complets.

Cette page a été vue 27333 fois