Accéder aux partages du NAS depuis un poste Linux

Référence : Linux Mint 22.3 – montages NFS – serveur NAS sous Ubuntu Server 24.04

Les noms d’hôtes, de comptes et de dossiers de cette page sont des exemples à transposer. Les adresses 192.168.0.x appartiennent à l’espace privé RFC 1918 et sont conservées telles quelles : elles illustrent la topologie sans identifier personne.

Le fichier .md de cette page : ouvrir le .md

13 lignes de ce document dépassent 84 caractères et s’enrouleront dans le PDF sans aucun signe visible : ce sont les lignes d’/etc/fstab. fstab n’accepte aucune continuation — les recopier depuis le fichier .md, jamais depuis le PDF.

Ce que cette page couvre : faire en sorte que les dossiers ordinaires d’un poste — Documents, Images, Musique, Téléchargements, Vidéos — soient en réalité ceux du NAS, pour chaque utilisateur de la machine, et que ça tienne à chaque démarrage sans intervention.

Contexte : le serveur exporte ses volumes en NFS. Le poste les monte, puis relie des sous-dossiers du partage aux dossiers du profil. L’utilisateur ne voit aucun « lecteur réseau » : il ouvre Documents et il est sur le NAS.

Convention : chaque bloc indique où il s’exécute — [poste] pour la machine de travail, [NAS] pour le serveur.


1. Le principe, en deux étages

Le montage se fait en deux temps, et les confondre produit un montage fragile.

Le premier étage monte le partage à un emplacement neutre, une fois pour toute la machine :

/media/nas1
/media/nas2

Le second étage relie des sous-dossiers de ce partage aux dossiers du profil de chaque utilisateur :

/media/nas1/Documents  →  /home/user/Documents

🎯 Pourquoi ne pas monter directement dans le profil ? Parce qu’il faudrait autant de montages réseau que d’utilisateurs multiplié par le nombre de dossiers — dix connexions NFS au lieu de deux. Le second étage n’est pas un montage réseau : c’est un lien de montage, purement local, qui ne coûte rien.


2. Le paquet client

Sur [poste] :

sudo apt install -y nfs-common

C’est le seul nécessaire. cifs-utils ne sert qu’aux partages Samba, qui s’adressent aux postes Windows.


3. Monter les partages

Sur [poste] :

sudo mkdir -p /media/nas1 /media/nas2 /media/home_nas

Puis ouvrir la table des montages :

sudo nano /etc/fstab

Ajouter dans l’éditeur ouvert ci-dessus :

192.168.0.11:/media/nas1   /media/nas1      nfs   _netdev,nofail,rw,hard,proto=tcp,nfsvers=3,exec,auto,acl  0 0
192.168.0.11:/media/nas2   /media/nas2      nfs   _netdev,nofail,rw,hard,proto=tcp,nfsvers=3,exec,auto,acl  0 0
192.168.0.11:/home/hostadmin     /media/home_nas  nfs   _netdev,nofail,rw,hard,proto=tcp,nfsvers=4.2,exec,auto,acl  0 0

Ce que chaque option fait, et pourquoi elle est là

🎯 _netdev déclare que ce montage dépend du réseau. Sans elle, le système tente de monter avant que la carte soit prête : le montage échoue, et rien ne le retente — le dossier reste vide jusqu’à une intervention manuelle. Avec elle, systemd ordonne le montage après l’activation du réseau, et le partage est là quand l’utilisateur ouvre sa session.

nofail empêche un NAS éteint de bloquer le démarrage du poste. Sans elle, un serveur absent laisse la machine attendre puis tomber en mode secours — pour un partage de musique. Avec elle, le poste démarre normalement et le dossier reste simplement vide.

hard plutôt que soft. En hard, une écriture interrompue par une coupure réseau attend le retour du serveur et reprend ; en soft, elle échoue et l’application reçoit une erreur, souvent au milieu d’un fichier. Sur un partage de documents, hard est le choix qui préserve les données.

acl demande que les ACL du serveur traversent le montage. Sans elle, les permissions étendues restent invisibles depuis le poste.

Les versions diffèrent délibérément. La version 4 passe par un seul port, se dispense du démon de montage séparé et gère les verrous de façon plus fiable : c’est elle qu’on emploie pour le dossier personnel du serveur, où des fichiers de configuration sont ouverts et réécrits. La version 3 suffit aux volumes de données, et c’est elle qui les monte.

Le montage se fait par adresse, pas par nom. Un partage monté par nom dépend du résolveur du réseau : si le filtre DNS local est arrêté ou en cours de mise à jour au moment du démarrage, le montage échoue. L’adresse rend le montage indépendant de cette chaîne.


4. Relier les dossiers du profil

C’est ici que le poste devient agréable à utiliser. Toujours dans /etc/fstab, sous les lignes précédentes :

