Le rôle du serveur NFS est de mettre à disposition sur le réseau une partie de son système de fichiers local. On parle d'« exportation ».
Conformément à la présentation de la Section 4, « Protocole NFSv4 », on choisit une solution qui utilise les fonctions du noyau Linux.
|
Q7. |
Quel est le paquet qui contient les outils nécessaires au fonctionnement du serveur NFS ? Installez ce paquet. Interrogez les méta données du gestionnaire de paquets pour identifier le nom du paquet à installer. |
||||||
|
Recherchez la chaîne apt search --names-only nfs.*server nfs-kernel-server/testing,now 1:2.8.3-1+b1 amd64 [installé]
gestion du serveur NFS du noyau
sudo apt -y install nfs-kernel-server |
|||||||
|
Q8. |
Quel est le fichier de configuration principal de gestion des exportations NFS ? Recherchez dans le support Linux NFS-HOWTO. |
||||||
|
Quel que soit le protocole utilisé, c'est toujours le fichier cat /etc/exports # /etc/exports: the access control list for filesystems which may be exported # to NFS clients. See exports(5). # # Example for NFSv2 and NFSv3: # /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check) # # Example for NFSv4: # /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check) # /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check) #
|
|||||||
|
Q9. |
Créez le répertoire Consultez les supports Linux Linux NFS-HOWTO et Nfsv4 configuration. Vous pouvez également consulter les pages de manuel fournies avec le paquet du serveur NFS. |
||||||
sudo mkdir -p /home/exports/home En exploitant la documentation Nfsv4 configuration et l'exemple de configuration fournis dans le fichier de configuration, on applique les instructions de configuration suivantes dans le fichier Ajoutez les instructions d'exportation du dossier à destination de vos réseaux IPv4 et IPv6 dans un script. Les adresses des réseaux IPv4 et IPv6 doivent bien sûr être adaptées à votre plan d'adressage. #!/bin/bash
IPV4_NETWORK=172.28.101.0/24
IPV6_NETWORK=2001:678:3fc:65::/64
cat << EOF > /etc/exports
/home/exports ${IPV4_NETWORK}(rw,sync,fsid=0,crossmnt,no_subtree_check)
/home/exports/home ${IPV4_NETWORK}(rw,sync,no_subtree_check)
/home/exports ${IPV6_NETWORK}(rw,sync,fsid=0,crossmnt,no_subtree_check)
/home/exports/home ${IPV6_NETWORK}(rw,sync,no_subtree_check)
EOF
Si le code du script ci-dessus est enregistré dans un fichier appelé sudo bash basic-nfs-exports.sh Les options entre parenthèses sont documentées dans les pages de manuels
|
|||||||
|
Q10. |
Comment l'exportation NFS effective ? Comment vérifier que les paramètres actifs sont corrects ? Recherchez dans la liste des outils fournis avec le paquet |
||||||
|
On identifie la commande exportfs dans la liste des binaires fournis avec le paquet serveur NFS. dpkg -L nfs-kernel-server | grep bin /usr/sbin
/usr/sbin/exportfs
/usr/sbin/fsidd
/usr/sbin/nfsdcld
/usr/sbin/nfsdclddb
/usr/sbin/nfsdclnts
/usr/sbin/nfsdctl
/usr/sbin/nfsref
/usr/sbin/rpc.mountd
/usr/sbin/rpc.nfsd
sudo systemctl restart nfs-server systemctl status nfs-server ● nfs-server.service - NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; preset: enabled)
Active: active (exited) since Mon 2025-09-15 08:56:44 CEST; 27s ago
Invocation: 9056b4826f4d4be688cb4ee9f1490f23
Docs: man:rpc.nfsd(8)
man:exportfs(8)
Process: 2495 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
Process: 2496 ExecStart=/bin/sh -c /usr/sbin/nfsdctl autostart || /usr/sbin/rpc.nfsd (code=exited, status=0/SUCCESS)
Main PID: 2496 (code=exited, status=0/SUCCESS)
Mem peak: 2.3M
CPU: 38ms
sept. 15 08:56:44 srvr systemd[1]: Starting nfs-server.service - NFS server and services...
sept. 15 08:56:44 srvr sh[2498]: nfsdctl: lockd configuration failure
sept. 15 08:56:44 srvr systemd[1]: Finished nfs-server.service - NFS server and services.
Consultez la liste des entrées exportées via NFS avec la commande exportfs. sudo exportfs /home/exports 172.28.101.0/24
/home/exports 2001:678:3fc:65::/64
/home/exports/home
172.28.101.0/24
/home/exports/home
2001:678:3fc:65::/64
Vérifiez que la liste des exportations est visible et identique côté client en utilisant la commande showmount. sudo showmount -e fe80::baad:caff:fefe:5 Export list for fe80::baad:caff:fefe:5: /home/exports/home 2001:678:3fc:65::/64,172.28.101.0/24 /home/exports 2001:678:3fc:65::/64,172.28.101.0/24 |
Il est impératif d'assurer la cohérence du nommage des arborescences entre les clients et le serveur. Cela évite toute confusion entre les différents interlocuteurs, d'un point de vue administration et support.
Il faut également garantir l'évolutivité en utilisant un point de montage dédié côté serveur. Ainsi, il est possible de déplacer ou de migrer le volume de stockage du serveur sans impacter les clients.
|
Q11. |
Quel est le rôle du répertoire Recherchez la signification du paramètre |
|
On peut établir une analogie entre un serveur Web et un serveur NFS. L'option Dans les deux cas, les clients des serveurs Web ou NFS n'ont aucune connaissance de l'arborescence de stockage du serveur. |
|
|
Q12. |
Comment créer le point de montage logique Recherchez, dans les pages de manuels de la commande mount, les informations sur l'option Complétez le fichier système qui contient la liste des montages statiques et activez le nouveau montage du nouveau dossier |
|
Dans le cadre de ces travaux pratiques, les répertoires utilisateurs doivent être référencés à partir d'une racine nommée L'utilisation d'un montage local avec l'option Créez le répertoire de montage. sudo mkdir /ahome Associez le répertoire exporté par le service NFS au point de montage. sudo mount --bind /home/exports/home /ahome Enregistrez ce montage dans la configuration système permanente en éditant le fichier cat << EOF | sudo tee -a /etc/fstab /home/exports/home /ahome none defaults,bind 0 0 EOF Vérifiez l'ajout de la nouvelle entrée dans le fichier grep -v ^# /etc/fstab PARTUUID=95ed2e41-f56c-4cc0-a79e-c93a07e93c79 / ext4 rw,discard,errors=remount-ro,x-systemd.growfs 0 1
PARTUUID=71f5d30c-8e21-4372-81f6-11eb66815669 /boot/efi vfat defaults,umask=077 0 2
/home/exports/home /ahome none defaults,bind 0 0
Activez le nouveau point de montage. sudo mount -a |
Dans cette section, vous créez un compte utilisateur local sur le serveur ainsi qu'un fichier lui appartenant. L'objectif est de préparer l'analyse de la correspondance entre les valeurs UID et GID entre le client et le serveur NFS. Voir Section 8, « Gérer les droits sur le système de fichiers NFS ».
|
Q13. |
Comment créer un compte utilisateur local baptisé Recherchez dans les paramètres de la commande adduser celui qui permet de désigner le répertoire utilisateur. |
|
Créez le compte utilisateur en utilisant l'option sudo adduser --home /ahome/etu-nfs etu-nfs Nouveau mot de passe :
Retapez le nouveau mot de passe :
passwd : mot de passe mis à jour avec succès
Modifier les informations associées à un utilisateur pour etu-nfs
Entrer la nouvelle valeur, ou appuyer sur ENTER pour la valeur par défaut
NOM []: NFS user
Numéro de chambre []:
Téléphone professionnel []:
Téléphone personnel []:
Autre []:
Is the information correct? [Y/n]
Affichez les attributs du compte utilisateur créé. getent passwd etu-nfs etu-nfs:x:1002:1002:NFS user,,,:/ahome/etu-nfs:/bin/bash Les valeurs numériques des identifiants |
|
|
Q14. |
Comment créer un fichier avec l'identité de l'utilisateur Recherchez comment utiliser la commande su ou login pour prendre l'identité du nouvel utilisateur. |
|
Utilisez la commande su pour prendre l'identité de l'utilisateur su - etu-nfs Mot de passe : id uid=1002(etu-nfs) gid=1002(etu-nfs) groupes=1002(etu-nfs),100(users) Vérifiez que le chemin du répertoire utilisateur est correct. pwd /ahome/etu-nfs Créez un fichier texte dans le répertoire utilisateur et affichez son masque de permissions. echo "This file is mine" > myTextFile ls -lAh myTextFile -rw-rw-r-- 1 etu-nfs etu-nfs 18 15 sept. 15:00 myTextFile Vous pouvez revenir à l'identité précédente en quittant la session avec la commande exit. |

![[Note]](/images/note.png)
![[Important]](/images/important.png)