Skip to main content

Partage de fichiers

Dans l'utilisation en classe ou en salle informatique, si l'on ne souhaite pas que les élèves soient contraints d'utiliser le même poste informatique à chaque séance afin de retrouver les fichiers qu'ils ont créé précédemment, il faut pouvoir enregistrer ces fichiers sur un poste "serveur" accessible depuis n'importe quel autre machine.

Dans ce but, les PC doivent être reliés à un même réseau informatique. Deux principaux types de protocoles permettent le partage de fichiers, Samba et NFS.

Chacun a ses avantages et inconvénients.

Partage Samba

Samba est un protocole à privilégier lorsque le parc informatique est constitué de machines  disposant de systèmes d'exploitation très différents tels que Linux, Window, Mac OS, car reconnu par ces différents systèmes.

Son inconvénient est que le dossier de partage ne sera pas forcément reconnu par tous les logiciels des postes clients pour l'enregistrement ou la lecture de fichiers, ce qui peut contraindre à des manipulations contraignantes (enregistrement en local avant transfert sur le serveur, transfert en local avant lecture sur le poste client).

PrimTux dispose d'un utilitaire permettant de créer très facilement un répertoire de partage sur un poste que l'on considérera comme poste "serveur". Les autres postes, considérés comme "invités", pourront se connecter à ce répertoire partage pour y enregistrer des fichiers, ou en récupérer pour les modifier.

Opération à faire sur le poste serveur

L'utilitaire de création d'un dossier de partage samba est accessible depuis le menu principal de PrimTux (menu Whisker) :

samba01.png

samba02.png

S'ouvre un terminal dans lequel il faudra saisir le mot de passe de session :

samba03.png

Puis on obtient la boîte de dialogue suivante :

samba04.png

Dans le premier champ, il faut créer un répertoire de partage en saisissant un nom au sein du dossier /media. L'icône de dossier sur la droite du champ permet de le faire comme dans le gestionnaire de fichiers.

Le répertoire à créer doit obligatoirement se situer dans le dossier /media !

Dans le second champ, on crée un nom pour ce partage. C'est sous ce nom que le dossier sera vu par les autres ordinateurs du réseau.

Exemple :

samba05.png

Un fenêtre indique si l'opération s'est correctement effectuée :

samba06.png

Accès depuis les autres postes (postes clients)

Sur les autres PC du réseau, on devrait accéder à ce répertoire partagé depuis le gestionnaire de fichiers.

PC sous Linux

Ouvrir le gestionnaire de fichiers, et aller à "Réseau", puis double-cliquer sur le dossier dont le nom correspond au nom de partage que l'on a défini sur le poste serveur :

samba07.png

On double-clique sur le répertoire portant le nom du partage :

samba08.png

S'ouvre une boîte de dialogue de demande d'authentification avec laquelle on se connecte anonymement :

samba09.png

On entre alors dans le répertoire partagé dans lequel il est possible de créer des dossiers, sous-dossiers, fichiers, ou de les ouvrir pour les modifier :

samba10.png

Dans le cas où le partage samba n'apparaîtrait pas dans le gestionnaire de fichiers, il est possible d'y accéder par l'adresse IP du serveur.

L'adresse IP du poste serveur (s'il est sous PrimTux) peut être trouvée en ouvrant un terminal sur ce poste serveur, et en saisissant 
hostname -I

Pour cela on se rend à "Réseau" depuis le gestionnaire de fichier, puis on double-clique sur "Réseau Windows" :

samba11.png

On bascule la barre de navigation du mode bouton au mode édition, on supprime l'un des slash du smb:/// qui s'affiche, puis on saisit l'adresse IP du poste serveur suivie du nom de partage que l'on a donné lors de la configuration du serveur :

samba12.png

PC sous Windows

Pour accéder au dossier partagé avec un PC client sous Windows, on ouvre l'explorateur de fichiers. Dans la barre d'adresse, on saisit l'adresse IP du PC serveur suivie du nom du partage tel que défini sur le poste serveur sous la forme

\\IP serveur\nom du partage :


smb-win12.png

On valide par l'appuie sur [Entrée], ce qui ouvre le dossier partagé. Pour ne pas avoir à refaire cette opération à chaque fois que l'on souhaite accéder à ce dossier, on peut l'épingler dans l'accès rapide, ce qui le placera dans le volet gauche de l'arborescence des dossiers :

smb-win13.png

smb-win14.png

On peut en rendre l'accès encore plus aisé en lui affectant une lettre de lecteur réseau, comme un disque dur. Pour cela, une fois que l'on a ouvert le répertoire réseau, on se rend dans le volet de gauche de l'arborescence des fichiers, à l'entrée "Réseau". On doit y retrouver le chemin du dossier partagé :

smb-win15.pngsmb-win15.png

On fait un clic droit sur le nom du dossier partagé pour faire apparaître le menu contextuel dans lequel on clique sur "Connecter un lecteur réseau" :