/media/nas1/Documents      /home/user/Documents        auto  defaults,nofail,bind,x-systemd.requires-mounts-for=/media/nas1,x-gvfs-hide  0 0
/media/nas1/Download       /home/user/Téléchargements  auto  defaults,nofail,bind,x-systemd.requires-mounts-for=/media/nas1,x-gvfs-hide  0 0
/media/nas1/Audio/Musique  /home/user/Musique          auto  defaults,nofail,bind,x-systemd.requires-mounts-for=/media/nas1,x-gvfs-hide  0 0
/media/nas1/Photographies  /home/user/Images           auto  defaults,nofail,bind,x-systemd.requires-mounts-for=/media/nas1,x-gvfs-hide  0 0
/media/nas2/Videotheque    /home/user/Vidéos           auto  defaults,nofail,bind,x-systemd.requires-mounts-for=/media/nas2,x-gvfs-hide  0 0

Le bloc se répète tel quel pour chaque utilisateur de la machine, en changeant le chemin du profil :

/media/nas1/Documents      /home/u2/Documents          auto  defaults,nofail,bind,x-systemd.requires-mounts-for=/media/nas1,x-gvfs-hide  0 0
/media/nas1/Download       /home/u2/Téléchargements    auto  defaults,nofail,bind,x-systemd.requires-mounts-for=/media/nas1,x-gvfs-hide  0 0
/media/nas1/Audio/Musique  /home/u2/Musique            auto  defaults,nofail,bind,x-systemd.requires-mounts-for=/media/nas1,x-gvfs-hide  0 0
/media/nas1/Photographies  /home/u2/Images             auto  defaults,nofail,bind,x-systemd.requires-mounts-for=/media/nas1,x-gvfs-hide  0 0
/media/nas2/Videotheque    /home/u2/Vidéos             auto  defaults,nofail,bind,x-systemd.requires-mounts-for=/media/nas2,x-gvfs-hide  0 0

🔴 x-systemd.requires-mounts-for= est ce qui empêche le montage vide. Un lien vers /media/nas1/Documents posé avant que /media/nas1 soit monté ne produit pas d’erreur : il relie un dossier vide au profil, et l’utilisateur ouvre Documents sur du néant. Cette option déclare la dépendance ; systemd attend. C’est la ligne à ne jamais oublier en ajoutant un lien.

x-gvfs-hide empêche le gestionnaire de fichiers d’afficher ces montages dans sa barre latérale. Sans elle, chaque dossier du profil apparaît une seconde fois comme « volume monté », et la liste devient illisible.

ℹ Le dernier champ vaut 0 0 : un lien de montage n’est pas un système de fichiers, il n’y a rien à vérifier au démarrage.


5. Appliquer sans redémarrer

Sur [poste] :

sudo systemctl daemon-reload
sudo mount -a

daemon-reload n’est pas optionnel. systemd fabrique une unité de montage par ligne d’fstab au moment où il lit le fichier. Sans rechargement, mount -a monte bien, mais les dépendances déclarées par x-systemd.requires-mounts-for= ne sont pas connues — et le prochain démarrage se fait dans le désordre.

Contrôler :

findmnt -t nfs,nfs4 -o TARGET,SOURCE,FSTYPE

6. Le umask — ce qu’il ne faut pas toucher

Les fichiers créés sur le partage doivent rester accessibles au groupe, faute de quoi les autres comptes ne peuvent pas les modifier. Le réglage qui décide de cela est le umask, et il vaut 002 sur un poste correctement configuré.

Sur [poste] :

umask -S

La réponse attendue est u=rwx,g=rwx,o=rx.

🎯 Ce 002 arrive tout seul, et il ne faut pas le forcer. /etc/login.defs déclare pourtant UMASK 022. C’est la combinaison de USERGROUPS_ENAB yes et du module pam_umask.so qui le relâche à 002 pour tout compte dont le groupe principal porte son propre nom — ce qui est le cas de tous les comptes créés normalement.

Modifier UMASK dans /etc/login.defs relâcherait le umask de tous les comptes, root compris, y compris pour les fichiers qui n’ont rien à voir avec les partages. Le mécanisme en place obtient le même résultat là où il le faut, et nulle part ailleurs.

Si umask -S répond autre chose, c’est qu’un fichier de profil le force — ~/.profile, ~/.bashrc ou un script de session — et c’est là qu’il faut corriger, pas dans login.defs.


7. Vérifier que ça tient

Le vrai contrôle n’est pas que le montage fonctionne maintenant, mais qu’il revienne après un redémarrage. Après redémarrage, sur [poste] :

findmnt -t nfs,nfs4 -o TARGET,SOURCE | tail -n +2 | wc -l
systemctl --failed --no-pager
ls /home/user/Documents | head -3

Le compte de montages doit correspondre au nombre de lignes NFS d’fstab, aucune unité ne doit être en échec, et le dossier du profil doit montrer le contenu du NAS.

Un dossier de profil vide après un redémarrage réussi est le symptôme d’un lien monté trop tôt — donc d’un x-systemd.requires-mounts-for= absent ou mal écrit sur cette ligne.

Et l’écriture, qui est ce qui compte vraiment :

touch /home/user/Documents/essai.tmp
ls -l /home/user/Documents/essai.tmp
rm -f /home/user/Documents/essai.tmp

Un refus ici, alors que la lecture fonctionne, renvoie aux permissions côté serveur et non au poste.


8. Références