Retourner au contenu. Retourner à la navigation

 

NFS

by diorf @ 11/10/2005
Mise en place d'un serveur de fichier à l'aide de NFS

Configuration de nfs-utils

'ensemble des configurations ont lieu dans le fichier /etc/exports que vous devez eventuellement créer s'il n'existe pas. C'est dans celui-ci que vous pouvez définir vos partages ainsi que les options associées.

Partage d'un réperotire personnel distant

Par défaut, tous les utilisateurs (sauf root) qui utilisent (écrivent,lisent ou exécutent) les fichiers d'un partage nfs le font avec leur uid et gid(sur la machine client). Or, cet uid ne correspond pas forcémment au même utilisateur sur le système serveur.

Plusieurs solutions s'offrent alors à vous, soit vous vous efforcer de créer les utilisateurs sur le serveur en cohérence avec ceux des client (tâche assez lourde), soit vous considérez qu'une partie de vos utilisateurs possèdent une machine personelle et donc une ip. Pour ne pas avoir de confusion d'uid/gid, vous partagez votre dossier en spécifiant au serveur de n'accepter pour ce partage que les connexions venant de l'ip de l'utilisateur voulu et de traiter toutes les opérations en tant qu'utilisateur anonyme .

Il convient ensuite de spécifier dans le fichier /etc/exports l'uid et le gid anonyme à utiliser (dans notre cas celui de l'utilisateur et de son groupe sur le serveur). Pour connaître cet uid et ce gid il suffit de saisir :

root@localhost # id tito 
uid=1000(tito) gid=100(users) groups=100(users),1001(cvs),1002(wheel)

Pour partager le répertoire personel de tito le fichier /etc/exports ce modifie comme suit :

/home/tito 192.168.0.42(rw,async,all_squash,anonuid=1000,anongid=100)

Partage d'un répertoire publique

Imaginons que nous voulions à présent créer un répertoire /share auquel toutes les machines du sous réseau 192.168.0.0/24 pourront accéder de manière anonyme. Nous devons pour celà connaître l'uid de l'utilisateur anonymous et créer un groupe nfsgroup (ce n'est pas obligatoire mais plus propre) :

root@localhost # id anonymous
uid=1004(anonymous) gid=100(users) groups=100(users),1001(cvs)
root@localhost # groupadd nfsgroup
root@localhost # cat /etc/group | grep nfsgroup
nfsgroup:x:1006:

Créons à présent le répertoire /share et donnons lui les bons droits :

root@localhost # mkdir /share
root@localhost # chown anonymous:nfsgroup /share
root@localhost # chomod g+w /share

A présent il nous faut éditer le fichier de configuration /etc/exports et y déclarer notre partage :

root@localhost # vi /etc/exports
/share 192.68.0.*(rw,sync,all_squash,anonuid=1004,anongid=1006)
Note:

L'option all_squash précise au serveur de traiter toutes les opérations sur partage des utilisateurs autres que root avec l'uid et le gid anonyme (inversement no_all_squash).

Lancement du serveur

Il ne nous reste plus qu'à lancer le serveur et lui faire prendre en compte nos nouveaux partages. Sous certaines distributions, l'installation des services nfs via les paquetages crée un stcript /etc/init.g/nfs, que vous pouvez utiliser avec les argument start|stop|restart. Si vous avez effectué l'installation à la main créez un fichier appelé nfs dans /etc/init.d et mettez y ceci :

#!/bin/bash
portmap
rpc.mountd
rpc.nfsd
rpc.statd
rpc.lockd

Donnez à présent les droits d'exécution au script puis lancez le :

root@localhost # chmod +x /etc/init.d/nfs
root@localhost # /etc/init.d/nfs

La commande exportfs

Les services rpc (voir essentiel pour plus de détail) et le serveur nfs sont à présent lancés et prêt à recevoir des requêtes. Si les clients n'arrivent pas à monter le partage mettez à jour la table des partages en saisissant :

root@localhost # exportfs -a

Plus généralement vous devrez retaper cette commande à chaque fois que vous modifiez le fichier /etc/exports. La commande exportfs vous permet également de partager ponctuellement une ressource sans avoir à modifier le fichier de configuration global :

Partage l'ensemble de l'arborescence pour la machine d'ip 192.168.0.42:

root@localhost # exportfs -o rw,async,no_root_squash "192.168.0.42:/"
Note:

Cette fois on précise l'option no_root_squash pour que les opérations effectuées par root dans le partage soit fait avec l'uid du root sur le serveur (inversement root_squash).

Pour supprimer un partage on utilise l'option -u :

Désactive le partage /:

root@localhost # exportfs -u "192.168.0.42:/"

Désactive tout les partages :

root@localhost # exportfs -ua

Enfin pour lister tous les partages disponible sur le serveur on utilise exportfs sans arguments :

root@localhost # exportfs
/home/tito 192.168.0.42
/share 192.168.0.*
Par diorf Dernière modification 22/03/2007 15:41
Navigation
Actualités
18/12/2008 Sortie d'OpenSuse 11.1
03/12/2008 Songbird 1.0
20/10/2008 Société Générale se met au vert
15/09/2008 Sortie de la version VLC 0.9.2
23/06/2008 Opération du libre à Nantes !
Plus d'actualités...
Articles
22/05/2008 Première approche de Qmail
19/05/2008 Test de la distribution Elive 1.0 Gem
14/05/2008 GNUPG introduction à la cryptographie et utilisation de GnuPG
21/02/2008 GNU / Screen
03/09/2007 The Linux File System Encryption API
More articles
Tips
28/04/2008 Mozilla Firefox : Google Talk et Facebook Chat
22/04/2008 Sed : Rechercher du texte entre deux chaines de caractères
04/04/2008 Gérer son(ses) écran(s) avec xrandr
26/03/2008 Tips sur l'historique de vos commandes
13/02/2008 Linux-Unix Cheat Sheets
More tips
Codes
09/04/2008 Chapitre 13 - Administration DNS et DHCP
09/04/2008 Chapitre 06 - Service web avec Apache
04/04/2008 Chapitre 09 - PureFTPd
04/04/2008 Chapitre 06 - Scripting Bash
01/04/2008 Chapitre 20 - Haute Disponibilité
More codes
Courses
13/09/2006 Module 3
23/02/2006 Module 2
23/02/2006 Module 1
More courses
Formation Linux

Supinfo Training Center has the first Linux Certification. The training is 13 days and allow you to pass the LPI 101 and 102.

more info
 
 
Vous êtes ici :
Articles NFS Configuration de nfs-utils