9.2. Les fichiers de configuration du serveur NFS

La configuration d'un système pour le partage des fichiers et répertoires grâce à NFS est très simple. Chaque fichier exporté vers les utilisateurs distants via NFS, ainsi que les droits d'accès liés à ces systèmes de fichiers, se trouvent dans le fichier /etc/exports. Ce fichier est lu par la commande exportfs pour fournir à rpc.mountd et rpc.nfsd les informations nécessaires pour le montage distant d'un système de fichier par un hôte autorisé.

La commande exportfs permet au super-utilisateur d'exporter ou désexporter sélectivement des répertoires sans redémarrer le service NFS. Lorsque exportfs a passé les options appropriées, les systèmes de fichiers à exporter sont écrits dans /var/lib/nfs/xtab. Puisque rpc.mountd se réfère au fichier xtab lorsqu'il décide des privilèges d'accès à un système de fichier, les changements apportés à la liste des systèmes de fichiers exportés prennent effet immédiatement.

Diverses options sont disponibles lorsque l'on utilise exportfs:

Si aucune option n'est transmise à la commande exportfs, elle affiche une liste des systèmes de fichiers exportés en cours.

Les changements apportés à /etc/exports peuvent aussi se lire en rechargeant le service NFS à l'aide de la commande service nfs reload. Ce faisant, les démons NFS demeurent actifs tout en réexportant le fichier /etc/exports.

9.2.1. /etc/exports

Le fichier /etc/exports permet non seulement de contrôler quels systèmes de fichiers sont exportés vers des hôtes distants mais permet également de spécifier des options. Les lignes vierges ne sont pas prises en compte, des commentaires peuvent être insérés grâce au symbole dièse (#) et un retour à la ligne peut être introduit grâce à une barre oblique inverse (\). Chaque fichier exporté doit avoir sa ligne propre. Les hôtes autorisés placés après un système de fichiers exporté doivent être séparés par des espaces. Les options pour chacun des hôtes doivent être placées entre parenthèses directement après l'identifieur d'hôte, sans espace entre l'hôte et la première parenthèse.

Dans sa forme la plus simple, /etc/exports requiert seulement le répertoire exporté et l'hôte autorisé à l'exploiter:

/some/directory bob.example.com
/another/exported/directory 192.168.0.3

Après la réexportation de /etc/exports grâce à la commande /sbin/service nfs reload, l'hôte bob.example.com pourra monter /some/directory et 192.168.0.3 peut monter /another/exported/directory. Parce qu'aucune option n'est spécifiée dans cet exemple, plusieurs préférences par défaut de NFS entrent en vigueur:

Pour outrepasser ces réglages par défaut, vous devez spécifier une option qui les remplace. Par exemple, si vous ne spécifiez pas rw, cette exportation sera partagée seulement en lecture. Ce remplacement des réglages par défaut doit être explicitement spécifié pour chaque système de fichier exporté. De plus, d'autres options sont disponibles là où il n'existe pas de valeur par défaut. Elles permettent d'annuler la vérification de sous-arborescence, l'accès à des ports non-sûrs et les verrouillages non-sûrs de fichiers (nécessaires pour certaines implémentations anciennes de client NFS). Consultez la page de manuel relative à exports pour plus de détails sur ces options moins souvent utilisées.

Lors de la précisions des nom d'hôtes, utilisez les méthodes suivantes:

WarningAvertissement
 

Le format du fichier /etc/exports est très précis, particulièrement en ce qui concerne l'utilisation des caractères d'espace. Rappelez-vous bien de toujours séparer les systèmes de fichiers exportés des hôtes, et les hôtes entre eux à l'aide d'un caractère d'espace. Toutefois, aucun autre caractère d'espace ne doit se trouver dans le fichier à moins qu'ils ne soient utilisés pour des lignes de commentaire.

Par exemple, les deux lignes suivantes n'ont pas la même signification:

/home bob.example.com(rw)
/home bob.example.com (rw)

La première ligne autorise seulement les utilisateurs de bob.example.com à avoir une accès en lecture-écriture au répertoire /home. La deuxième ligne elle, autorise les utilisateurs de bob.example.com à monter le répertoire en lecture-seule (valeur par défaut), mais tout autre utilisateur peut le monter en lecture-écriture.