Developpez.com - Linux
X

Choisissez d'abord la catégorieensuite la rubrique :


Administration NFS : configuration du serveur

Date de publication : 26/01/2005 , Date de mise a jour : 26/01/2005

Par david.d (Coredump)
 


1. Le fichier de configuration /etc/exports
2. Format du fichier /etc/exports sous Linux
3. Démarrage des démons sous Linux


Pour le détail du fonctionnement de portmap, voir plus haut. NFS étant construit au-dessus des RPC, il est nécessaire en premier lieu de démarrer portmap.


1. Le fichier de configuration /etc/exports

mountd et nfsd partagent une unique base de données de contrôle d’accès, qui indique les systèmes de fichiers qui peuvent être exportés, et les clients qui ont le droit de les monter. Le fichier /etc/exports est cette base de données au format texte, aisée à manipuler.

Une fois une modification effectuée, pour que celle-ci soit prise en compte, sous Linux, il faut appeler la commande suivante :


	[root@matrox /]# exportfs -r


Sous Linux, il existe une version de cette base de données, qui est utilisée pour les diverses opérations, et qui est généralement conservée dans un fichier binaire xtab. La commande suivante permet de consulter le contenu de cette base de données :


	[root@matrox /]# exportfs -v


la prise en compte est immédiate, les fichiers /var/lib/nfs/xtab et /etc/exports sont synchronisés.


2. Format du fichier /etc/exports sous Linux

Il se compose d’une succession de lignes au format suivant :


	FS host1(options) ... hostn(options)


Les options sont séparées par des virgules, et la parenthèse ouvrante des options est collée à l’hôte auquel se référent les options.

FS représente un système de fichiers complet ou un sous-arbre de ce dernier.

hostXXX peut prendre les formats suivants :

  • nom d’hôte (syntaxe hostname) ou adresse IP, renvoi à un hôte individuel,
  • groupe réseau (syntaxe @groupname), renvoi à un groupe réseau NIS (voir article sur NIS),
  • jokers (syntaxe * ou ?), renvoi à un FQDN avec des jokers, * n’est jamais égal à un ?,
  • network (syntaxe ipaddr/mask), renvoi à une spécification de type CIDR.
Les options disponibles sont les suivantes :

  • ro, pour read only,
  • rw, pour read write (option par défaut),
  • rw=list, permet les exportations en lecture pour tous, list énumère les hôtes ayant un accès en écriture
  • root_squash, associe l’uid 0 et le gid 0 aux valeurs spécifiées par anonuid et anongid (option par défaut)
    il est préférable que l’utilisateur root d’un client ne puisse pas être assimilé au root du serveur. Par cette option, il prend l’identité nobody.
  • no_root_squash, autorise les accès normaux depuis le compte root (dangereux),
  • all_squash, associe tous les uid et les gid à leur version anonyme, autrement dit, tous les clients accédant au système exporté utilisent l’UID/GID de nobody,
  • anonuid=xxx, précise l’uid auquel doivent être associés les roots distants l’utilisateur nobody dispose maintenant de l’UID transmis par cette option,
  • anongid=xxx, précise le gid auquel doivent être associés les roots distants, l’utilisateur nobody dispose maintenant du GID transmis par cette option,
  • secure, oblige les accès distants à provenir d’un port privilégié,
  • insecure, lève l’obligation ci-dessus,
  • noaccess, interdit les accès à ce dossier et à ses sous-dossiers (utile pour les exportations imbriquées).
Exemple :


	# /etc/exports

	...

	/home 192.168.10.0/24(ro,root_squash) icraa(rw)

	...



3. Démarrage des démons sous Linux

Le strict nécessaire (en plus de portmap) pour un bon fonctionnement de NFS est le démarrage de rpc.mountd et de rpc.nfsd. Il est néanmoins préférable d’activer les autres démons collaborant à NFS. Il est de bon ton de les démarrer dans l’ordre suivant :

  1. rpc.rquotad
  2. rpc.mountd
  3. rpc.nfsd
  4. rpc.lockd
On démarre en premier lieu rpc.mountd (après portmap, bien sûr). Alors que portmap ne pouvait être démarrer via inetd, rpc.mountd le permet. Il suffit de décommenter la ligne correspondante dans le fichier /etc/inetd.conf et de relancer inetd :


	[root@matrox /]# killall -HUP inetd


inetd permet notamment de mettre en place une meilleure gestion des accès via tcpd. on peut également le lancer directement via la commande :


	[root@matrox /]# /usr/sbin/rpc.mountd 


On démarre ensuite rpc.nfsd, comme suit :


	[root@matrox /]# /usr/sbin/rpc.nfsd


On contrôle la bonne marche des événements par un rpcinfo -p, qui doit faire apparaître les démons référencés par portmap.

La plupart des distributions de Linux mettent en place des scripts qui permettent de faire ceci de manière automatique au démarrage de la machine. Si NFS n’est pas lancé automatiquement au démarrage, agir comme suit, pour un démarrage aux runlevels 3, 4 et 5 :


	[root@matrox /]# chkconfig --add nfs

	[root@matrox /]# chkconfig --level 345 nfs on


Sur Redhat, ce script s’occupe de lancer l’ensemble des démons nécessaires au bon fonctionnement de NFS.

Cet article présente l'administration NFS sous Linux. Vous pourrez trouver comment administrer NFS sous FreeBSD sur le site Coredump



Copyright (c) 2004 david d. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. Read the full license here : http://www.gnu.org/licenses/fdl.txt
Contacter le responsable de la rubrique Linux