| Red Hat Linux 7.2: Guide de référence Red Hat Linux officiel | ||
|---|---|---|
| Précédent | Chapitre 17. NFS (Network File System) | Suivant |
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 :
-r fait en sorte que tous les répertoires énumérés dans /etc/exports soient exportés en créant une nouvelle liste d'exportation dans /etc/lib/nfs/xtab. Cette option actualise en fait la liste d'exportation avec tous les changements apportés à /etc/exports.
-a fait en sorte que tous les répertoires soient exportés ou non, selon les autres options passées à exportfs.
-o options permet à l'utilisateur de spécifier les répertoires devant être exportés qui ne sont pas inclus dans la liste de /etc/exports. Ces systèmes de fichiers partagés supplémentaires doivent être écrits de la même façon qu'ils sont spécifiés dans /etc/exports. Cette option est utilisée pour tester un système de fichiers avant de l'ajouter de façon permanente à la liste des systèmes de fichiers à exporter.
-i indique à exportfs d'ignorer /etc/exports ; seules les options données depuis la ligne de commande sont utilisées pour définir les systèmes de fichiers exportés.
-u annule l'exportation de répertoires pouvant être montés par des utilisateurs distants. La commande exportfs -ua suspend le partage de fichiers NFS tout en conservant les divers démons NFS en marche. Pour permettre au partage de fichiers NFS de se poursuivre, entrez exportfs -r.
-v opération prolixe, où les systèmes de fichiers exportés et non exportés sont affichés de façon plus détaillée lorsque la commande exportfs est exécutée.
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.
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 :
ro lecture seule : les hôtes qui montent ce système de fichiers ne peuvent le modifier. Pour permettre aux hôtes d'effectuer des changements au système de fichiers, vous devez spécifier rw (lecture-écriture).
async permet au serveur d'écrire des données sur le disque lorsqu'il le juge opportun. Alors que cela n'a aucune importance dans le cas d'un hôte qui effectue l'accès en lecture seule, la situation est différente si un hôte fait des changements sur un système de fichiers en lecture-écriture et que le serveur se plante car des données pourraient être perdues. En spécifiant l'option sync, toute modification de fichier doit être engagée sur le disque avant que la demande d'écriture du client ne soit complétée. Cela peut ralentir les performances.
wdelay fait en sorte que le serveur NFS retarde l'écriture sur le disque s'il pense qu'une autre demande d'écriture est imminente. Cela peut améliorer les performances en réduisant le nombre d'accès au disque par des commandes d'écriture différentes et le temps-système dédié à l'écriture. Utilisez no_wdelay pour désactiver cette fonction, qui ne fonctionne que si vous utilisez l'option sync.
root_squash fait en sorte que tout accès client au système de fichiers exporté, exécuté en tant que super-utilisateur sur l'ordinateur client, se fasse en tant qu'ID utilisateur " nobody" (personne). Cela permet de "réduire" la puissance du super-utilisateur distant à celle de l'utilisateur local le plus bas, l'empêchant ainsi d'agir comme s'il était le super-utilisateur du système local. Vous pouvez désactiver la diminution du super-utilisateur avec l'option no_root_squash. Pour diminuer tout utilisateur distant, y compris le super-utilisateur, utilisez l'option all_squash. Pour spécifier quels ID utilisateur et groupe utiliser avec les utilisateurs distants d'un hôte spécifique, utilisez les options anonuid et anongid, respectivement. De cette façon, vous pouvez créer un compte utilisateur spécial à partager pour les utilisateurs NFS distants et spécifier (anonuid=<valeur-uid>,anongid=<valeur-gid>), où <valeur-uid> est le numéro d'ID utilisateur et <valeur-gid> est le numéro d'ID groupe.
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 :
hôte unique — Un hôte spécifique est spécifié avec un nom de domaine, un nom d'hôte ou une adresse IP pleinement qualifié.
caractères spéciaux — Un caractère * ou ? est utilisé pour prendre en considération un groupe de noms de domaine ou d'adresses IP pleinement qualifiés ou ceux qui correspondent à une chaîne spécifique de lettres.
Toutefois, soyez prudent lorsque vous utilisez des caractères spéciaux avec des noms de domaine pleinement qualifiés car ils ont tendance à être plus précis que vous ne le croyez. Exemple : l'utilisation du caractère spécial *.domain.com permet à sales.domain.com d'accéder au système de fichiers exporté, mais pas à bob.sales.domain.com. Pour que les deux possibilités puissent fonctionner, de même que sam.corp.domain.com, vous devriez spécifier *.domain.com *.*.domain.com.
réseaux IP — permet la concordance des hôtes sur la base de leur adresse IP au sein d'un réseau plus étendu. Exemple : 192.168.0.0/28 autorise les 16 premières adresses, de 192.168.0.0 à 192.168.0.15, à accéder au système de fichiers exporté, mais n'autorise pas l'adresse 192.168.0.16 et les adresses supérieures.
groupe réseau — permet d'utiliser un nom de groupe de réseau NIS, écrit sous la forme @<nom-de-groupe>. Cela met le serveur NIS en charge du contrôle d'accès pour le système de fichiers en question ; il est ainsi possible d'ajouter et de supprimer des utilisateurs du groupe NIS sans affecter /etc/exports.
![]() | Avertissement | |
|---|---|---|
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 :
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. |
| Précédent | Sommaire | Suivant |
| NFS (Network File System) | Niveau supérieur | Fichiers de configuration d'un client NFS |