\documentclass{article}
\title{NFS}
\author{Julien Danjou\\jdanjou@linuxenrezo.org}
\date{}
\begin{document}
\maketitle
        
	NFS \textbf{(Network File System)}, un syst\`eme de fichiers par r\'eseau, est un service tr\`es r\'epandu utilisant RPC dans le monde Unix. Il donne acc\`es \`a des fichiers partag\'es sur des machines distantes. L'utilisateur les voient alors comme s'ils \'etaient stock\'es sur son PC.\\
        
	L'avantage de NFS, est de pouvoir (par exemple) stocker tous les r\'epertoires utilisateurs sur un serveur, et de le monter \`a chaque d\'emarrage sur les stations de travail: ainsi, les utilisateurs poss\'edant un compte sur des machines distinctes pourront travailler sur les m\^emes fichiers.\\ 

        Pour utiliser NFS, votre noyau doit supporter le syst\`eme de fichier NFS ( compil\'e dans le noyau ou en tant que module).\\

        Pour monter un r\'epertoire, il suffit de taper:\\
        
	mount machine:/repertoire\_distant /repertoire\_local\\
        
	La commande mount tentera alors de se connecter au daemon mountd de machine. Le serveur teste si la machine locale est autoris\'ee \`a acc\'eder au r\'epertoire distant, et si c'est le cas, le r\'epertoire sera mont\'e en local sous le nom /repertoire\_loca.\\
        
        Il est important que les num\'eros et groupe des utilisateurs des 2 machines soit les m\^emes. On peut pour cela utiliser NIS.\\ 
        
	Si vous voulez devenir un server NFS, vous aurez besoin du d\'emon nfsd et mountd. Ce sont des services RPC: ils devront \^etre lanc\'es apr\`es le d\'emon portmap dont vous aurez besoin.\\ 
        
        Toute la configuration de NFS se trouve dans le fichier /etc/exports, qui r\'epertorie les r\'epertoires partag\'es.\\ 

\newpage
       Voil\`a un exemple de fichier exports:\\
        
	\# Fichier exports de quark.nunux.fr\\
        /home ;;;;; mulder(rw) scully(rw)\\
        /usr/TeX ;;;;; (ro)\\
        
	Chacune des lignes d\'efinit un r\'epertoire et les h\^otes autoris\'es \`a y acc\'eder. Les noms des machines peuvent contenir les caract\`eres g\'en\'eriques * et ? mais ce n'est pas conseill\'e pour des raisons de sécurit\'e. Si aucun nom n'est sp\'ecifi\'e, alors n'importe qui pourra le monter sur son PC par NFS.\\ 

        Le nom de chaque machine est suivi d'une liste facultative de drapeaux (flags), s\'epar\'es par des virgules et mit entre parenth\`eses. Il peuvent prendre les valeurs suivantes:\\

        \textbf{secure:} R\'eclame que les requ\^etes proviennent d'un port internet de num\'ero inf\'erieur \`a 1024. Elle est en service par d\'efaut; ins\'erer insecure pour la d\'esactiver\\

        \textbf{ro:} N'autorise que des requ\`etes en lecture-seule sur ce volume NFS.\\

        \textbf{link\_relative:} Convertit les liens symboliques absolus (dont le contenu commencent par un slash) en lien reatifs ajoutant le nombre n\'ecessaire de ../ pour aller de l'emplacement du lien \`a la racine du serveur. Cette option peut r\'eserv\'e parfois quelques surprises si la hi\'erarchie n'est pas mont\'ee \`a la racine.\\

        \textbf{root\_squash:} Transforme les requ\`etes UID/GID 0 en UID/GID anonyme. Ceci ne s'applique pas aux autres UID/GID sensible comme bin.\\

        \textbf{no\_root\_squash:} Contraire de root\_squash. Cette option est utile pour les stations sans disques.\\

        \textbf{squash\_uids et squash\_gid:} Cette option permet de pr\'eciser une liste d'UID et de GID qui seront convertis en utilisateurs anonymes. Elle se pr\'esente ainsi: squash\_uids=0,15,25-50\\

        \textbf{all\_squash:} Convertit tous les UID/GID en utilisateurs anonymes.\\

        \textbf{map\_daemon:} Cette option active la conversion dynamique des UID/GID. Chaque UID d'une requ\^ete NFS sera transform\'e en UID \'equivalent sur le serveur, et l'UID des r\'eponses NFS subira la transformation inverse. Ceci n\'ecessite que le d\'emon ugidd soit en fonctionnement sur le client. La configuration par d\'efaut est map\_identity, qui laisse les UIDs intacts. Les options de `squash' s'appliquent que la conversion dynamique soit utilisée ou non.\\


\end{document}