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 [06/03/2012 12:02] paskal |
doc:reseau:nfs [06/04/2019 19:36] (Version actuelle) debianux [Introduction] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== NFS : Ou comment partager des fichiers sous GNU/Linux ====== | + | ====== 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 !)) | ||
- | __**Distribution utilisée:**__ Debian Etch 4.0r1, Debian Lenny | + | ===== 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) | __**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-common nfs-kernel-server | + | __**Paquetage à installer:**__ nfs-kernel-server, côté serveur et nfs-common, côté client |
- | + | ||
- | __**Note:**__ On utilisera simplement les version NFSv2 et NFSv3 pour le moment, 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. | + | |
+ | __**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 ===== | ===== Coté serveur ===== | ||
Ligne 18: | Ligne 25: | ||
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) | 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) | ||
- | # Syntaxe : /chemin/de/partage Client1(droits)[,Client2(droits)[...]] | + | <code text /etc/exports> |
- | # Exemples : | + | # Syntaxe : /chemin/de/partage Client1(droits)[,Client2(droits)[...]] |
- | # Partage du répertoire /home/user1 avec l'hôte 192.168.0.15 et les droits de lectures seulement | + | # Exemples : |
- | /home/user1 192.168.0.15(ro,sync) | + | # 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 | + | # 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 | + | # 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) | + | /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 | + | # Partage du répertoire /home/user3 avec tous les membres du réseau 192.168.0.1/24 en lecture simplement |
- | simplement | + | /home/user3 192.168.0.1/24(ro,sync) |
- | /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 : man 5 exports | + | 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 ! === | === Attention ! === | ||
Ligne 47: | Ligne 56: | ||
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) | 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) | ||
- | # Syntaxe : service:hote.domain.com, .domain.com | + | <code text /etc/hosts.allow> |
- | # Exemple basique (et un peu bourrin) | + | # Syntaxe : service:hote.domain.com, .domain.com |
- | ALL:192.168.0.1/24 | + | # 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 : man 5 hosts_acces | + | 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> | ||
Ligne 58: | Ligne 70: | ||
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) | 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) | ||
- | # Syntaxe : service:hote.domain.com, .domain.com | + | <code text /etc/hosts.deny> |
- | # Exemple basique (et un peu bourrin) | + | # Syntaxe : service:hote.domain.com, .domain.com |
- | ALL:PARANOID | + | # 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 | Pour de plus amples informations sur la gestion des access, je vous invite, là encore, à consulter les pages du manuel : man 5 hosts_acces | ||
Ligne 66: | Ligne 80: | ||
==== (Re)Démarrage ses services ==== | ==== (Re)Démarrage ses services ==== | ||
- | # invoke-rc.d nfs-kernel-server restart | + | <code root>service nfs-kernel-server restart</code> |
Et voilà qui termine la configuration du serveur. | Et voilà qui termine la configuration du serveur. | ||
Ligne 76: | Ligne 90: | ||
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 : | 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 : | ||
- | # mount -t nfs 192.168.0.1:/home/user1 /mnt/user1 | + | <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 ==== | ==== 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 | 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 | ||
- | # fichier /etc/fstab | + | <code text /etc/fstab> |
- | # <file system> <mount point> <type> <options> <dump> <pass> | + | # <file system> <mount point> <type> <options> <dump> <pass> |
- | 192.168.0.1:/home/user1 /mnt/user1 nfs defaults 0 0 | + | 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 : | Pour pas redémarrer et avoir accès pour la première fois au dossier partagé on peut utiliser mount comme suit : | ||
- | # mount -a | + | <code root>mount -a</code> |
Et voila nous en avons terminé avec l'utilisation de NFS pour le partage de fichiers | Et voila nous en avons terminé avec l'utilisation de NFS pour le partage de fichiers | ||
Ligne 96: | Ligne 111: | ||
Regardez voir ici :\\ | Regardez voir ici :\\ | ||
- | Logiciel [[logiciel:rox-filer|Rox-Filer]] | + | Logiciel [[:doc:environnements:x11:rox-filer|Rox-Filer]] |
=== Utilisation ==== | === Utilisation ==== | ||
Ligne 112: | Ligne 127: | ||
Tout d'abord, modifier /etc/fstab pour autoriser le montage par les utilisateurs : | Tout d'abord, modifier /etc/fstab pour autoriser le montage par les utilisateurs : | ||
- | # fichier /etc/fstab | + | <code text /etc/fstab> |
- | # <file system> <mount point> <type> <options> <dump> <pass> | + | # <file system> <mount point> <type> <options> <dump> <pass> |
- | 192.168.0.1:/home/user1 /mnt/user1 nfs rw,users 0 0 | + | 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" : | Il est alors possible de monter le partage par la commande suivante en mode "utilisateur" : | ||
- | mount /mnt/user1 | + | <code user>mount /mnt/user1</code> |
| | ||
Pour ajouter une entrée au menu, créez ce script sous /usr/local/bin/partage.sh | Pour ajouter une entrée au menu, créez ce script sous /usr/local/bin/partage.sh | ||
- | # fichier /etc/fstab | + | <code bash /usr/local/bin/partage.sh> |
- | #! /bin/sh | + | #! /bin/sh |
- | mount /mnt/user1 | + | mount /mnt/user1</code> |
| | ||
Et rendez-le exécutable. Créez ce fichier desktop sous /usr/share/applications/partage.desktop | Et rendez-le exécutable. Créez ce fichier desktop sous /usr/share/applications/partage.desktop | ||
- | # fichier partage.desktop | + | <code ini /usr/share/applications/partage.desktop> |
- | [Desktop Entry] | + | [Desktop Entry] |
- | Categories=Network; | + | Categories=Network; |
- | Exec=/usr/local/bin/partage.sh | + | Exec=/usr/local/bin/partage.sh |
- | GenericName=Network Manager | + | GenericName=Network Manager |
- | Icon=preferences-system-network | + | Icon=preferences-system-network |
- | Icon[en_US]=preferences-system-network | + | Icon[en_US]=preferences-system-network |
- | Name=Activer le partage NFS | + | Name=Activer le partage NFS |
- | Comment=Activer le partage de répertoire NFS | + | Comment=Activer le partage de répertoire NFS |
- | Terminal=false | + | Terminal=false |
- | Type=Application | + | Type=Application |
- | Version=1.0 | + | Version=1.0</code> |
La commande devrait apparaître dans le menu et le partage exécutable par l'utilisateur | 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-) |