Un partage de fichiers nfs
Objectif de ce tuto
On voudrait partager le dossier /home/nfs, sur une machine debian ou ubuntu, avec une machine cliente debian ou ubuntu, du réseau local. Les utilisateurs du poste client pourront se connecter à ce dossier.
J'ai choisi le dossier /home/nfs afin qu'il soit sauvegardé lors de la sauvegarde des données.
installation des outils réseau
Installons d'abord les outils réseau. Tapez cette commande sur les deux machines:
sudo apt install net-tools
Le réseau
Chaque ordinateurs doit avoir une adresse ip invariable. On peut utiliser des adresses ip fixes ou alors chaque machine doit avoir un bail dhcp permanant.
Vous trouverez l'adresse ip de votre machine avec la commande ifconfig.
sudo ifconfig
L'adresse ip est à côté de "inet".
wlp5s0: flags=4163 mtu 1500
inet 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::6b5d:4359:f466:46f1 prefixlen 64 scopeid 0x20<link>
ether 34:de:1a:01:95:32 txqueuelen 1000 (Ethernet)
RX packets 11617 bytes 8529631 (8.5 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 11329 bytes 1747615 (1.7 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Ici, l'adresse ip est 192.168.0.1. Notez bien l'adresse ip de chaque poste.
Manipulations sur le serveur
Pour commencer, nous allons vérifier que le dossier /home/nfs est bien existant. Il suffit d'utiliser la commande ls.
ls -d /home/nfs
Si cela génère un message d'erreur, il faut créer ce dossier, comme ceci:
sudo mkdir /home/nfs
Installons nfs sur le serveur:
sudo apt install nfs-kernel-server
Créons les accès du dossier partagés:
sudo groupadd nfs
sudo chown root:nfs /home/nfs
sudo chmod 770 /home/nfs
Créez un dossier par utilisateur dans /home/nfs, et donnez les droit d'acces pour chacun d'eux:
cd /home/nfs
sudo mkdir <utilisateur>
sudo chown utilisateur:utilisateur utilisateur
sudo chmod 770 /home/nfs/utilisateur
sudo adduser utilisateur nfs
Pour que "utilisateur" fasse partie du group nfs, fermez la session, puis re-ouvrez-la.
Assurez-vous que le groupe nfs ait le même gid sur le serveur et le client. La commande suivante donne le gid (Le numéro du groupe) du groupe nfs
grep nfs /etc/group
Pour connaître le gid de chaque groupe, on utilise la commande suivante
cat /etc/group
pour modifier le gid du groupe nfs, qui doit être le même sur toutes les machines, et différent de tous les gid, on utilise la commande suivante:
sudo goupmod nfs -g<numéro>
Complétez les fichiers /etc/hosts.allow, /etc/hosts.deny et /etc/exports:
Ouvrez le fichier /etc/hosts.allow avec votre éditeur préféré. Ce fichier doit contenir:
portmap: <l'adresse ip du client>
lockd: <l'adresse ip du client>
nfsd: <l'adresse ip du client>
mountd: <l'adresse ip du client>
rquotad: <l'adresse ip du client>
statd: <l'adresse ip du client>
Le fichier /etc/hosts.deny, dont le contenu doit être:
ALL: ALL
Le fichier /etc/exports contiendra ceci:
/home/nfs <adresse-ip-client>(sync,root_squash,rw,subtree_check)
Lancez le partage nfs:
sudo service nfs-kernel-server start
Manipulations sur le client
Installez nfs côté client:
sudo apt install nfs-common
définissons les accès de /media/nfs
sudo chown root:nfs /media/nfs
sudo chmod 770 /media/nfs
Ajoutez cette ligne dans le fichier /etc/fstab, avec votre éditeur préféré:
<adresse ip du serveur>:/home/nfs /media/nfs nfs noauto,rw,user 0 0
Après avoir modifié le fichier /etc/fstab, il faut éxecuter cette commande:
sudo systemctl daemon-reload
Utilisation graphique
Pour vous connecter au serveur à partir du client, ouvrez l'icône "fichier", ou n'importe quel autre dossier, et cliquez sur "nfs", à
gauche, dans la liste des emplacements.
Pour copier un fichier depuis le serveur, connectez-vous comme décrit ci-dessus, et faites glisser le fichier jusqu'à l'emplacement voulu, à gauche dans
les emplacements.
Pour copier sur le serveur un fichier du client, allez dans l'emplacement du fichier et glissez le fichier jusqu'à l'emplacement "nfs".
N'oubliez jamais d'éjecter nfs avant d'éteindre le serveur ou le client (ou de fermer la session sur le client). Le mieux est d'éjecter
dès que l'on a fini avec le serveur.
Utilisation dans le terminal
Pour monter la ressource nfs, si vous avez bien recopié la ligne adéquat dans /etc/fstab, cette commande suffira:
mount /media/nfs
Pour vérifier si le partage est monté:
df | grep nfs
Pour copier un fichier du client sur le serveur:
cp <fichier> /media/nfs
Pour copier un fichier depuis le serveur:
cp /media/nfs/<fichier> <chemin du dossier choisi sur le client>
N'oubliez jamais de démonter nfs avant d'éteindre le client ou le serveur (ou de fermer la session sur le client).
Démontez-le avec cette commande:
umount /media/nfs