4.6. Configuration du serveur NFS
Cette section décrit la syntaxe et les options de deux façons de configurer les exportations sur un serveur NFS :
-
Modification manuelle du fichier de configuration
/etc/exports
-
Utilisation de l'utilitaire
exportfs
sur la ligne de commande
4.6.1. Le fichier de configuration /etc/exports
Le fichier /etc/exports
contrôle les systèmes de fichiers qui sont exportés vers des hôtes distants et spécifie des options. Il suit les règles syntaxiques suivantes :
- Les lignes vides sont ignorées.
-
Pour ajouter un commentaire, commencez une ligne par le signe dièse (
#
). -
Vous pouvez entourer les lignes longues d'une barre oblique inverse (
\
). - Chaque système de fichiers exporté doit se trouver sur sa propre ligne.
- Toute liste d'hôtes autorisés placée après un système de fichiers exporté doit être séparée par des caractères d'espacement.
- Les options pour chacun des hôtes doivent être placées entre parenthèses directement après l'identifiant de l'hôte, sans espace entre l'hôte et la première parenthèse.
Entrée de l'exportation
Chaque entrée d'un système de fichiers exporté a la structure suivante :
export host(options)
Il est également possible de spécifier plusieurs hôtes, ainsi que des options spécifiques pour chacun d'entre eux. Pour ce faire, il faut les énumérer sur la même ligne sous la forme d'une liste délimitée par des espaces, chaque nom d'hôte étant suivi de ses options respectives (entre parenthèses), comme dans l'exemple suivant :
export host1(options1) host2(options2) host3(options3)
Dans cette structure :
- export
- Le répertoire exporté
- host
- L'hôte ou le réseau vers lequel l'exportation est partagée
- options
- Les options à utiliser pour l'hôte
Exemple 4.1. Un simple fichier /etc/exports
Dans sa forme la plus simple, le fichier /etc/exports
spécifie uniquement le répertoire exporté et les hôtes autorisés à y accéder :
/exported/directory bob.example.com
Ici, bob.example.com
peut monter /exported/directory/
à partir du serveur NFS. Comme aucune option n'est spécifiée dans cet exemple, NFS utilise les options par défaut.
Le format du fichier /etc/exports
est très précis, notamment en ce qui concerne l'utilisation du caractère espace. N'oubliez pas de toujours séparer les systèmes de fichiers exportés des hôtes et les hôtes les uns des autres par un caractère espace. Cependant, il ne doit pas y avoir d'autres caractères d'espacement dans le fichier, sauf sur les lignes de commentaires.
Par exemple, les deux lignes suivantes n'ont pas la même signification :
/home bob.example.com(rw) /home bob.example.com (rw)
La première ligne autorise uniquement les utilisateurs de bob.example.com
à accéder en lecture et en écriture au répertoire /home
. La deuxième ligne permet aux utilisateurs de bob.example.com
de monter le répertoire en lecture seule (par défaut), tandis que le reste du monde peut le monter en lecture/écriture.
Options par défaut
Les options par défaut pour une entrée d'exportation sont les suivantes :
ro
- Le système de fichiers exporté est en lecture seule. Les hôtes distants ne peuvent pas modifier les données partagées sur le système de fichiers. Pour permettre aux hôtes d'apporter des modifications au système de fichiers (c'est-à-dire de lire et d'écrire), spécifiez l'option rw.
sync
-
Le serveur NFS ne répondra pas aux demandes avant que les modifications apportées par les demandes précédentes ne soient écrites sur le disque. Pour activer les écritures asynchrones, spécifiez l'option
async
. wdelay
-
Le serveur NFS retardera l'écriture sur le disque s'il soupçonne qu'une autre demande d'écriture est imminente. Cela peut améliorer les performances car cela réduit le nombre de fois où le disque doit être accédé par des commandes d'écriture distinctes, réduisant ainsi la surcharge d'écriture. Pour désactiver cette fonction, spécifiez l'option
no_wdelay
, qui n'est disponible que si l'option sync par défaut est également spécifiée. root_squash
Cela empêche les utilisateurs root connectés à distance (et non localement) d'avoir les privilèges root ; au lieu de cela, le serveur NFS leur attribue l'ID utilisateur
nobody
. Cela a pour effet de réduire les pouvoirs de l'utilisateur racine distant à ceux de l'utilisateur local le plus bas, empêchant ainsi toute écriture non autorisée sur le serveur distant. Pour désactiver l'écrasement de la racine, spécifiez l'optionno_root_squash
.Pour écraser tous les utilisateurs distants (y compris root), utilisez l'option
all_squash
. Pour spécifier les ID d'utilisateur et de groupe que le serveur NFS doit attribuer aux utilisateurs distants d'un hôte particulier, utilisez les optionsanonuid
etanongid
, respectivement, comme dans l'exemple ci-dessous :export host(anonuid=uidanongid=gid)
Ici, uid et gid sont respectivement le numéro d'identification de l'utilisateur et le numéro d'identification du groupe. Les options
anonuid
etanongid
vous permettent de créer un compte d'utilisateur et de groupe spécial pour les utilisateurs NFS distants à partager.
Par défaut, les listes de contrôle d'accès (ACL) sont prises en charge par NFS sous Red Hat Enterprise Linux. Pour désactiver cette fonctionnalité, spécifiez l'option no_acl
lors de l'exportation du système de fichiers.
Options par défaut et options prioritaires
Chaque valeur par défaut de chaque système de fichiers exporté doit être explicitement remplacée. Par exemple, si l'option rw
n'est pas spécifiée, le système de fichiers exporté est partagé en lecture seule. Voici un exemple de ligne provenant de /etc/exports
qui remplace deux options par défaut :
/another/exported/directory 192.168.0.3(rw,async)
Dans cet exemple, 192.168.0.3
peut monter /another/exported/directory/
en lecture et en écriture, et toutes les écritures sur disque sont asynchrones.
4.6.2. L'utilitaire exportfs
L'utilitaire exportfs
permet à l'utilisateur root d'exporter ou de non-exporter sélectivement des répertoires sans redémarrer le service NFS. Lorsqu'il dispose des options appropriées, l'utilitaire exportfs
écrit les systèmes de fichiers exportés sur /var/lib/nfs/xtab
. Étant donné que le service nfs-mountd
se réfère au fichier xtab
lorsqu'il décide des privilèges d'accès à un système de fichiers, les modifications apportées à la liste des systèmes de fichiers exportés prennent effet immédiatement.
Options courantes d'exportfs
Voici une liste des options couramment utilisées pour exportfs
:
-r
-
Provoque l'exportation de tous les répertoires répertoriés dans
/etc/exports
en construisant une nouvelle liste d'exportation dans/var/lib/nfs/etab
. Cette option permet d'actualiser la liste d'exportation en fonction des modifications apportées à/etc/exports
. -a
-
Provoque l'exportation ou la non-exportation de tous les répertoires, en fonction des autres options transmises à
exportfs
. Si aucune autre option n'est spécifiée,exportfs
exporte tous les systèmes de fichiers spécifiés dans/etc/exports
. -o file-systems
-
Spécifie les répertoires à exporter qui ne sont pas répertoriés dans
/etc/exports
. Remplacer file-systems par des systèmes de fichiers supplémentaires à exporter. Ces systèmes de fichiers doivent être formatés de la même manière qu'ils sont spécifiés dans/etc/exports
. Cette option est souvent utilisée pour tester un système de fichiers exporté avant de l'ajouter définitivement à la liste des systèmes de fichiers exportés. -i
-
Ignore
/etc/exports
; seules les options données sur la ligne de commande sont utilisées pour définir les systèmes de fichiers exportés. -u
-
Désexporte tous les répertoires partagés. La commande
exportfs -ua
suspend le partage de fichiers NFS tout en maintenant tous les services NFS. Pour réactiver le partage NFS, utilisez la commandeexportfs -r
. -v
-
Fonctionnement verbeux, où les systèmes de fichiers exportés ou non exportés sont affichés plus en détail lorsque la commande
exportfs
est exécutée.
Si aucune option n'est transmise à l'utilitaire exportfs
, celui-ci affiche une liste des systèmes de fichiers actuellement exportés.
Ressources supplémentaires