Avant de continuer à lire ce HOWTO, vous aurez besoin de pouvoir faire des telnet dans les deux sens entre les machines que vous utiliserez comme serveur et client. Si cela ne fonctionne pas, voyez le HOWTO réseau et configurez correctement le réseau.
Avant de faire quoi que ce soit d'autre, il nous faut un serveur NFS installé. Si vous faites partie d'un département réseau d'une université ou autre, il y a probablement un grand nombre de serveurs NFS qui tournent déjà. Si votre but est d'utiliser un serveur déjà installé alors vous pouvez sauter à la section 4.
Si vous devez installer un serveur sur une machine non Linux il vous faudra lire les pages de manuel du système pour trouver comment configurer le serveur NFS et l'exportation des systèmes de fichiers par NFS. Les mot-clés sont : nfsd, outil d'administration système, scripts rc, scripts de démarrage, séquence de démarrage, /etc/exports, exportfs (en anglais system administration tool, rc scripts, boot scripts, boot sequence). Ceci fait, vous pourrez passer à la section suivante de ce HOWTO. Ou continuer à lire cette section vu que certaines des choses que je vais dire sont pertinentes quel que soit le type de machine que vous utilisez comme serveur.
Ceux de vous qui continueront la lecture devront configurer un grand nombre de programmes.
Le portmapper de Linux est appelé soit portmap
soit
rpc.portmap
. La page de manuel sur mon système dit que c'est un
convertisseur de port DARPA vers numéro de programme RPC. C'est là que se
trouve la première faille de sécurité. La gestion de ce problème est décrite
à la section 5, que, encore une fois, je vous invite très fortement à lire.
Lancez le portmapper. Il devrait être dans le répertoire /usr/sbin
(sur quelques machines il est appelé rpcbind). Vous pouvez le lancer à la
main pour cette fois mais il devra être lancé à chaque démarrage de la
machine, il faudra donc créer ou éditer les scripts rc. Les scripts rc sont
décrits dans la page de manuel init, ils sont généralement dans
/etc/rc.d
, /etc/init.d
ou /etc/rc.d/init.d
. S'il
y a un script qui a un nom du genre inet
, c'est probablement le script
à éditer. Mais ce qu'il faut écrire ou faire sort du cadre de ce
HOWTO. Lancez portmap, et vérifiez qu'il tourne avec ps -aux
. Il y est
? Benissimo.
Les prochains programmes à lancer sont mountd et nfsd. Mais d'abord il faut
éditer un autre fichier, /etc/exports
. Disons que je veux que le
système de fichiers /mn/eris/local
qui est sur la machine eris
soit disponible sur la machine apollon
. Je l'indique dans
/etc/exports
sur eris :
/mn/eris/local apollon(rw)
La ligne ci-dessus donne à apollon
un accès en lecture/écriture sur
/mn/eris/local
. Au lieu de rw
on pourrait mettre ro
pour
read only (lecture seule, c'est la valeur par défaut). D'autres options
existent, et je parlerai de quelques unes liées à la sécurité plus
loin. Elles sont toutes décrites dans la page de manuel exports
qu'il
faut lire au moins une fois dans sa vie. Il y a de meilleures façons de
faire que de lister tous les hosts dans le fichier exports. Peuvent être
autorisés à monter un système de fichiers NFS, des groupes réseaux (net
groups) si vous utilisez NIS (ou NYS, auparavant connu sous le nom YP), des
noms de domaines avec jokers et des sous réseaux IP. Mais il faudra vérifier
qui pourrait obtenir un accès non autorisé au serveur avec ce type
d'autorisations.
Note : ce fichier exports n'utilise pas la même syntaxe que d'autres Unix. La plupart des autres Unix utilisent un format avec des options séparées par des virgules (,) et des listes d'hôtes séparées par des deux-points (:), à l'exception de Solaris 2 qui est complètement différent.
Maintenant nous sommes prêts à lancer mountd (ou peut-être s'appelle-t-il
rpc.mountd
), puis nfsd (qui s'appelle peut-être rpc.nfsd
). Ils
liront tous deux le fichier exports.
Si vous modifiez /etc/exports
, vous devrez vous assurer que nfsd et
mountd savent que le fichier a changé. Sur la plupart des systèmes Unix on
peut le faire avec la commande exportfs -av
(sauf pour Solaris 2 qui
est complètement différent). Beaucoup de distributions Linux n'ont pas le
programme exportfs. Si c'est le cas sur votre machine, vous pouvez installer
ce script :
#!/bin/sh killall -HUP /usr/sbin/rpc.mountd killall -HUP /usr/sbin/rpc.nfsd echo re-exported file systems
Sauvez-le dans /usr/sbin/exportfs
par exemple, et n'oubliez pas de
lui appliquer chmod a+rx
. Désormais, chaque fois que vous changez
votre fichier exports, lancez ensuite exportfs en root.
Maintenant, vérifiez que mountd et nfsd fonctionnent correctement. D'abord
avec rpcinfo -p
. Il devrait donner quelque chose du genre :
program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100005 1 udp 745 mountd 100005 1 tcp 747 mountd 100003 2 udp 2049 nfs 100003 2 tcp 2049 nfs
On voit que le portmapper a annoncé ses services, de même que mountd et nfsd.
Si vous obtenez : rpcinfo: can't contact portmapper: RPC: Remote system
error - Connection refused
ou quelque chose du style c'est que le
portmapper ne tourne pas. Réglez ça. Si vous obtenez No remote programs
registered
alors soit le portmapper ne veut pas vous parler, soit quelque
chose ne marche pas. Tuez nfsd, mountd et le portmapper et essayez de
recommencer.
Après avoir vérifié que le portmapper reporte les services vous
pouvez vérifier aussi avec ps
. Le portmapper continuera à
reporter les services même si les programmes qui les offrent ont
crashé. Il vaut donc mieux vérifier par ps si quelque chose ne marche pas.
Bien sur, vous devrez modifier vos fichiers systèmes rc pour lancer mountd et nfsd au démarrage de la même façon que le portmapper. Il y a de très fortes chances que les scripts existent déjà sur votre machine, vous aurez juste à décommenter les bonnes lignes ou les activer pour les bons runlevels (pardon niveaux d'exécution) d'init.
Quelques pages de manuel avec lesquelles vous devriez être familier : portmap, mountd, nfsd et exports.
Bon, si vous avez tout fait exactement comme j'ai dit vous êtes prêts à enchaîner sur le client NFS.
Chapitre suivant, Chapitre Précédent
Table des matières de ce chapitre, Table des matières générale
Début du document, Début de ce chapitre