NFS (Network File System)
Transcription
NFS (Network File System)
NFS (Network File System) Stéphane Gill [email protected] Table des matières Introduction 2 Démarrage des services NFS 2 Paramétrage d’un serveur NFS 3 Fichier /etc/exports 3 exportfs, Mettre à jour ou annuler une exportation 4 showmount, Interroger le démon mountd 6 Paramétrage d’un client NFS Linux 6 mount, montage d’un répertoire NFS 6 Fichier /etc/fstab 7 autofs, auto-montage 8 Paramétrage d’un client NFS Windows 10 Installation 10 Client NFS 11 Références 11 Document écrit par Stéphane Gill © Copyright 2004 Stéphane Gill Ce document est soumis à la licence GNU FDL. Permission vous est donnée de distribuer et/ou, modifier des copies de ce document tant que cette note apparaît clairement. NFS (Network File System) Introduction NFS (Network File System) est un protocole créé par SUN vers 1980. Comme sont nom l’indique, ce protocole est conçu pour permettre le partage de fichier entre système UNIX/LINUX. Il permet d'organiser les fichiers dans un emplacement central, tout en offrant la possibilité de laisser des utilisateurs autorisés y accéder. Dans ce chapitre, … Démarrage des services NFS Comme les autres services Linux, NFS se gère avec un script placé dans /etc/rc.d/init.d/. Pour lancer NFS, la commande suivantes doit être exécuté : # service nfs start Starting NFS services: [ OK ] Starting NFS quotas: [ OK ] Starting NFS mountd: [ OK ] Starting NFS daemon: [ OK ] # Par défaut, 8 copies de nfsd sont démarrées : # service nfs status rpc.mountd (pid 1402) is running... nfsd (pid 1415 1414 1413 1412 1411 1410 1409 1408) is running... rpc.rquotad (pid 1397) is running... # Pour changer ce défaut, il faut éditer le fichier /etc/rc.d/init.d/nfs et changer la variable : RPCNFSDCOUNT=3 Après avoir modifié ce fichier il ne faut pas oublié de redémarrer NFS. Les services essentiel à NFS sont rpc.mountd, rpc.nfsd et portmap. Les autres démons démarrés offrent des fonctionnalités additionnelles tel la gestion des quotas. © Copyright 2004 Stéphane Gill Page 2 NFS (Network File System) Paramétrage d’un serveur NFS Le serveur NFS exporte (ou publie) un système de fichiers auquel le client peut accéder par une instruction mount. Lors du montage d’un système de fichiers partagé de ce type, le serveur vérifie les autorisations du client. Si celui-ci dispose des droits suffisants, le serveur lui transmet une valeur générée de manière aléatoire, appelée « magic cookie ». Cette valeur permet ultérieurement au client d’accéder à nouveau au serveur. Le serveur NFS utilise aussi les fichiers /etc/hosts.allow et /etc/hosts.deny (TCP Wrappers) pour déterminer si un hôte donné doit être autorisé ou refusé pour l'accès via NFS. Lorsqu’un client transmet une requête mount au serveur, celle-ci est traitée par le démon de montage mountd. A son démarrage, le démon mountd lit le fichier /etc/exports qui contient les informations indiquant les répertoires qui doivent être exportés et quels ordinateurs peuvent y accéder. Cette authentification se fait de façon spécifique à un hôte et non à un utilisateur. Lorsque la requête mount du client est validée par le démon mountd, toutes les opérations sur les fichiers peuvent être réalisées sur le système de fichiers ainsi connecté. L’exécution de ces opérations constitue la tâche du démon nfsd. Fichier /etc/exports Le listing ci-après présente un exemple de fichier /etc/exports. La colonne de gauche contient le répertoire à exporter. Les colonnes suivantes contiennent les droits d’accès au système de fichier exporté. Le répertoire /tmp est rendu ici accessible à tous les ordinateurs avec des droits de lecture et d’écriture. Le répertoire /test1 n’est accessible en lecture et écriture qu’à l’ordinateur gonzo. Les droits de l’utilisateur root sont également maintenus sur ce répertoire. Au-delà des autorisations d’exportation, les droits d’accès au niveau du système de fichiers restent évidemment valables. Si un répertoire est partagé en lecture et en écriture, mais que seuls des droits de lecture existent au niveau du système de fichiers, toutes tentative d’écriture sera naturellement refusée. Si le fichier /etc/exports est modifié, il faut en informer le démon mountd en lui transmettant un signal hangup. Ce n’est qu’après réception de ce signal que le fichier /etc/exports est relu et que les modifications sont appliquées. /tmp (rw) /test1 gonzo(rw,no_root_squash) /home 192.168.100.0/255.255.255.0(rw) © Copyright 2004 Stéphane Gill Page 3 NFS (Network File System) /usr/local *.ahuntsic-formres.local(ro) Les options possibles sont regroupées dans le tableau suivant : Option Fonction secure Ce paramètre interdit tout accès non autorisé (valeur par défaut) root_squash Ce dispositif de sécurité empêche les super-utilisateurs d’utiliser leurs droits particuliers en « mappant » le User-ID 0 sur l’identifiant utilisateur nobody. Si cet utilisateur n’existe pas, le mapping est réalisé sur l’identifiant –2 (65534). no_root_squash La fonction root_squash est désactivée. Le super-utilisateur retrouve tous ses droits sur ce système de fichiers. ro La structure des fichiers est montée en Read Only (valeur par défaut) rw La structure des fichiers est montée avec des droits en lecture et en écriture. link_relative Les liens symboliques absolus sont transformés en liens relatifs (les liens symboliques absolus commencent par un « / »). Cette option n’est judicieuse que si l’ensemble du système de fichiers d’un serveur est monté. link_absolue Tous les liens symboliques restent inchangés. map_identity Cette option oblige le serveur à utiliser les mêmes identifiants que le client (valeur par défaut) map_deamon Cette option indique au serveur que le client et le serveur n’utilisent pas les mêmes identifiants d’utilisateurs et de groupes. Le démon nfsd construit une liste de mapping à l’aide du démon ugidd. exportfs, Mettre à jour ou annuler une exportation exportfs [options] 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. © Copyright 2004 Stéphane Gill Page 4 NFS (Network File System) Différentes options sont disponibles lorsque vous utilisez exportfs: Option Description 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. Par exemple pour ajouter un nouveau export dans xtab : exportfs –o async,rw 192.168.100.3:/var/tmp La commande précédente est équivalente à rajouter la ligne suivante dans le fichier /etc/exportfs : /var/tmp 192.168.100.3(async,rw) Et bien sure suivi de la commande: exportfs -a 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. Par exemple pour supprimer un export exportfs –v –u 192.168.100.*:/home v 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. Par exemple pour lister les exports exportfs –v 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 © Copyright 2004 Stéphane Gill Page 5 NFS (Network File System) Cela permet de maintenir les démons NFS en marche tout en exportant de nouveau le fichier /etc/exports. showmount, Interroger le démon mountd showmount [option] [host] La commande showmount sans paramètres liste les clients ayant montés un système de fichier. Option Description a Affiche host :directory d Affiche directory e Affiche les systèmes de fichiers exportés h Help v Numéro de version --no-headers Pas de titre dans l’affichage Paramétrage d’un client NFS Linux mount, montage d’un répertoire NFS Sur le client, le montage d’un répertoire NFS exporté par le serveur est relativement simple. Il faut utiliser pour cela la commande mount. Il faut d’abord créer un répertoire servant de point de montage auquel le répertoire NFS est relié. La commande suivante doit alors être exécutée. Les paramètres de cette commande sont décrits dans le tableau suivant . # mount –t nfs ordinateur:rep_export rep_local options Les options de la commande mount : © Copyright 2004 Stéphane Gill Page 6 NFS (Network File System) Option Fonction -t nfs Ce paramètre indique qu’un système de fichier NFS est monté ordinateur:rep_export Le paramètre ordinateur désigne le serveur qui met le service NFS à disposition. Le paramètre rep_export indique le répertoire mis à disposition par le serveur. Le double point fait partie de la syntaxe. rep_local Ce paramètre désigne le point de montage, c’est-à-dire le point auquel le device NFS est connecté. Options Les paramètres d’accès au répertoire sont indiqués ici. Les options possibles sont les suivantes : rsize et wsizeL ces paramètres détermine la taille des datagrammes, utilisés pour la lecture (rsize) et l’écriture (wsize) de requêtes. La valeur par défaut est de 1024 octets, et est limitée par la taille des datagrammes UDP. Timeo : ce paramètre désigne le temps (en centièmes de seconde) pendant lesquelles un client NFS attend la réponse à une requête. La valeur par défaut est de 0.7 seconde. Hard : le périphérique (device) NFS est considéré comme monté « en dur » (hard-mounted). Il s’agit ici de la valeur par défaut. Exemple : Monter le répertoire partagé /tmp de l’ordinateur caesar sur le répertoire local /mnt de l’ordinateur gonzo. gonzo:/root # mount –t nfs caesar:/tmp /mnt Fichier /etc/fstab L’utilisateur root est le seul qui possède les droits permettant de connecter un système de fichiers par mount. Si des systèmes de fichiers doivent être connectés automatiquement au démarrage du système, cela peut être réalisé en ajoutant les lignes adéquates dans le fichier /etc/fstab, comme dans le listing ci-après : /dev/sda1 / ext2 defaults 1 1 /dev/sda3 / ext2 defaults 1 2 /dev/sda2 / swap defaults 0 0 © Copyright 2004 Stéphane Gill Page 7 NFS (Network File System) /dev/fd0 / ext2 0 0 /dev/cdrom / iso9660 noauto,ro 0 0 none / proc defaults 0 0 nfs noauto 0 0 caesar:/tmp / noauto La colonne 1 désigne les périphériques. S’il s’agit d’un système de fichier NFS, il faut indiquer le nom de l’ordinateur et le répertoire exporté. La dernière ligne de l’exemple présente ce type de syntaxe. La colonne 2 désigne le répertoire local auquel le système de fichier doit être connecté. La colonne 3 indique le type de système de fichiers à connecter. La colonne 4 contient les options nécessaires pour la connexion du système de fichiers. Les options les plus importantes sont auto et noauto. L’option auto indique que le système de fichiers doit être connecté au démarrage du système ou par la commande mount –a. Si l’option noauto est sélectionnée, la connexion n’est pas réalisée. L’option noauto présente également certains avantages, car la commande mount manuelle est alors nettement simplifiée pour les système de fichiers contenus dans le fichier /etc/fstab, ainsi que l’exemple ci-après le montre : gonzo:/root# mount /mnt Dans ce cas, la commande mount recherche les options nécessaires dans le fichier /etc/fstab. La colonne 5 permet d’indiquer la valeur nécessaire pour la commande dump. Une valeur nulle indique que la commande dump ne doit pas être activée. La valeur contenue dans la colonne 6 sert à la commande fsck (fsck = File System Check). Une valeur nulle indique que le système de fichier ne doit pas être contrôlé. autofs, auto-montage L'un des désavantages lorsque l'on utilise /etc/fstab est que, peu importe le temps consacré à utiliser le système de fichiers monté, le système doit y dédier des ressources pour le maintenir en place. Cela n'est pas problématique si l'on parle de quelques montages, mais peut le devenir lorsque le système maintient les montages d'une douzaine d'autres systèmes en même temps car les performances d'ensemble du système peuvent en souffrir. Donc, au lieu d'avoir recours à /etc/fstab, vous pouvez vous servir de l'utilitaire automount basé sur le noyau, qui monte et © Copyright 2004 Stéphane Gill Page 8 NFS (Network File System) démonte des systèmes de fichiers NFS automatiquement et permet de limiter les ressources employées. Le script autofs, situé dans /etc/rc.d/init.d, est utilisé pour contrôler automount par l'entremise du fichier de configuration primaire /etc/auto.master. Bien que automount puisse être spécifié à la ligne de commande, il est plus pratique de spécifier les points de montage, le nom d'hôte, le répertoire exporté et les options dans un ensemble de fichiers plutôt que de tous les entrer manuellement. En exécutant autofs en tant que service qui se lance et s'arrête aux niveaux d'exécution désignés, les configurations de montage dans les divers fichiers peuvent être appliquées automatiquement. Pour utiliser autofs, le paquetage RPM autofs doit être installé sur votre système. Les fichiers de configuration autofs sont arrangés selon la structure "parent-fils". Un fichier de configuration principal (/etc/auto.master) réfère des points de montage sur votre système qui sont liés à un type de mappe particulier, qui prend la forme d'autres fichiers de configuration, de programmes, de mappes NIS et d'autres méthodes de montage moins communes. Le fichier auto.master contient des lignes qui réfèrent à chacun de ces points de montage, organisées comme suit : <point-de-montage> <type-de-mappe> <point-de-montage> indique l'endroit où le périphérique ou le système de fichiers exporté doit être monté sur votre système de fichiers local. <type-de-mappe> fait référence à la façon dont le point de montage sera monté. La méthode la plus utilisée pour monter automatiquement des systèmes de fichiers exportés NFS est d'utiliser un fichier comme type de mappe pour le point de montage spécifique. Le fichier mappe, généralement appelé auto.<point-de-montage>, où <pointde-montage> est le point de montage désigné dans auto.master, contient des lignes qui ressemblent à ceci : <répertoire> <options-de-montage> <hôte>:<système-de-fichiers-exporté> <répertoire> indique le répertoire du point de montage où le système de fichiers exporté doit être monté. De façon semblable à la commande mount, l'hôte exportant le système de fichiers, ainsi que le système de fichiers exporté sont requis dans la section <hôte>:<système-de-fichiersexporté>. Pour spécifier des options spéciales à utiliser lors du montage du système de fichiers exporté, placez-les dans la section <options-de-montage>, séparées par des virgules. © Copyright 2004 Stéphane Gill Page 9 NFS (Network File System) En plus de pouvoir utiliser les fichiers de configuration autofs pour toute une série de montages de nombreux types de périphérique et de système de fichiers, ils sont également très utiles pour créer des montages NFS. Paramétrage d’un client NFS Windows Avec l’adoption croissante du système d’exploitation Microsoft Windows dans les environnements traditionnellement UNIX, le besoin d’interopérabilité entre les deux plates-formes est devenu évident. Microsoft Windows Services for UNIX 2.0 ajoute à Windows des fonctions destinées à accroître l’interopérabilité avec les systèmes UNIX. Installation Services for UNIX 2.0 fait appel au « Microsoft Installer », comme le montre la figure ci-dessous. Ce nouveau programme d'installation permet de facilement effectuer une installation sur demande, de supprimer Services for UNIX 2.0 sous contrôle intégral par script et d'en assurer la maintenance. Vous pouvez accepter l'installation par défaut ou choisir une installation personnalisée vous permettant de décider entièrement des options à installer. © Copyright 2004 Stéphane Gill Page 10 NFS (Network File System) Client NFS La connexion à un export NFS peut se faire de plusieurs manières, en utilisant soit la syntaxe Windows standard (\\server\share), soit la syntaxe UNIX standard (server:/share). Depuis la ligne de commande, vous pouvez utiliser les commandes "net" standard sous Windows 2000 ou la commande mount plus typique de UNIX avec l'une ou l'autre syntaxe. Vous pouvez également simplement naviguer dans le Voisinage réseau avec Windows Explorer. Depuis la ligne de commande, les expressions suivantes sont équivalentes : net use * server1:/home net use * \\server1\home mount server1:/home * mount \\server1\home * Références Jeffrey Dean, « LPI Linux Certification in a Nutshell, A Desktop Quick Reference », O’Reilly, 2001. © Copyright 2004 Stéphane Gill Page 11
Documents pareils
Administration réseau Accès aux fichiers distants
portmap. Gestion des connexions des applications utilisant le
mécanisme de RPC.
nfsd. Authentification + Création, recherche, lecture et
écriture de fichiers
mountd. Montage des systèmes exportés (...