Vous êtes sur la page 1sur 8

nfs - Documentation Ubuntu Francophone

http://doc.ubuntu-fr.org/nfs

nfs
Introduction Partage simple Ct serveur Ct client Serveur de fichier Ct serveur Ct client dapper, edgy, Feisty, Gutsy, reseau, brouillon revoir (versions obosltes + mise en forme)

NFS : Network File System


Introduction
NFS est l'acronyme de Network File System, c'est--dire un systme de fichiers utilisable sur un rseau. NFS est utilis pour partager des donnes entre systmes UNIX. Si vous dsirez partager des donnes avec d'autres systmes, veuillez vous rfrer la page traitant des partages de dossiers, de connexion et d'imprimante En tant qu'utilisateur, plusieurs raisons peuvent vous pousser partager des fichiers. tant donn que les besoins peuvent tre diffrents, la suite de cette documentation s'articule autour de deux aspects : Si vous souhaitez simplement partager des donnes sur votre rseau local en configurant le mode graphique de Ubuntu, veuillez vous reportez la section Partage simple. Si vous souhaitez monter un serveur de fichier destin fournir des donnes pour un rseau d'entreprise, veuillez vous reportez la section Serveur de fichier.

Partage simple
Le partage "simple" tel qu'il est prsent ci-dessous est un partage utilisant l'interface graphique fournie avec Ubuntu. Pour partager un dossier, suivez les tapes suivantes : Allez dans le menu Systme Administration Dossiers partags ou dans Rglage du systme Partage. Introduisez votre mot de passe. Si vous ouvrez le gestionnaire de partage pour la premire fois (ou si vous n'avez pas install le serveur NFS manuellement), Ubuntu vous indique qu'il est ncessaire d'installer les paquets de serveur pour continuer. Si les paquets ne sont pas installs, faites-le en cochant les cases appropries et cliquez sur Appliquer. (Pour le faire manuellement: installez les paquets nfs-common nfs-kernel-server )

Dans le gestionnaire de partage se trouvent 3 boutons droite pour grer les partages : Ajouter qui permet de crer un nouveau partage. Proprits qui permet de modifier les paramtres du partage slectionn. Supprimer qui permet de supprimer le partage slectionn.

1 sur 8

22/04/2008 08:00

nfs - Documentation Ubuntu Francophone

http://doc.ubuntu-fr.org/nfs

Pour ajouter un partage, cliquez sur Ajouter ; la fentre suivante s'affiche :

Dans cette fentre, vous choisissez le chemin du dossier partager. Dans mon cas : /home/ols/Shared_Linux. Comme dans toute syntaxe *nix, certains caractres dans les noms de fichiers sont interdits, ce sont par exemple le /, les parenthses (), l'espace ou *. Vous ne devez donc pas utiliser d'espaces dans le nom de vos dossiers (/home/moi/Mon Dossier) mais plutt /home/moi/MonDossier Ensuite, vous choisissez le mode de partage. Ici, nous utiliserons NFS. En bas de l'cran, vous indiquez quels sont les htes autoriss accder votre partage. Pour ajouter un hte, cliquez sur Ajouter hte. Dans la nouvelle fentre qui vient de s'ouvrir, vous pouvez choisir d'autoriser tous les htes de votre rseau, ou spcifier une adresse IP. Dans mon cas, je spcifie l'adresse IP (192.168.0.100) de mon ordinateur portable car je ne souhaite pas que les autres htes aient un accs en en lecture-criture. Pour autoriser tout le rseau local, slectionnez "Saisissez le nom du rseau", dans rseau mettez 192.168.0.0 et le masque de sous rseau 255.255.255.0 Cliquez sur Valider pour enregistrer cet hte. Cliquez sur Valider pour sauvegarder les paramtres de partage. Cliquez sur Valider pour activer les dossiers partags. Les dossiers slectionns sont maintenant partags avec les permissions que vous leur avez octroyes. Si le serveur rpond : permission denied , ditez le fichier /etc/exports sur le pc serveur, pour changez :
/home/ols/Shared_Linux 192.168.0.100(rw)

en :
/home/ols/Shared_Linux 192.168.0.100/255.255.255.0(rw)

Redmarrez enfin le daemon NFS :


sudo /etc/init.d/nfs-kernel-server restart

Redmarrer le PC (et vrifier que le firewall comme FireStarter est correctement configur) peut tre ncessaire si vous faites encore face ce message. A Savoir! qu'il n'est actuellement pas possible de partager des ressources sur une partition NTFS via NFS... Il faut commencer par installer le paquet nfs-common Pour se connecter un partage NFS, vous devez dfinir un point de montage. Pour ce faire, suivez les instructions suivantes : Ouvrez un terminal Crez un dossier o le dossier partag va tre mont (dans mon cas) :
sudo mkdir /media/nfs

N'hsitez pas donner un nom plus parlant, surtout si vous avez plusieurs partages NFS.

2 sur 8

22/04/2008 08:00

nfs - Documentation Ubuntu Francophone

http://doc.ubuntu-fr.org/nfs

Mais n'oubliez surtout pas de changer aussi la suite en consquence ! Ouvrez le fichier /etc/fstab Ajoutez une ligne comme celle-ci la fin du fichier (dans mon cas) :
192.168.0.101:/home/ols/Shared_Linux /media/nfs nfs user,noauto 0 0

Explications: Les deux premiers champs sont adapter en fonction de vos rglages. La premire partie (192.168.0.101:/..../Shared_Linux) indique l'adresse IP du serveur suivie du dossier partag. La seconde partie (/media/nfs) indique le point de montage que vous venez de crer plus haut. la suite: est commune toutes les configurations. Vous pouvez tout de mme enlever noauto dans la partie user pour que le dossier partag soit mont automatiquement au dmarrage. Sauvegardez le fichier. Allez maintenant dans le poste de travail (si vous n'avez pas enlev ,noauto), dans le menu Raccourcis Poste de travail. Vous y trouverez une icne nfs (ou autre suivant le point de montage que vous avez dfini). Double-cliquez sur cet icne pour accder au rpertoire partag sur l'autre machine. Si le rpertoire partag n'apparat pas, lancer la commande suivante dans un terminal:
sudo mount -a

