Le service NFS utilise le port TCP 111 sur RCP pour appeler le service NFS (Port 2049 TCP)

Le protocol NFS n'utilise pas de moyen d'authentification sauf à partir de la version 4 (Via kerberos)

Pour la gestion des droits, le client se base sur les droits du serveur (rwx) si le dossier du serveur est en r-xr-x--- (siginifiant que les "autres" n'ont pas le droit de lecture) le client se basera sur l'UID ou GID propriétaire du dossier du serveur. Par conséquent si le dossier n'a pas le droit de lecture pour "other" l'utilisateur client voulant accéder au dossier devrai avoir le même UID ou GID que celui du serveur (La directive RO/RW est applicable coté serveur pour restreindre un utilisateur distant)

Créer un partage NFS (coté serveur)

Installer le service nfs

apt-get update && apt-get install nfs-kernel-server

Partagez un répertoire

# éditez /etc/exports

#Partager /film/ en lecture pour tout le monde 
/film/ (ro)

#Partage le dossier /srv/files/ pour l'adresse 192.168.1.5 & 192.168.1.6 en lecture/ecriture sans l'identité de root en checkant l'arborescence au montage
/srv/files/ 192.168.1.5(rw,root_squash,subtree_check) 192.168.1.6(rw,root_squash,subtree_check)

#Partage pour les sous domaines & domaine "domaine.fr" en lecture seul en mode synchro sans checker l'arborescence
/srv/files/ *.domaine.fr(ro,sync,no_subtree_check)

#Partage pour le réseau 192.168.1.0 en lecture seule en mode non synchro
/srv/share/ 192.168.1.0/24(ro,a_sync)
  • sync Tout paquet envoyé est écrit en dur (moins rapide mais plus de sécurité d'intégrité) (par défaut)
  • a_sync (répond aux requêtes avant que les changements effectués par la requête aient été appliqués sur le disque)la donnée est mise en tampon et envoyé paquet par paquet (plus rapide mais plus dangereux si plusieurs connexion sur la même donnée)
  • root_squash l'utilisateur n'a pas l'identité de root (par défaut)
  • no_root_squash l'utilisateur utilise l'identité de root
  • all_squash mapping de tout les utilisateurs en anonymes
  • subtree_check check l'arborescence monté (perd du temps au montage) (par défaut)
  • no_subtree_check ne check pas l'arborescence lors du montage
  • rw permet la lecture/écriture du partage (ro par défaut)
  • anonuid (indique au serveur l'UID de l'utilisateur anonyme)
  • anongid (indique au serveur le GID de l'utilisateur anonyme)

Monter un partage (coté client)

Un montage peut être effectuer de deux façon :

Manuel (Non monté si redémarrage)

#Adaptez selon votre IP et partage
mount -t nfs 192.168.10.50:/share /mnt/share

Automatique (Montage auto si redémarrage)

#Editez /etc/fstab, ajoutez les lignes suivantes (en adaptant l'IP et chemin de montage
192.168.10.50:/share /mnt/share nfs rw 0 0 #Possibilité de mettre en ro/rw ici aussi

Quelques commandes utiles :

#Coté client

showmount -a 192.168.10.50 #Afficher tout les points monté du serveur NFS distant

showmount -e 192.168.10.50 #Afficher la liste d'export du serveur NFS distant (Dossier + IP autorisé)

showmount -d 192.168.10.50 #Afficher la liste des dossiers du serveur NFS distant