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

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 (...

Plus en détail