Vous êtes ici : Accueil  »   Partage NFS

Installation d'un partage NFS entre deux micros

Le 16-07-2006

NFS (Network File System) est, comme son nom l'indique, un système de fichier pour le réseau destiné au partage de fichiers entre plateformes UNIX/Linux.

L'objectif n'est pas de transformer un des ordinateurs en serveur exclusif, mais bien d'obtenir sur chaque ordinateur un répertoire partageable accessible depuis l'autre poste. Sans Gnome, ni KDE.

Au départ, c'était pour transférer toutes mes données d'un poste sur le nouveau ; puis en installant le nouveau, je téléchargeais finalement pas mal de fichiers que je voulais remettre sur l'ancien, d'où ce besoin de navette entre les deux. Et cela me permet éventuellement de ne pas toujours mettre en route les deux micros quand je ne travaille que sur un seul.

1 - Programmes nécessaires

  • tcp_wrappers : un système basique pour prévenir (ou explicitement autoriser) les accès aux services depuis des hôtes précis. Installé avec la Slackware par le paquetage tcpip-0.17, lequel est incontournable.
  • nfs-utils-1.0.7 : ce paquetage contient les démons et utilitaires nécessaires pour faire tourner le serveur NFS.
  • portmap-5.0 : indispensable aussi

Sans environnement Gnome, ni KDE, bien sûr. Sinon, se reporter à leur propres docs.

2 - Installation des programmes

Pas de problèmes particuliers, ils existent en paquetages d'origine dans le répertoire "n" de la Slackware. Sur le poste serveur, il faut installer nfs-utils et portmap. Sur les autres postes, il faut installer portmap.

Le principe étant d'avoir un répertoire partageable sur chaque ordinateur, chacun des postes est un serveur pour l'autre.

3 - Configuration

Sur le serveur uniquement

le fichier /etc/exports

Toutes les informations concernant le partage de dossier pour NFS se trouvent dans ce fichier. Chaque ligne définit un répertoire partagé comme ceci :

dossier_partagé hôte1(options) hôte2(options)...
		
dossier_partagé :
chemin du dossier partagé.
hôte :
l'hôte qui peut accéder à ce partage, l'hôte peut être défini de plusieurs manières.
  • une adresse IP.
  • un nom d'hôte : on indique le nom complet de l'hôte (il faut qu'il soit inscrit dans le fichier /etc/hosts).
  • un nom de domaine avec un joker qui indique toutes les machines d'un domaine, par exemple : *.mondomaine.fr
  • un intervalle d'IP avec son masque de sous-réseau ; par exemple : 192.168.0.0/24.
options :
indique les options de partage ; voici les plus importantes.
  • rw : permet la lecture et l'écriture sur un partage pour l'hôte défini (par défaut, les partages sont en mode ro; c'est-à-dire en lecture seule).
  • async : permet au serveur NFS de violer le protocole NFS. Cette option améliore les performances mais comporte un risque pour l'intégrité des données en cas de crash.
  • sync : est le contraire de async. Le serveur NFS respecte le protocole NFS.
  • root_squash : force l'identité de l'utilisateur root vers l'utilisateur anonyme (option par défaut).
  • no_root_squash : n'effectue pas de transfert d'identité pour l'utilisateur root.
  • all_squash : force l'identité de tous les utilisateurs vers l'utilisateur anonyme.
  • anonuid,anongid : indique au serveur NFS l'UID et le GID utilisé pour l'utilisateur anonyme (nobody).

Donc si l'on veut permettre que tous les utilisateurs deviennent un utilisateur anonyme avec un UID/GID 5000 pour le répertoire partagé qui s'appelle originalement /home/partages :

# See exports(5) for a description.
# This file contains a list of all directories exported 
# to other computers.
# It is used by rpc.nfsd and rpc.mountd. 
/home/partages 192.168.0.50(rw,all_squash,anonuid=5000,anongid=5000,sync)

Mais si c'est seulement pour toto, il faut que toto ait les mêmes uid et gid sur les deux micros et on a alors :

# See exports(5) for a description.
# This file contains a list of all directories 
# exported to other computers.
# It is used by rpc.nfsd and rpc.mountd. 
/home/toto/partages 192.168.0.50(rw,sync)

Attention, pas d'espace entre l'IP et les options !

Le fichier /etc/hosts.deny

indique à quelles machines et à quels programmes, on interdit l'accès.

# hosts.deny	This file describes the names of the hosts 
# which are *not* allowed to use the local INET services,
#	as decided by the '/usr/sbin/tcpd' server.
#		
# Version:	@(#)/etc/hosts.deny	1.00	05/28/93
# Author:	Fred N. van Kempen, waltje@uwalt.nl.mugnet.org
#
ALL:ALL
# End of hosts.deny.

Là, on interdit tous les programmes à toutes les machines.

Le fichier /etc/hosts.allow

indique quelles machines ont accès à quels programmes.

# hosts.allow	This file describes the names of the hosts which are
#		allowed to use the local INET services, as decided by
#		the '/usr/sbin/tcpd' server.
#
# Version:	@(#)/etc/hosts.allow	1.00	05/28/93
# Author:	Fred N. van Kempen, waltje@uwalt.nl.mugnet.org
#
ALL:192.168.0.50
# End of hosts.allow

On autorise tout à la machine d'IP indiquée ou alors pour plus de précision, on indique les programmes autorisés pour ce micro :

portmap:192.168.0.50
lockd:192.168.0.50
mountd:192.168.0.50
statd:192.168.0.50

# End of hosts.allow.

Pour un échange symétrique, ce paramétrage est à faire sur les deux micros.

4 - Utilisation des répertoires partageables

Pour que le système monte automatiquement ces répertoires, inclure dans le fichier /etc/fstab de machine2 :

machine1:/home/toto/partages  /mnt/partages  nfs  hard,intr,user 0 0

... où machine1 représente le nom de l'autre machine, sur laquelle on partage le répertoire /home/toto/partages que l'on monte dans le répertoire /mnt/partages (par exemple) de machine2.
Les options hard et intr permettent de ne pas attendre indefiniment au boot du premier micro (qui n'a pas d'accès à l'autre pas encore en route). Extrait du NFS Howto :

hard   Le  programme  accédant  à  un fichier sur un système monté 
 par NFS sera suspendu si le serveur se plante. Le processus ne pas être 
 interrompu  ou tué sauf si on spécifie aussi l'option intr.

L'option user pour permettre à l'utilisateur non root de monter, si nécessaire, le répertoire /mnt/partages. Ce qui s'avère indispensable sur la machine mise en route en premier.

5 - Liens utiles




page trouvée sur http://mcclinews.free.fr

Tous les textes de ce site, sauf mention contraire, sont copyright (©) 2006 mcclinews