Vous êtes sur la page 1sur 7

Le systme d'exploitation GNU-Linux/Le partage de...

http://fr.wikibooks.org/wiki/Le_systme_d'exploitat...

Un livre de Wikibooks. Le protocole NFS (Network File System) permet de partager des fichiers dans les rseaux Unix.

Installation du serveur NFS


Pour installer le serveur NFS sous Debian, il suffit de taper la commande suivante :
# apt-get install nfs-kernel-server

Configuration du serveur NFS


La configuration du serveur NFS est stocke dans le fichier /etc/exports. Ce fichier de configuration dispose d'une page de manuel :
# man exports

Voici quelques exemples extrait du manpage :


$ cat /etc/exports # fichier exemple /etc/exports / master(rw) trusty(rw,no_root_squash) /projects proj*.local.domain(rw) /usr *.local.domain(ro) @trusted(rw) /home/joe pc001(rw,all_squash,anonuid=150,anongid=100) /pub (ro,insecure,all_squash)

La premire ligne exporte lensemble du systme de chiers vers les machines master et trusty . En plus des droits dcriture, toute transformation dUID est dsactive pour lhte trusty . Les deuxime et troisime lignes montrent des exemples de noms de machines avec caractres jokers, et de groupes de machines ( @trusted ). La quatrime ligne montre comment mapper tous les utilisateurs vers UID et GID particulier. La dernire ligne partage un rpertoire /pub, toutes les machines dans le

1 of 7

06/12/2012 16:18

Le systme d'exploitation GNU-Linux/Le partage de...

http://fr.wikibooks.org/wiki/Le_systme_d'exploitat...

monde, en eectuant les requtes sous le compte anonyme. L option insecure permet laccs aux clients dont limplmentation NFS nutilise pas un port rserv. A chaque modification du fichier /etc/exports, il faut relancer le serveur NFS pour que les modifications soient prises en compte :
# /etc/init.d/nfs-kernel-server restart

On peut galement utiliser la commande exportfs :


# exportfs -ra

Options d'exportation
Voici les options d'exportation les plus courantes : secure : cette option impose lutilisation dun port rserv (infrieur 1024) comme origine de la requte. rw : exporte le rpertoire en lecture / criture ro : exporte le rpertoire en lecture seule async : le serveur NFS va pouvoir rpondre que le fichier a t crit sur le support de stockage, mme si cela n'a pas encore t fait. Amliore les performances du serveur. sync : le serveur NFS va crire physiquement les fichiers sur le support de stockage avant de rpondre. Rduit les performances du serveur.

Options lies aux correspondances de UID et de GID (UID et GID mapping)


Le principal problme avec NFS est la correspondance des UID et des GID. Effectivement, l'utilisateur alex peut avoir le UID 1000 sur le client et un UID diffrent sur le serveur. NFS travaille avec les UID et GID numrique, il va donc par dfaut enregistrer sur le serveur que le fichier appartient l'utilisateur 1000, et non l'utilisateur alex. Pour pallier ces problmes, NFS fournit des mcanismes pour transformer les

2 of 7

06/12/2012 16:18

Le systme d'exploitation GNU-Linux/Le partage de...

http://fr.wikibooks.org/wiki/Le_systme_d'exploitat...

UID et les GID. Le problme se pose galement avec le super-utilisateur root qui dispose du UID 0. Pour des raisons de scurit, NFS va transformer par dfaut les fichiers poss par le root vers le UID et le GID du compte anonyme (nobody.nogroup). root_squash : option par dfaut. transforme les requtes provenant de l'UID 0 / GID 0 vers le UID et GID du compte anonyme. no_root_squash : ne transforme pas les requtes provenant de l'UID 0 / GID 0. A utiliser avec prcaution. all_squash : transforme tous les UID/GID vers le UID/GID de lutilisateur anonyme. anonuid : permet de spcifier le UID de l'utilisateur anonyme. anongid : permet de spcifier le GID de l'utilisateur anonyme.

Voir les rpertoires exports


# showmount 192.168.30.10:/home 192.168.30.12:/home ...

Utilisation de NFS depuis un poste client


La commande mount permet un poste client d'accder un rpertoire partag par un serveur NFS. Synopsis :
# mount -t nfs <nom ou adresse IP du serveur NFS>:<rpertoire partag> <point de montage>

Exemple :
# mount -t nfs pc230:/home/partage /mnt

Si on veut que ce rpertoire soit accessible chaque boot, il suffit de rajouter la


3 of 7 06/12/2012 16:18

Le systme d'exploitation GNU-Linux/Le partage de...

