Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
doc:reseau:nfs [20/04/2010 19:01] patrickv |
doc:reseau:nfs [06/04/2019 19:36] (Version actuelle) debianux [Introduction] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== NFS : partages réseaux sauce Linux ====== | ||
+ | * Objet : Utiliser les partages NFS | ||
+ | * Niveau requis : {{tag>avisé}} | ||
+ | * Commentaires : //Partager des fichiers au sein d'un réseau Linux via les partages NFS.// | ||
+ | * Suivi : | ||
+ | * Création par [[user>smolski]] 11/1/2009 | ||
+ | * Testé par [[user>bendia]] le 12/08/2015 | ||
+ | * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=2005|ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
+ | ===== Introduction ===== | ||
+ | Ou comment partager des fichiers sous GNU/Linux | ||
+ | |||
+ | __**Pré-requis:**__ 2 ordinateurs (pour du partage c'est mieux) disposant chacun d'une interface réseau (pour faire du réseau ça simplifie les choses) | ||
+ | |||
+ | __**Paquetage à installer:**__ nfs-kernel-server, côté serveur et nfs-common, côté client | ||
+ | |||
+ | __**Note:**__ on considérera un serveur qui a pour ip 192.168.0.1, et un poste client qui a pour ip 192.168.0.15. | ||
+ | |||
+ | ===== Coté serveur ===== | ||
+ | |||
+ | Il est nécessaire d'éditer 3 fichiers pour la configuration de notre serveur : /etc/exports, /etc/hosts.allow, /etc/host.deny | ||
+ | |||
+ | ==== /etc/exports ==== | ||
+ | |||
+ | C'est lui qui va permettre de définir quels sont les répertoires à partager et qui a quels droits dessus (on parle ici de clients et pas d'utilisateurs) | ||
+ | |||
+ | <code text /etc/exports> | ||
+ | # Syntaxe : /chemin/de/partage Client1(droits)[,Client2(droits)[...]] | ||
+ | # Exemples : | ||
+ | # Partage du répertoire /home/user1 avec l'hôte 192.168.0.15 et les droits de lectures seulement | ||
+ | /home/user1 192.168.0.15(ro,sync) | ||
+ | |||
+ | # Partage du répertoire /home/user2 avec l'hôte 192.168.0.11 et les droits de lecture écriture et | ||
+ | # avec l'hôte 192.168.0.15 et les droits de lectures seulement | ||
+ | /home/user2 192.168.0.11(rw,sync) 192.168.0.15(ro,sync) | ||
+ | |||
+ | # Partage du répertoire /home/user3 avec tous les membres du réseau 192.168.0.1/24 en lecture simplement | ||
+ | /home/user3 192.168.0.1/24(ro,sync) | ||
+ | </code> | ||
+ | |||
+ | Pour de plus amples informations sur la gestion des droits, je vous invite à consulter les pages du manuel : | ||
+ | <code user>man 5 exports</code> | ||
+ | |||
+ | === Attention ! === | ||
+ | |||
+ | Si : | ||
+ | - sur le serveur le répertoire partagé appartient à l'utilisateur **1002** | ||
+ | - et si vous donnez les droits d'écriture à l'hôte **192.168.0.11**, | ||
+ | l'utilisateur de cet hôte qui aura le droit d'écriture dans ce répertoire | ||
+ | est celui dont le numéro, sur cet hôte, est 1002. | ||
+ | Si ce numéro ne correspond à aucun utilisateur sur l'hôte : | ||
+ | personne, pas même root, ne pourra écrire dans le dossier partagé à partir de cet hôte ! | ||
+ | |||
+ | ==== /etc/hosts.allow ==== | ||
+ | |||
+ | Comme son nom l'indique, ce fichier va permettre de définir quels postes clients auront accès aux partages (quels postes seront autorisés à la connexion et à l'utilisation des services) | ||
+ | |||
+ | <code text /etc/hosts.allow> | ||
+ | # Syntaxe : service:hote.domain.com, .domain.com | ||
+ | # Exemple basique (et un peu bourrin) | ||
+ | ALL:192.168.0.1/24 | ||
+ | </code> | ||
+ | |||
+ | Pour de plus amples informations sur la gestion des access, je vous invite à consulter les pages du manuel : | ||
+ | <code user>man 5 hosts_acces</code> | ||
+ | |||
+ | |||
+ | ==== /etc/hosts.deny ==== | ||
+ | |||
+ | Là aussi, comme son nom l'indique, ce fichier va permettre de définir quels postes clients n'auront pas accès aux partages (quels postes seront interdis à la connexion et à l'utilisation des services) | ||
+ | |||
+ | <code text /etc/hosts.deny> | ||
+ | # Syntaxe : service:hote.domain.com, .domain.com | ||
+ | # Exemple basique (et un peu bourrin) | ||
+ | ALL:PARANOID | ||
+ | </code> | ||
+ | |||
+ | Pour de plus amples informations sur la gestion des access, je vous invite, là encore, à consulter les pages du manuel : man 5 hosts_acces | ||
+ | |||
+ | ==== (Re)Démarrage ses services ==== | ||
+ | |||
+ | <code root>service nfs-kernel-server restart</code> | ||
+ | |||
+ | Et voilà qui termine la configuration du serveur. | ||
+ | |||
+ | ===== Coté client ===== | ||
+ | |||
+ | ==== Montage manuel MOUNT ==== | ||
+ | |||
+ | Pour accéder aux fichiers partagés un simple mount suffit, on va donc monter le répertoire /home/user1 du serveur dans le répertoire /mnt/user1 du client : | ||
+ | |||
+ | <code root>mount -t nfs 192.168.0.1:/home/user1 /mnt/user1</code> | ||
+ | <note>S'il n'existe pas, il faut créer le répertoire user1 :<code root>mkdir -p /mnt/user1</code></note> | ||
+ | ==== Montage automatique FSTAB ==== | ||
+ | |||
+ | Il est également possible de monter automatiquement les répertoires partagés au démarrage de l'ordinateur client. Pour ce faire on va rajouter une ligne dans le fichier /etc/fstab | ||
+ | |||
+ | <code text /etc/fstab> | ||
+ | # <file system> <mount point> <type> <options> <dump> <pass> | ||
+ | 192.168.0.1:/home/user1 /mnt/user1 nfs defaults 0 0 | ||
+ | </code> | ||
+ | |||
+ | Pour pas redémarrer et avoir accès pour la première fois au dossier partagé on peut utiliser mount comme suit : | ||
+ | <code root>mount -a</code> | ||
+ | |||
+ | Et voila nous en avons terminé avec l'utilisation de NFS pour le partage de fichiers | ||
+ | |||
+ | ==== Montage graphique : Rox-Filer ==== | ||
+ | |||
+ | === Installation ==== | ||
+ | |||
+ | Regardez voir ici :\\ | ||
+ | Logiciel [[:doc:environnements:x11:rox-filer|Rox-Filer]] | ||
+ | |||
+ | === Utilisation ==== | ||
+ | |||
+ | Un simple (ou double) click sur le répertoire **serveur** monté avec nfs donne l'accès au contenu dans une fenêtre ! | ||
+ | |||
+ | Avec **rox-filer**, la fermeture de la fenêtre proposera le démontage du point. | ||
+ | |||
+ | Voir le protocole avec les autres gestionnaires de fichiers (en général //click-droit//) | ||
+ | |||
+ | ==== Montage par une commande ad-hoc au menu ===== | ||
+ | |||
+ | Voici un complément permettant le montage par l'utilisateur si celui-ci n'a pas eu lieu pendant le démarage du client. Toutes les manipulations suivantes sont à faire sur le client. | ||
+ | |||
+ | Tout d'abord, modifier /etc/fstab pour autoriser le montage par les utilisateurs : | ||
+ | |||
+ | <code text /etc/fstab> | ||
+ | # <file system> <mount point> <type> <options> <dump> <pass> | ||
+ | 192.168.0.1:/home/user1 /mnt/user1 nfs rw,users 0 0 | ||
+ | </code> | ||
+ | |||
+ | Il est alors possible de monter le partage par la commande suivante en mode "utilisateur" : | ||
+ | |||
+ | <code user>mount /mnt/user1</code> | ||
+ | | ||
+ | Pour ajouter une entrée au menu, créez ce script sous /usr/local/bin/partage.sh | ||
+ | |||
+ | <code bash /usr/local/bin/partage.sh> | ||
+ | #! /bin/sh | ||
+ | mount /mnt/user1</code> | ||
+ | | ||
+ | Et rendez-le exécutable. Créez ce fichier desktop sous /usr/share/applications/partage.desktop | ||
+ | |||
+ | <code ini /usr/share/applications/partage.desktop> | ||
+ | [Desktop Entry] | ||
+ | Categories=Network; | ||
+ | Exec=/usr/local/bin/partage.sh | ||
+ | GenericName=Network Manager | ||
+ | Icon=preferences-system-network | ||
+ | Icon[en_US]=preferences-system-network | ||
+ | Name=Activer le partage NFS | ||
+ | Comment=Activer le partage de répertoire NFS | ||
+ | Terminal=false | ||
+ | Type=Application | ||
+ | Version=1.0</code> | ||
+ | |||
+ | La commande devrait apparaître dans le menu et le partage exécutable par l'utilisateur | ||
+ | |||
+ | ===== autofs ===== | ||
+ | |||
+ | <note warning>Outil rendu obsolète depuis wheezy</note> | ||
+ | |||
+ | Autofs permet un montage et un démontage automatique des répertoires partagés en NFS. | ||
+ | |||
+ | L'avantage est qu'au démarrage du PC, si la connexion au réseau local n'est pas établie, il n'y aura pas d'erreur car automatiquement le répertoire utilisé ne sera pas monté. | ||
+ | |||
+ | ==== Préalable ==== | ||
+ | |||
+ | Il faut d'abord que le partage soit opérationnel. :-) | ||
+ | |||
+ | ==== Installation ==== | ||
+ | |||
+ | <code root>apt-get install autofs</code> | ||
+ | |||
+ | ==== auto.master ==== | ||
+ | |||
+ | Par souci de sécurité, sauvegarder votre fichier | ||
+ | |||
+ | <code root>cp /etc/auto.master /etc/auto.master.old</code> | ||
+ | |||
+ | Puis, éditer, en Root(([[:doc:systeme:su]])) , le fichier //auto.master// et ajouter la dernière ligne comme ici : | ||
+ | |||
+ | <code text /etc/auto.master> | ||
+ | # $Id: auto.master,v 1.4 2005/01/04 14:36:54 raven Exp $ | ||
+ | # | ||
+ | # Sample auto.master file | ||
+ | # This is an automounter map and it has the following format | ||
+ | # key [ -mount-options-separated-by-comma ] location | ||
+ | # For details of the format look at autofs(5). | ||
+ | #/misc /etc/auto.misc --timeout=60 | ||
+ | #/smb /etc/auto.smb | ||
+ | #/misc /etc/auto.misc | ||
+ | #/net /etc/auto.net | ||
+ | /emplacement/du_point_de_montage_local /etc/auto.nfs --timeout=30</code> | ||
+ | |||
+ | ==== Création du fichier auto.nfs ==== | ||
+ | |||
+ | <note warning>Outil rendu obsolète depuis wheezy</note> | ||
+ | |||
+ | Créer(([[:doc:editeurs:nano]])) le fichier ///etc/auto.nfs// et ajouter ceci | ||
+ | |||
+ | repertoire_de_montage -fstype=nfs hote:/repertoire/distant | ||
+ | | ||
+ | en remplaçant //hote// par l'adresse ip ou le nom d'hôte du serveur. | ||
+ | |||
+ | Le répertoire //repertoire_de_montage// sera automatiquement créé dans ///emplacement/du_point_de_montage_local// | ||
+ | |||
+ | Par exemple, on peut envisager une ligne de auto.master comme celle-là : | ||
+ | |||
+ | /home/user /etc/auto.nfs --timeout=30 | ||
+ | | ||
+ | et un auto.nfs comme celui-ci : | ||
+ | |||
+ | serveur -fstype=nfs hote:/repertoire/distant | ||
+ | | ||
+ | Votre répertoire distant apparaîtra alors dans le dossier //serveur// de votre répertoire personnel. 8-) |