smb-win16.png

Dans la fenêtre qui s'affiche, on peut alors choisir quelle lettre de lecteur on veut attribuer à ce dossier partagé :

smb-win17.png

Partage NFS

Le partager NFS est un peu plus complexe à mettre en œuvre que le partage samba, et n'est pas accessible depuis un poste sous Windows, mais il est beaucoup plus simple à utiliser une fois mis en place, car il se comporte comme un dossier local. Ainsi il n'y aura aucun problème d'enregistrement ou de lecture de fichiers quel que soit le logiciel utilisé.

Opérations à effectuer sur le poste serveur

On installe le paquet nécessaire à la création du partage
sudo apt-get install nfs-kernel-server
Le serveur NFS est installé, on le configure pour qu'il démarre automatiquement avec le système :
sudo systemctl enable nfs-server.service
On crée un dossier de partage, par exemple :
sudo mkdir /media/partage-nfs
Puis on applique les droits sur le partage (à adapter selon ses besoins) :
sudo chown nobody:nogroup /media/partage-nfs/
sudo chmod 777 /media/partage-nfs/
777 indique que toute personne  aura des droits de lecture, écriture et exécution dans ce dossier. Ce sont les droits les plus permissifs.
Ce nombre s'interprète de la manière suivante :
  • le 1er chiffre concerne les droits du propriétaire
  • le second les droits du groupe
  • le 3è de tous les autres
Pour chaque chiffre,
  • 4 indique le droit de lecture
  • 2 indique le droit d'écriture
  • 1 indique le droit d'exécution,
ces chiffres s'additionnant :
  • ainsi 4 +2, donc 6, indique droit de lecture et d'écriture, mais pas d'exécution
  • 4 + 1, donc 5, droit de lecture et d'exécution, mais pas d'écriture,
  • 4+2+1, donc 7, droit de lecture, écriture et exécution,
  • etc.
Le partage NFS doit être indiqué et paramétré dans le fichier /etc/exports
On peut l'éditer par
sudo nano /etc/exports
On y ajoute la ligne suivante :
/srv/partagenfs 192.168.1.0/24(rw,sync,anonuid=65534,anongid=65534,no_subtree_check)
  • /media/partage-nfs est le chemin du dossier que l'on a choisi comme partage précédemment
  • 192.168.1.0/24 l'adresse de votre réseau local et le masque de sous-réseau
Il est possible d'indiquer une une ou des adresses IP spécifiques, ou un ou plusieurs réseaux
Exemple pour plusieurs réseaux :
/media/partage-nfs 192.168.1.0/24(rw,sync,anonuid=65534,anongid=65534,no_subtree_check) 10.0.0.0/24(rw,sync,anonuid=65534,anongid=65534,no_subtree_check)
On a ensuite les options de partage :
  • rw : partage accessible en lecture et écriture, à remplacer par "ro" pour la lecture seule
  • sync : écrire les données et les vérifier avant de répondre à la requête suivante : plus lent, mais plus fiable vis-à-vis des corruptions de données. L'autre mode est "async".
  • anonuid : ID de l'utilisateur à utiliser pour les connexions anonymes (65534 = nobody)
  • anongid : ID du groupe à utiliser pour les connexions anonymes (65534 = nogroup)
  • no_subtree_check : désactiver la vérification des sous-dossiers, recommandé pour des raisons de fiabilité
On doit ensuite faire prendre en compte la configuration par le système par la commande :
sudo exportfs -a

Pour stopper et purger les partages NFS, il faut exécuter la commande suivante :
sudo exportfs -ua
Pour afficher la liste des partages NFS sur l'hôte précisé :
showmount -e IP-serveur

Opérations à effectuer sur les postes clients

On installe le paquet nfs-common
sudo apt-get install nfs-common
On crée un répertoire local dans lequel sera monté le partage NFS :
sudo mkdir /mon-dossier/partage-nfs
Puis on effectue le montage du partage du dossier hôte sur notre poste client :
sudo mount -t nfs4 IP-hôte:/media/partage-nfs /mon-dossier/partage-nfs
Pour ne pas avoir à faire le montage manuellement, ou par un script au démarrage de session, le plus simple est d'inscrire le montage dans le fichier /etc/fstab :
sudo nano /etc/fstab
On y inscrit la ligne suivante, en adaptant selon sa configuration locale et ses besoins :
IP-serveur:/media/partage-nfs /mon-dossier/partage-nfs nfs4 defaults,user,exec 0 0
Pour ne pas avoir à redémarrer pour que la nouvelle configuration du fichier fstab soit prise en compte, on peut relancer ce fichier par
sudo mount -a
Tout dossier ou fichier du répertoire /mon-dossier/partage-nfs se retrouvera dès lors dans le dossier /media/partage-nfs du PC hôte, et sera accessible en lecture et écriture depuis n'importe quel poste client sur lequl on aura configuré cet accès.