http://fr.wikibooks.org/wiki/Le_systme_d'exploitat...

ligne suivante dans le fichier /etc/fstab :


$ cat /etc/fstab ... pc230:/home/partage ...

/mnt

nfs

defaults

Authentification centralise avec NIS


Pour rsoudre le problme des UID / GID non identiques, la solution consiste dployer NIS. Pour installer NIS sous Debian, utiliser la commande suivante :
# apt-get install nis

Lors de l'installation il faut indiquer le domaine NIS, ce dernier peut tre diffrent du domaine internet. Pour le dploiement du serveur et des clients NIS, on va suivre la procdure Debian dcrite dans le fichier /usr/share/doc/nis/nis.debian.howto.gz :
# zmore /usr/share/doc/nis/nis.debian.howto.gz

Configuration du serveur NIS


Il faut tout d'abord vrifier que le fichier /etc/hosts contient l'adresse IP et le nom FQDN du serveur :
# cat /etc/hosts ... 192.168.30.230 pc230.mondomaine.fr pc230

Il faut ensuite vrifier que le fichier /etc/defaultdomain contienne le domaine NIS :


# cat /etc/defaultdomain DOMAINENIS

4 of 7

06/12/2012 16:18

Le systme d'exploitation GNU-Linux/Le partage de...

http://fr.wikibooks.org/wiki/Le_systme_d'exploitat...

Dans le fichier /etc/ypserv.securenets, on restreint l'utilisation du domaine NIS au domaine du rseau local. On remplace la ligne 0.0.0.0 0.0.0.0 par : 255.255.255.0 192.168.30.0.
# vi /etc/ypserv.securenets ... 255.255.255.0 192.168.30.0

On modifie ensuite /etc/default/nis pour indiquer qu'il s'agit du serveur NIS :


# vi /etc/default/nis ... NISSERVER=master ...

On relance le serveur NIS :


# /etc/init.d/nis restart

Cette tape peut prendre un certain temps ... On lance ensuite la cration des bases de donnes NIS avec la commande suivante :
# /usr/lib/yp/ypinit -m

Ceci va crer les fichiers partags dans le rpertoire /var/yp/DOMAINENIS.

Configuration du client NIS


On installe nis (c'est le mme paquet qui fait office de client et de serveur) :
# apt-get install nis

On vrifie que le fichier /etc/defaultdomain contienne le domaine NIS :


# cat /etc/defaultdomain DOMAINENIS

Dans le fichier /etc/yp.conf, on indique l'adresse IP du serveur NIS :

5 of 7

06/12/2012 16:18

Le systme d'exploitation GNU-Linux/Le partage de...

http://fr.wikibooks.org/wiki/Le_systme_d'exploitat...

# vi /etc/yp.conf ... ypserver 192.168.30.230

On dmarre le client NIS :


# /etc/init.d/nis restart

On vrifie que le fichier /etc/nsswitch.conf contient bien les lignes suivantes :


# cat /etc/nsswitch.conf ... passwd: files nis group: files nis shadow: files nis ... netgroup: nis

L'option files indique au systme d'aller voir les fichiers classiques /etc/passwd, /etc/group et /etc/shadow. L'option nis indique au systme d'aller ensuite interroger le serveur NIS. A la fin du fichier /etc/passwd, on rajoute la ligne suivante :
# echo "+::::::" >> /etc/passwd

A la fin du fichier /etc/shadow, on rajoute la ligne suivante :


# echo "+::::::::" >> /etc/shadow

A la fin du fichier /etc/group, on rajoute la ligne suivante :


# echo "+:::" >> /etc/group

Pour tester, on lance la commande suivante :


# ypcat passwd.byname

6 of 7

06/12/2012 16:18

Le systme d'exploitation GNU-Linux/Le partage de...

http://fr.wikibooks.org/wiki/Le_systme_d'exploitat...

On doit voir afficher le fichier /etc/passwd partag. Sur le serveur NIS, on rajoute un utilisateur :
# adduser jack ...

On met jour la base de donnes NIS :


# /usr/lib/yp/ypinit -m

Si tout fonctionne, on doit pouvoir se logger sur le client NIS avec l'utilisateur jack.

Rcupre de http://fr.wikibooks.org /w/index.php?title=Le_systme_d%27exploitation_GNULinux/Le_partage_de_fichiers_NFS&oldid=332019

Menu de navigation
Dernire modification de cette page le 24 mai 2011 08:45. Les textes sont disponibles sous licence Creative Commons attribution partage lidentique ; dautres termes peuvent sappliquer. Voyez les termes dutilisation pour plus de dtails.

7 of 7

06/12/2012 16:18