Fichiers de configuration du serveur NFS

La configuration d'un système afin qu'il puisse partager des fichiers et des répertoires à l'aide de NFS est très simple ; tout système de fichiers exporté vers des utilisateurs distants via NFS, de même que les droits d'accès relatifs au système de fichiers en question, sont situés dans le fichier /etc/exports. Ce fichier est lu par la commande exportfs pour donner à rpc.mountd et rpc.nfsd les informations nécessaires pour accorder le montage à distance d'un système de fichiers à un hôte autorisé.

La commande exportfs vous permet d'exporter ou d'annuler l'exportation de façon sélective des répertoires sans relancer les différents services NFS. Lorsque vous indiquez les bonnes options à exportfs, les systèmes de fichiers devant être exportés sont écrits dans /var/lib/nfs/xtab. Comme rpc.mountd se réfère au fichier xtab pour accorder les privilèges d'accès à un système de fichiers, les modifications apportées à la liste de systèmes de fichiers exportés sont appliquées immédiatement.

Différentes options sont disponibles lorsque vous utilisez exportfs :

Si aucune option n'est passée à la commande exportfs, une liste de systèmes de fichiers actuellement exportés s'affiche.

Les changements apportés à /etc/exports peuvent aussi être lus en rechargeant le service NFS à l'aide de la commande service nfs reload. Cela permet de maintenir les démons NFS en marche tout en exportant de nouveau le fichier /etc/exports.

/etc/exports

Le fichier /etc/exports est la norme pour contrôler quels fichiers doivent être exportés à des hôtes donnés, de même que pour spécifier des options particulières qui contrôlent tout. Les lignes vides sont ignorées, des lignes de commentaire peuvent être créées à l'aide du caractère # et les longues lignes peuvent être coupées avec une barre oblique inverse (\). Chaque système de fichiers exporté doit être sur sa propre ligne. Les listes d'hôtes autorisés, placées à la suite d'un système de fichiers exporté, doivent être séparées par des caractères d'espacement. Les options pour chacun des hôtes doivent être placées entre parenthèses directement après l'identificateur d'hôte, sans espace séparant l'hôte de la première parenthèse.

Dans sa forme la plus simple, /etc/exports n'a besoin que de savoir quel répertoire exporter et les hôtes autorisés à l'utiliser :

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

Après avoir exporté de nouveau /etc/exports avec la commande /sbin/service nfs reload, l'hôte bob.domain.com peut monter /some/directory et 192.168.0.3 peut monter /another/exported/directory. Comme aucune option n'est spécifiée dans cet exemple, de nombreuses préférences NFS par défaut sont appliquées :

Pour écraser les valeurs par défaut, vous devez spécifier une option qui les remplace. Exemple : si vous ne spécifiez pas rw, le système de fichiers exporté ne sera alors partagé qu'en lecture seule. Chaque valeur par défaut pour chacun des systèmes de fichiers exportés doit être écrasée explicitement. De plus, d'autres options sont disponibles là où aucune valeur par défaut n'est en place. Cela inclut la possibilité de désactiver la vérification de sous-arborescences, d'autoriser l'accès depuis des ports non sécurisés et le verrouillage de fichier non sécurisé (nécessaires pour certaines mises en oeuvre de clients NFS plus anciens). Consultez la page de manuel de exports pour avoir plus de détails sur ces options moins souvent utilisées.

Vous pouvez avoir recours à toute une série de méthodes pour spécifier des hôtes autorisés à utiliser un système de fichiers exporté donné, notamment :

AttentionAvertissement
 

La façon dont le fichier /etc/exports est formaté est très importante, surtout en ce qui concerne l'utilisation des caractères d'espacement. N'oubliez jamais de séparer les systèmes de fichiers exportés des hôtes, et un hôte d'un hôte, avec un caractère d'espacement. Cependant, vous ne devriez utiliser les caractères d'espacement pour rien d'autre dans ce fichier, à l'exception des lignes de commentaire.

Dans l'exemple ci-dessous, les deux lignes n'ont pas la même signification :

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

La première ligne accorde uniquement l'accès lecture-écriture au répertoire /home aux utilisateurs de bob.domain.com. La seconde autorise les utilisateurs de bob.domain.com à monter le répertoire en lecture seule (par défaut), mais le reste de la planète peut le monter en lecture-écriture. Soyez prudent là où sont utilisés des caractères d'espacement dans /etc/exports.