Partage de fichiers avec NFS
Ce tutoriel a été réalisé grâce à l'article https://www.it-connect.fr/le-protocole-nfs-pour-les-debutants/#V_Creer_un_partage_NFS_sous_Debian_Linux
Le partager NFS est un peu plus complexe à mettre en œuvre que le partage samba, et n'est pas accessible depuis un poste sous Windows, mais il est beaucoup plus simple à utiliser une fois mis en place, car il se comporte comme un dossier local. Ainsi il n'y aura aucun problème d'enregistrement ou de lecture de fichiers quel que soit le logiciel utilisé.
Opérations à effectuer sur le poste serveur
On installe le paquet nécessaire à la création du partage
sudo apt-get install nfs-kernel-server
Le serveur NFS est installé, on le configure pour qu'il démarre automatiquement avec le système :
sudo systemctl enable nfs-server.service
On crée un dossier de partage, par exemple :
sudo mkdir /media/partage-nfs
Puis on applique les droits sur le partage (à adapter selon ses besoins) :
sudo chown nobody:nogroup /media/partage-nfs/
sudo chmod 777 /media/partage-nfs/
777 indique que toute personne aura des droits de lecture, écriture et exécution dans ce dossier. Ce sont les droits les plus permissifs.
Ce nombre s'interprète de la manière suivante :
- le 1er chiffre concerne les droits du propriétaire
- le second les droits du groupe
- le 3è de tous les autres
Pour chaque chiffre,
- 4 indique le droit de lecture
- 2 indique le droit d'écriture
- 1 indique le droit d'exécution,
ces chiffres s'additionnant :
- ainsi 4 +2, donc 6, indique droit de lecture et d'écriture, mais pas d'exécution
- 4 + 1, donc 5, droit de lecture et d'exécution, mais pas d'écriture,
- 4+2+1, donc 7, droit de lecture, écriture et exécution,
- etc.
Le partage NFS doit être indiqué et paramétré dans le fichier /etc/exports
On peut l'éditer par
sudo nano /etc/exports
On y ajoute la ligne suivante :
/srv/partagenfs 192.168.1.0/24(rw,sync,anonuid=65534,anongid=65534,no_subtree_check)
- /media/partage-nfs est le chemin du dossier que l'on a choisi comme partage précédemment
- 192.168.1.0/24 l'adresse de votre réseau local et le masque de sous-réseau
Il est possible d'indiquer une une ou des adresses IP spécifiques, ou un ou plusieurs réseaux
Exemple pour plusieurs réseaux :
/media/partage-nfs 192.168.1.0/24(rw,sync,anonuid=65534,anongid=65534,no_subtree_check) 10.0.0.0/24(rw,sync,anonuid=65534,anongid=65534,no_subtree_check)
On a ensuite les options de partage :
- rw : partage accessible en lecture et écriture, à remplacer par "ro" pour la lecture seule
- sync : écrire les données et les vérifier avant de répondre à la requête suivante : plus lent, mais plus fiable vis-à-vis des corruptions de données. L'autre mode est "async".
- anonuid : ID de l'utilisateur à utiliser pour les connexions anonymes (65534 = nobody)
- anongid : ID du groupe à utiliser pour les connexions anonymes (65534 = nogroup)
- no_subtree_check : désactiver la vérification des sous-dossiers, recommandé pour des raisons de fiabilité
On doit ensuite faire prendre en compte la configuration par le système par la commande :
sudo exportfs -a
Pour stopper et purger les partages NFS, il faut exécuter la commande suivante :sudo exportfs -ua
Pour afficher la liste des partages NFS sur l'hôte précisé :
showmount -e IP-serveur
Opérations à effectuer sur les postes clients
On installe le paquet nfs-common
sudo apt-get install nfs-common
On crée un répertoire local dans lequel sera monté le partage NFS :
sudo mkdir /mon-dossier/partage-nfs
Puis on effectue le montage du partage du dossier hôte sur notre poste client :
sudo mount -t nfs4 IP-hôte:/media/partage-nfs /mon-dossier/partage-nfs
Pour ne pas avoir à faire le montage manuellement, ou par un script au démarrage de session, le plus simple est d'inscrire le montage dans le fichier /etc/fstab :
sudo nano /etc/fstab
On y inscrit la ligne suivante, en adaptant selon sa configuration locale et ses besoins :
IP-serveur:/media/partage-nfs /mon-dossier/partage-nfs nfs4 defaults,user,exec 0 0
Pour ne pas avoir à redémarrer pour que la nouvelle configuration du fichier fstab soit prise en compte, on peut relancer ce fichier par
sudo mount -a
Tout dossier ou fichier du répertoire /mon-dossier/partage-nfs se retrouvera dès lors dans le dossier /media/partage-nfs du PC hôte, et sera accessible en lecture et écriture depuis n'importe quel poste client sur lequl on aura configuré cet accès.