Red Hat Linux 9: Guide de référence de Red Hat Linux | ||
---|---|---|
Prev | Chapter 9. Le système de fichier réseau (NFS) | Next |
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:
-r — provoque l'exportation de tous les répertoires listés dans /etc/exports par la construction d'une nouvelle liste d'exportation dans /etc/lib/nfs/xtab. Cette option rafraîchit effectivement la liste d'exportations par tout changement apporté à /etc/exports.
-a — provoque l'exportation ou la désexportation de tous les répertoires, selon les autres options d' exportfs.
-o options — permet à l'utilisateur de spécifier les répertoires à exporter qui ne sont pas listés dans /etc/exports. Ces partages de systèmes de fichiers supplémentaires doivent être écrits de la même manière qu'ils sont spécifiés dans /etc/exports. Cette option sert à tester un système de fichiers exporté avant de l'ajouter de façon permanente à la liste des systèmes de fichiers à exporter.
-i — ne prend pas en compte /etc/exports; seules les options données par la ligne de commande sont utilisées pour définir des systèmes de fichiers exportés.
-u — désexporte des répertoires de leur montage par des utilisateurs distants. La commande exportfs -ua suspend effectivement le partage de fichier NFS tout en laissant actifs les divers démons NFS. Pour permettre au partage NFS de continuer, tapez exportfs -r.
-v — opération prolixe selon laquelle les systèmes de fichiers à exporter ou désexporter sont affichés avec de plus amples détails, lors de l'exécution de la commande 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.
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:
ro — Lecture-seule. Les hôtes qui montent ce système de fichiers ne pourront pas le modifier. Pour autoriser les hôtes à apporter des modifications au système de fichiers, l'option rw (Lecture-seule) doit être spécifiée.
async — Permet au serveur d'écrire des données sur le disque lorsqu'il le juge opportun. Bien que cela ne soit pas important si l'hôte reçoit des données en lecture-seule, s'il apporte des modifications à un système de fichiers en lecture-écriture et que le serveur plante, des données peuvent être perdues. En spécifiant l'option sync, toutes les opérations d'écriture doivent être confiées au disque avant que la requête d'écriture par le client ne soit effectivement achevée. Cela peut diminuer les performances.
wdelay — Cette option entraîne un retard des opération décriture sur le disque par NFS, s'il suspecte qu'une autre requête d'écriture est imminente. Ce faisant, les performances peuvent être améliorées grâce à une réduction du nombre d'accès au disque par des commandes d'écriture séparées, réduisant ainsi le temps d'écriture. L'option no_wdelay quant à elle, désactive cette fonction mais n'est disponible que lors de l'utilisation de l'option sync.
root_squash — Retire au super-utilisateur en connexion distante tous les privilèges de son status en lui assignant l'ID d'utilisateur 'personne'. Ce faisant, le pouvoir du super-utilisateur distant est réduit au niveau d'utilisateur le plus bas, lui empêchant d'agir comme comme s'il était le super-utilisateur sur le système local. Sinon, l'option no_root_squash annule cette fonction de réduction des privilèges du super-utilisateur. Afin de limiter le champs d'action de chaque utilisateur distant, y compris le super-utilisateur, utilisez l'option all_squash. Pour spécifier l'utilisateur et ID de groupe à utiliser avec des utilisateurs distants d'un hôte particulier, utilisez respectivement les options anonuid et anongid. Dans ce cas, vous pouvez créer un compte d'utilisateur spécial pour que les utilisateurs NFS distants partagent et spécifient, (anonuid=<uid-valeur>,anongid=<valeur-gid>), où <valeur-uid> correspond au numéro de l'ID d'utilisateur et <gid-valeur> représente le numéro de l'ID de groupe.
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:
hôte simple (single host) — Où un hôte particulier est spécifié avec un nom de domaine, d'hôte ou une adresse IP pleinement qualifiés.
caractères génériques (wildcards) — Où les caractères * ou ? sont utilisés pour prendre en compte un groupement de noms de domaines ou adresses IP pleinement qualifiés ou ceux qui correspondent à une particulière chaîne de lettres.
Soyez toutefois prudents si vous utilisez des caractères génériques pour des noms de domaines pleinement qualifiés, car ils sont souvent plus exacts que ce que vous escomptiez. Par exemple, si vous utilisez *.example.com comme caractère générique, sales.example.com sera autorisé à accéder au système de fichiers exporté, mais bob.sales.example.com lui, ne le sera pas. Pour retenir les deux noms de domaine, ainsi que sam.corp.example.com, vous devrez utiliser *.example.com *.*.example.com.
réseaux IP (IP networks) — Autorise la mise en correspondance d'hôtes selon leur adresse IP dans un réseau plus grand. Par exemple, 192.168.0.0/28 autorisera les 16 premières adresses IP, de 192.168.0.0 à 192.168.0.15, à accéder au système de fichiers exporté, mais pas 192.168.0.16 ou une adresse IP supérieure.
groupes réseau (netgroups) — Attribue un nom de groupe à un groupe réseau NIS, écrit ainsi: @<nom-du-groupe>. Cette option attribue au serveur NIS la charge du contrôle d'accès pour ce système de fichier exporté, où les utilisateurs peuvent être ajoutés et supprimés dans un groupe NIS sans affecter /etc/exports.
![]() | Avertissement | |
---|---|---|
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:
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. |