9.7. Configuration du serveur NFS
Il existe deux manière de configurer un serveur NFS :
- La configuration manuelle du fichier de configuration NFS
/etc/exports
, et - à l'aide de la ligne de commande, en utilisant la commande
exportfs
9.7.1. Fichier de configuration /etc/exports
Le fichier
/etc/exports
contrôle quels systèmes de fichiers sont exportés vers des hôtes distants et spécifie les options. Les règles de syntaxes suivantes sont observées :
- Les lignes vides sont ignorées.
- Pour ajouter un commentaire, commencez la ligne par le caractère dièse (
#
). - Pour les longues lignes, il est possible d'effectuer des retours à la ligne avec une barre oblique inversée (
\
). - Chaque système de fichiers exporté devrait se trouver sur une ligne individuelle.
- Toute liste d'hôtes non autorisés placée après un système de fichiers exporté doit être séparée par des caractères d'espace.
- Les options de chaque hôte doivent être placées directement après l'identifiant de l'hôte, sans espace séparant l'hôte et la première parenthèse.
Chaque entrée de système de fichiers exporté possède la structure suivante :
export host(options)
La structure mentionnée ci-dessus utilise les variables suivantes :
- export
- Répertoire en cours d'exportation
- host
- Hôte ou réseau sur lequel l'exportation est partagée
- options
- Options à utiliser pour l'hôte
Il est également possible de spécifier plusieurs hôtes avec des options spécifiques pour chacun d'entre eux. Pour ceci, veuillez les répertorier sur la même ligne en tant que liste séparée par des espaces, en veillant à ce que chaque nom d'hôte soit bien suivi par ses options respectives (entre parenthèses), comme suit :
export host1(options1) host2(options2) host3(options3)
Pour obtenir des informations sur les différentes méthodes de spécification de noms d'hôtes, veuillez consulter la Section 9.7.4, « Formats des noms d'hôtes ».
Sous 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, comme dans l'exemple suivant :
Exemple 9.6. Fichier /etc/exports
/exported/directory bob.example.com
Ici,
bob.example.com
peut monter /exported/directory/
à partir du serveur NFS. Comme aucune autre fonction n'est spécifiée dans cet exemple, NFS utilisera les paramètres par défaut.
Les paramètres par défaut sont les suivants :
- ro
- Le système de fichiers exporté est accessible en lecture seule. Les hôtes distants ne peuvent pas modifier les données partagées sur le système de fichiers. Pour autoriser des hôtes à effectuer des modifications sur le système de fichiers (par exemple, lecture/écriture), veuillez spécifier l'option
rw
. - sync
- Le serveur NFS ne répondra pas aux requêtes effectuées avant que les changements demandés par les requêtes précédentes soient écrits sur disque. Sinon, pour activer les écritures asynchrones, veuillez spécifier l'option
async
. - wdelay
- Le serveur NFS retardera l'écriture sur disque s'il suspecte qu'une autre requête d'écriture est imminente. Ceci peut améliorer les performances car il y a une réduction du nombre d'accès au disque par le biais de commandes d'écriture séparées, réduisant ainsi également l'alourdissement des écritures. Pour désactiver ce comportement, veuillez spécifier
no_wdelay
.no_wdelay
est uniquement disponible si l'option par défautsync
est également spécifiée. - root_squash
- Ceci empêche les utilisateurs root connectés à distance (et non locaux) d'avoir des privilèges root. Au lieu de cela, le serveur NFS leurs assignera l'ID d'utilisateur
nfsnobody
. Ceci « écrasera » (ou réduira) les capacités de l'utilisateur root à celles d'un utilisateur local du plus bas niveau possible, empêchant ainsi toute écriture non autorisée sur le serveur distant. Pour désactiver l'écrasement root, veuillez spécifierno_root_squash
.
Pour écraser tous les utilisateurs distants (y compris les utilisateurs root), utilisez
all_squash
. Pour spécifier les ID des groupes et des utilisateurs que le serveur NFS devrait assigner à des utilisateurs distants à partir d'un hôte en particulier, veuillez utiliser les options anonuid
et anongid
respectives, comme suit :
export host(anonuid=uid,anongid=gid)
uid et gid sont les numéros d'ID d'utilisateur et les numéros d'ID de groupe respectifs. Les options
anonuid
et anongid
vous permettent de créer un compte utilisateur et groupe spécifique que les utilisateurs NFS distants peuvent partager.
Par défaut, les listes de contrôle d'accès ou ACL (access control lists) sont prises en charge par NFS dans Red Hat Enterprise Linux. Pour désactiver cette fonctionnalité , veuillez spécifier l'option
no_acl
lorsque vous exportez le système de fichiers.
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, alors le système de fichiers exporté est partagé en lecture seule. Ci-dessous figure un exemple de ligne 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/écriture et toutes les écritures sur disque seront asynchrones. Pour obtenir davantage d'informations sur les options d'export, veuillez consulter man exportfs
.
D'autres options sont disponibles lorsqu'aucune valeur par défaut n'est spécifiée. Celles-ci incluent la possibilité de désactiver la vérification de sous-arborescence, autorise l'accès à partir de ports non-sécurisés et autorise les verrouillages non-sécurisés (nécessaires pour certaines implémentations de clients NFS plus anciennes). Veuillez consulter
man exports
pour obtenir davantage de détails sur ces options moins souvent utilisées.
Important
Le format du fichier
/etc/exports
est très précis, particulièrement au regard de l'utilisation du caractère espace. Rappelez-vous de toujours séparer les systèmes de fichiers exportés des hôtes et les hôtes les uns des autres avec un caractère espace. Toutefois, il ne devrait pas y avoir d'autres caractères espace dans le fichier, sauf sur les lignes de commentaire.
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 aux utilisateurs de
bob.example.com
d'accéder en lecture/écriture au répertoire /home
. La seconde ligne autorise les utilisateurs de bob.example.com
de monter le répertoire en tant que lecture seule (par défaut), tandis que le reste du monde peut le monter en lecture/écriture.