« Administration réseau sous Linux/NFS » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 11 : Ligne 11 :
ps ax | grep nfsd
ps ax | grep nfsd


Pour lancer les démons manuellement sous Debian :
>Pour lancer les démons manuellement sous Debian :
/etc/init.d/nfs-kernel-server start
/etc/init.d/nfs-kernel-server start
ou, si c'est le serveur NFS en [[w:espace utilisateur|espace utilisateur]] qui est installé :
ou, si c'est le serveur NFS en [[w:espace utilisateur|espace utilisateur]] qui est installé :
Ligne 25 : Ligne 25 :
<répertoire local> <nom ou IP des machines autorisées à se connecter>(<options>) <autres machines>(<options>)...
<répertoire local> <nom ou IP des machines autorisées à se connecter>(<options>) <autres machines>(<options>)...


Par exemple :
>Par exemple :
/home/bob ollinux(rw) station1(ro)
/home/bob ollinux(rw) station1(ro)
/projet station1(rw) (ro)
/projet station1(rw) (ro)

Version du 14 mai 2019 à 15:15

Le protocole NFS (Network file system) permet de partager des fichiers entre des machines Unix, et donc Linux. C'est un modèle client-serveur : une machine met à disposition (exporte) des répertoires de son système de fichier local sur le réseau. Suivant les droits d'accès, les autres stations du réseau peuvent monter ces répertoires, qui seront alors vus comme des répertoires locaux. Un ordinateur peut être à la fois client et serveur NFS.

Installation coté serveur

Commencer par vérifier que les demons NFS (nfsd) ne sont pas déjà lancés avec, par exemple, la commande

ps ax | grep nfsd

>Pour lancer les démons manuellement sous Debian :

/etc/init.d/nfs-kernel-server start

ou, si c'est le serveur NFS en espace utilisateur qui est installé :

/etc/init.d/nfs-user-server start

On peut remplacer start par restart pour redémarrer le serveur.

Configuration

Pour partager (ou exporter) des répertoires, il faut renseigner le fichier /etc/exports. Il indique la liste des répertoires partagés et le nom des machines qui y ont accès.

Chaque ligne correspond à un répertoire et a la forme :

<répertoire local> <nom ou IP des machines autorisées à se connecter>(<options>) <autres machines>(<options>)...

>Par exemple :

/home/bob  ollinux(rw) station1(ro)
/projet    station1(rw) (ro)
/brouillon

Le serveur exporte son répertoire /home. La machine ollinux pourra le monter en lecture/écriture (rw), station1 en lecture seule (ro), et les autres machines ne pourront pas se connecter.

De même, station1 pourra accéder en lecture/écriture au répertoire projet et toutes les autres stations en lecture seule.

Enfin, tout le monde pourra accéder en lecture/écriture au répertoire brouillon (l'option rw est celle par défaut).

Pour connaitre la liste des options possibles et leur signification, consultez man exports.

Notez bien que les droits en écriture via le réseau seront toujours inhibés par les droits sur le système de fichier. Prenons par exemple un fichier test appartenant à root, situé dans le répertoire projet et avec les droits 600 (lecture/écriture pour root uniquement, aucun droit pour les autres). Si l'utilisateur toto accède via la station station1 au répertoire /projet, il ne pourra pas accéder au fichier test, bien qu'il ait les "droits réseaux read-write".

Un fois le fichier /etc/exports correctement configuré, il suffit de relancer le service NFS par la commande suivante pour que les modifications soient prises en compte :

/etc/init.d/nfs-kernel-server reload

Installation coté client

C'est relativement simple puisque le "système de fichier réseau" NFS est directement intégré au noyau. Il suffit de vérifier que ce dernier a été compilé avec la prise en charge de NFS. C'est le cas de toutes les distributions récentes.

Pour monter un système de fichier distant, utiliser la commande mount avec l'option nfs :

mount -t nfs <machine distante>:<répertoire partagé> <répertoire local> -o <options>

Par exemple :

mount -t nfs 192.168.105.2:/armor/plages /mnt/cotes -o ro

Cette commande montera le répertoire /armor/plages, exporté par la station 192.168.105.2, dans le répertoire local /mnt/cotes, en lecture seule.

A la place d'une adresse IP, vous pouvez aussi donner un nom de machine, comme par exemple sasa. Pour cela, il faut que le nom sasa puisse être converti en adresse IP (en modifiant /etc/hosts par exemple, si on n'a pas de serveur DNS)

Connexion au démarrage

Il est possible de connecter les répertoires partagés au démarrage de la station.

Le plus simple est de renseigner le fichier /etc/fstab qui contient une liste des systèmes de fichiers connus.

La syntaxe est la suivante :

<ordinateur distant>:<répertoire distant> <répertoire local> nfs <options> 0 0

Pour reprendre l'exemple précédent, cela donnerait :

sasa:/armor/plages /mnt/cotes nfs auto,rw,user,soft 0 0

Les options sont décrites dans la page de man de mount. Certaines sont communes à d'autres systèmes de fichiers (ext2, vfat...) alors que d'autres sont spécifiques à NFS.