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 le groupe nfs. Ce groupe servira à n'autoriser à se connecter uniquement les utilisateurs adéquat:
sudo groupadd -g <gid-nfs> nfs
"gid-nfs" est le numéro (le gid) du groupe nfs. Vous obtenez la liste des groupes, avec leur gid, dans le fichier /etc/group, sur les deux machines.
cat /etc/group
Comme gid, vous pourrez choisir le nombre suivant immédiatement le uid (numéro de l'utilisateur) du dernier utilisateur des machines.
cat /etc/passwd
refaîtes cette commande sur la machine cliente, et notez les uid (numeros des utilisateurs) de chaque utilisateurs. Créons les mêmes utilisateurs sur le serveur
sudo adduser --uid <numéro> <utilisateur>
Intégrez dans le groupe nfs les utilisateurs qui se connecteront au serveur. Pour chaque utilisateur, vous taperez la commande ci-dessous.
sudo adduser <utilisateur> nfs
Créons les accès du dossier partagés:
sudo chown root:nfs /home/nfs
sudo chmod 770 /home/nfs
Je vous ferrai remarquer que les utilisateurs sur le serveur font partie du groupe nfs, et que le groupe de /home/nfs est nfs. Ainsi, on peut copier des fichier dans /home/nfs
sans avoir les droits root. Je précise aussi qu'il s'agit d'un partage. Les membres du groupe nfs, et seulement eux, peuvent entrer dans tout le dossier /home/nfs.
Créez un dossier par utilisateur dans /home/nfs, et donnez les droit d'acces pour chacun d'eux:
cd /home/nfs
mkdir <utilisateur>
chown root:nfs <utilisateur>
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: PARANOID
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 restart
Manipulations sur le client
Installez nfs côté client:
sudo apt install nfs-common
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