Serveur de fichier
Le partage de dossier sur un serveur de fichier avec NFS, tel que dcrit ici, se fait en utilisant la ligne de commande et en se proccupant des problmes de droit d'accs. Installation Avant toutes choses, il est ncessaire d'installer le paquet nfs-kernel-server Configuration Ensuite, nous allons dfinir les dossiers partager. Toutes les informations concernant le partage de dossier pour NFS se trouvent dans le fichier /etc/exports. ditez le fichier /etc/exports Dans ce fichier, chaque ligne est dfinie comme ceci :
<dossier partag> <hte>(<options>) <hte2>(<options>)...

Les informations se trouvant sur une ligne sont les suivantes : <dossier partag> : chemin menant au dossier partag. <hte> : indique quel est l'hte qui peut accder ce partage, l'hte peut tre dfinit de plusieurs manires : une IP : on indique simplement l'adresse IP de la machine pouvant accder ce partage. un nom d'hte : on indique le nom complet de l'hte (pour peu qu'il soit connu du systme au travers d'un DNS ou du fichier hosts).

3 sur 8

22/04/2008 08:00

nfs - Documentation Ubuntu Francophone

http://doc.ubuntu-fr.org/nfs

un nom de groupe rseau NIS (NIS netgroup) qui s'indique sous la forme @<netgroup>. un domaine avec un joker qui indique les machines d'un domaine ou sous-domaine; par exemple : *.ubuntu-fr.org. un intervalle d'IP avec le masque de sous-rseau; par exemple : 192.168.0.0/24 ou 192.168.0.* <options> : indique les options de partage; nous n'allons pas parcourir toutes les options ensemble mais uniquement les plus importantes. rw : permet la lecture et l'criture sur un partage pour l'hte dfini (par dfaut, les partages sont en mode ro; c'est--dire en lecture seule). async : permet au serveur NFS de violer le protocole NFS et de rpondre au requte avant que les changements effectus par la requte aient t appliqus sur l'unit de stockage. Cette option amliore les performances mais a un cot au niveau de l'intgrit des donnes (donnes corrompues ou perdues) en cas de redmarrage non-propre (par exemple en cas de crash systme). sync : est le contraire de async. Le serveur NFS respecte le protocole NFS. root_squash : force le mapping de l'utilisateur root vers l'utilisateur anonyme (option par dfaut). no_root_squash : n'effectue pas de mapping pour l'utilisateur root. all_squash : force le mapping de tous les utilisateurs vers l'utilisateur anonyme. anonuid : indique au serveur NFS l'UID de l'utilisateur anonyme (considr comme tel dans les prcdentes options de mapping). anongid : indique au serveur NFS le GID de l'utilisateur anonyme (considr comme tel dans les prcdentes options de mapping). Voyons quelques exemples... Nous souhaitons exporter un rpertoire /srv/archive pour le rseau local (192.168.0.0/24) en lecture seule, en optimisant les performances (sur un rpertoire en lecture seule, on peut se le permettre). Nous indiquons la ligne suivante dans le fichier /etc/exports :
/srv/archive 192.168.0.0/24(ro,async)

Nous

souhaitons

exporter

un

rpertoire

/srv/temp_add

pour

un

hte

particulier

(lab05.ubuntu-fr.org) en lecture/criture et tous les utilisateurs sont considrs comme l'utilisateur nfsshare (UID : 5000, GID : 5000). L'hte lab02.ubuntu-fr.org peut galement y accder mais seulement en lecture seule. Nous indiquons la ligne suivante dans le fichier /etc/exports :
/srv/temp_add lab05.ubuntu-fr.org(rw,all_squash,anonuid=5000,anongid=5000,sync) lab02.ubuntu-fr.org(ro,sync)

Vous obtiendrez tous les dtails concernant les options NFS dans les manpages (man exports). Remarquez que, si vous n'utilisez pas all_squash, l'UID de l'utilisateur de la machine cliente sera utilis sur la machine serveur. Ce qui signifie que, soit vous avez des fichiers /etc/passwd et /etc/group identiques (ce qui est encore possible dans un petit parc informatique), soit vous utilisez un serveur d'identit comme NIS afin d'avoir les mmes UID/GID partout. Mise en route Ouvrez un terminal, Il ne vous reste plus qu' dmarrer votre nouveau serveur de fichier avec la commande :

4 sur 8

22/04/2008 08:00

nfs - Documentation Ubuntu Francophone

http://doc.ubuntu-fr.org/nfs

sudo /etc/init.d/nfs-kernel-server start

Lorsque vous modifiez le fichier de configuration, n'oubliez pas d'entrer la commande suivante pour le recharger :
sudo /etc/init.d/nfs-kernel-server reload

Pour redmarrer le serveur NFS compltement, vous devez utiliser cette commande:
sudo /etc/init.d/nfs-kernel-server restart

Considrations scuritaires NFS n'est pas rput pour tre totalement scuris. Il est conseill d'viter de partager des informations avec NFS au travers de l'Internet. Pour scuriser les accs, vous avez le choix entre plusieurs possibilits : Accs uniquement sur le rseau local Une premire mthode consiste modifier vos fichier /etc/hosts.deny et /etc/hosts.allow. Cette mthode simple est explique dans les manpages ( man hosts_access). Une seconde mthode (ma favorite) consiste configurer un firewall avec iptables pour viter les accs non-autoriss. Je prfre cette solution car elle permet de traiter tous les services et accs (y compris ping, suivi de connexions, etc.). Les ports utiliss par NFS sont le 111 et le 2049 (en udp et tcp). Accs externes Le mieux est d'utiliser un tunnel VPN, crypt et scuris, qui fera de votre machine distante une machine de votre rseau local. Il faut commencer par installer le paquet nfs-common
sudo apt-get install nfs-common

Pour les connexions clientes sur des machines de bureau, vous pouvez utiliser la mthode dcrite dans la section prcdente. Si vous devez effectuer des liens NFS entre diffrents serveurs, voici quelques prcisions concernant les montages NFS. Pour monter un partage NFS, vous avez besoin d'un rpertoire vide qui servira de point de montage. En gnral (et de prfrence), les points de montage se trouvent dans /media, mais ces points de montage peuvent se trouver n'importe o dans votre arborescence root (/). Pour monter un systme de fichier NFS manuellement, vous utiliserez la commande suivante :
sudo mount -t nfs <ip_serveur>:<rep_serveur> <point_montage_local>

Ce qui donne par exemple :


sudo mount -t nfs 192.168.0.40:/home/brol /media/nfs

5 sur 8

22/04/2008 08:00

nfs - Documentation Ubuntu Francophone

http://doc.ubuntu-fr.org/nfs

Certaines options peuvent tre passes la commande mount lors du montage. Les options les plus intressantes sont les suivantes : ro : monte le systme de fichier en lecture seule. rw : monte le systme de fichier en lecture/criture. hard : si le serveur n'est pas accessible, le noyau place les processus en attente de la ressource en attente. soft : si le serveur est inaccessible, on attend le timeout avant de gnrer une erreur de lecture/criture aux processus impacts. timeo=XXX : indique le timeout (en mode soft) en secondes (maximum = 60sec). Ces options se passent via l'argument -o de la commande mount; par exemple :
sudo mount -t nfs -o ro,soft,timeo=10 192.168.0.40:/home/brol /media/nfs

Pour dmonter le systme de fichier, vous pouvez utilisez la commande suivante :


sudo umount <point_montage_local>

Pour monter le serveur de fichier au dmarrage de la machine, vous pouvez ajouter une ligne ressemblant celle-ci dans le fichier /etc/fstab :
<ip_serveur>:<rep_serveur> <point_montage_local> nfs <options> 0 0

Par exemple :
192.168.0.40:/home/brol /media/nfs nfs ro 0 0

Autofs
Objectifs

Le montage manuel ou par fstab a plusieurs inconvnients. Le principal, c'est qu'il n'est pas toujours possible de rendre le montage automatique. Pourtant, si vous ne spcifiez pas "noauto" dans les options de montage dans /etc/fstab, il est sens tre automatique. Mais si lors du montage vous n'tes pas encore connect (en wifi par exemple), et bien le montage ne se fait pas, et il faut effectuer le montage manuellement. Et dans tous les cas, le dmontage aussi. Un autre inconvnient, moins important, est que mme si vous n'utilisez pas les dossiers monts, ils restent monts et consomment des ressources. autofs permet de rsoudre ces 2 problmes.
Installation

Pour l'installer:
sudo apt-get install autofs

apt://autofs

6 sur 8

22/04/2008 08:00

nfs - Documentation Ubuntu Francophone

http://doc.ubuntu-fr.org/nfs

Configuration

Tout d'abord, supprimez (ou commentez) dans /etc/fstab les montages que vous voulez grer par autofs (si vous en aviez crit auparavant). Ensuite, ditez /etc/auto.master, pour y ajouter la ligne :
/net /etc/auto.nfs --ghost,--timeout=30

L'option ghost permet de toujours afficher les dossiers, mmes lorsqu'ils ne sont pas monts. Il ne reste plus qu' double-cliquer dessus dans le navigateur pour les monter automatiquement. Crez alors un fichier /etc/auto.nfs :
mondossier -soft,rw,intr 192.168.0.1:/media/share

Le montage se fera alors dans /net/mondossier, et pointera vers la machine 192.168.0.1 sur le rpertoire /media/share. Vous pouvez dans ce mme fichier crire plusieurs lignes pour chacun de vos points de montages. Il ne reste plus qu' lancer le serveur :
sudo /etc/init.d/autofs start

Erreurs Le message classique en cas d'erreur au moment du mount du cot client est
mount RPC : le programme n'est pas enregistr

Cela ne signifie pas qu'il y a une erreur du cot client. Cela peut-tre d (cot serveur) une mauvaise dfinition du client autoris se connecter comme dfini dans le fichier /etc/exports. Vrifier que l'hte-client est correctement identifi. En cas de doute remplacer le nom d'un client par son Ip. Cela peut-tre (toujours du cot serveur) d une restriction sur les htes-clients dans /etc/hosts.deny (qui indique quel programme doit refuser quel hote) qui n'est pas contrebalance par une permission dans /etc/hosts.allow (qui indique quel client nanmoins le droit d'outrepasser les interdictions du hosts.deny) Pour plus de lisibilit utiliser de manire prfrentielle les Ip de vos clients. Soit une par une (petit nombre) ou l'aide du couple Adresse/Masque (grand nombre) Un exemple de configuration des fichiers hosts.allow et hosts.deny est donne ici :
SUR LE SERVEUR SEULEMENT il faut ajouter les lignes suivantes (minimum vital): Fichier hosts.deny #Interdire tout le monde sur les services portmap, nfsd et mountd portmap:ALL nfsd:ALL mountd:ALL Fichier hosts.allow #Accepter nanmoins les <machine-liste> sur les services portmap, nfsd et moundt #Exemple de <machine> 192.168.0.50 , une seule machine. #Autre exemple 192.168.0.0/255.255.255.0 , toutes les machines de 192.168.0.1 192.168.0.254 portmap:<machine_liste> nfsd:<machine_liste> mountd:<machine_liste>

Ensuite il ne reste plus qu' recharger les configs pour le dmon nfs :
sudo /etc/init.d/nfs-kernel-server reload

7 sur 8

22/04/2008 08:00

nfs - Documentation Ubuntu Francophone

http://doc.ubuntu-fr.org/nfs

Autre erreur : Accs refus.

Vrifiez que tous les services ncessaires sont dmarrs (cot serveur) grce la commande
rpcinfo -p

Vous devez obtenir une liste qui comprend au moins un exemplaire de chacun de ces services :
tcp 111 portmapper udp 942 status udp 752 mountd udp 2049 nfs udp 32799 nlockmgr

Si ce n'est pas le cas, relancer le script de dmarrage (start) de nfs comme expliqu plus haut. Pour plus d'informations concernant les options de montage, vous pouvez consulter les manpages de NFS (man nfs).

Contributeurs : ostaquet, Fabien26. nfs.txt Dernire modification: Le 12/04/2008, 22:22 par Topazz Le contenu de ce wiki est sous double licence : CC BY-SA et GNU FDL

8 sur 8

22/04/2008 08:00

Vous aimerez peut-être aussi