Dominique Meeùs
Dernière modification le
retour à la table des matières
— à l’index
— à ma page de départ
Les systèmes doivent pouvoir s’identifier l’un l’autre. Cela peut se faire soit
directement par l’adresse IP, soit par un nom qui y correspond. Les noms sont gérés
soit par un serveur DNS, soit, sur chacune des machines, par un fichier /etc/hosts
, du genre
127.0.0.0 localhost 192.168.2.101 serveur 192.168.2.100 client⚓
Le fichier hosts
est lu chaque fois que nécessaire. Les modifications sont donc immédiatement suivies
d’effet.
Un système Linux peut exporter (partager) des fichiers en NFS si les paquets nfs-common
et nfs-kernel-server
sont installés et le démon nfsd
est actif. On en est maintenant à NFS version 4 où on fait les choses de manière
un peu plus sophistiquée :
On réunit ce qu’on veut exporter (partager) dans le répertoire /exports
qui servira de racine au pseudo-système de fichiers du serveur tels que vu par les
clients, par exemple
mkdir /exports mkdir exports/archives⚓
Pour les clients, myserver: sera le /exports du serveur et rien d’autre. Les répertoires accessibles sous myserver: seront les sous-répertoires (virtuels) de /exports et rien d’autre.
Attention, il faut que l’utilisateur client ait le droit d’accéder au dossier export du serveur.
Il faut donc faire un chmod
pour les permissions désirées (ou directement mkdir -m
) ou un chown
. Attention que NFS v.4 ne tient compte que des UID/GID, pas du nom. Il n’est pas interdit d’écrire
chown untel:untel
, mais l’accès se fera, on non, selon l’UID.
On y monte le contenu réel désiré, par exemple :
mount --bind /home/archives /exports/archives⚓
Le mieux est de rendre ça permanent dans etc/fstab
:
/home/archives /exports/archives none rw,bind 0 0⚓
On déclare dans /etc/exports
ce qu’on exporte et pour qui :
/exports 192.168.2.0/255.255.255.0(rw,sync,fsid=0,no_subtree_check,insecure,crossmnt,root_squash) /exports/archives 192.168.2.0/255.255.255.0(rw,sync,nohide,no_subtree_check,insecure,root_squash)⚓
On aurait pu mettre un nom de client comme plus haut. On peut mettre une seule adresse
IP (si c’est pour travailler entre un serveur et un unique poste de travail client)
ou tout le réseau (comme ici) si on veut. L’option fsid=0
est ce qui fait que /exports apparaîtra comme racine aux clients. Pour les autres
options, j’ai essayé de les comprendre et de les utiliser à bon escient, mais je peux
avoir mal compris, donc plutôt que de les expliquer ici avec le risque de vous tromper,
je vous laisse chercher par vous-mêmes (par exemple avec man exports
).
La commande exportfs
dit ce que le démon partage actuellement. Si on modifie le fichier /etc/exports
, la commande exportfs -ra
oblige le démon à relire le fichier et à offrir les nouveaux partages.
En NFS de l’ancien temps, on aurait écrit dans /etc/exports
, par exemple :
/home/archives client(rw,sync)⚓
Un système Linux peut accéder à des fichiers partagés en NFS version 4 si le paquet nfs-common
est installé, en montant le fichier distant comme un système de fichier (en adressant
la racine du pseudo-système de fichiers exporté), par exemple :
mount -t nfs4 -o proto=tcp,port=2049 serveur:/archives /mnt/archives⚓
ou bien en l’incluant dans etc/fstab
comme
serveur:/archives /mnt/archives nfs4 _netdev,user,noauto,noexec,intr 0 0⚓
En NFS de l’ancien temps, on aurait fait :
mount -t nfs serveur:/home/archives /mnt/archives⚓
Tout ça est assez lourd. Il faut avoir défini l’exportation sur le serveur et monter sur le client pour disposer des fichiers. En fait, si on veut les voir dans un navigateur de fichiers, Nautilus ou Nemo sont capables de faire tout ça par SSH et FTP (SFTP). Si on a un compte d’utilisateur sur le serveur, Nautilus ou d’autres donnent tous les fichiers du serveur sans avoir besoin de monter les dossiers. C’est le système de fichiers virtuel gvfs. Cependant, si on doit travailler sur les fichiers partagés, monter classiquement peut être plus sûr qu’un simple montage gvfs.
Je me suis habitué à ce système dans mes débuts en Linux, mais on peut préférer Samba, surtout que les environnement mélangés sont assez répandus.