LinuxPedia

Wiki libre et indépendant dédié à GNU-Linux et BSD.

Outils pour utilisateurs

Outils du site


debian:montage_de_disques_reseaux_sous_samba_avec_cifs

*Source : “Les recettes linux de Tyrtamos”*

Montage de disques réseaux sous samba avec "cifs"

[testé avec opensuse 10.2, debian etch et Windows XP SP2 (désolé, je n'ai pas Vista!)]

Problématique

Samba permet de partager des fichiers et des imprimantes entre linux et Windows, parce qu'il correspond au protocole de Windows: netbios.

On peut accéder aux répertoires partagés en utilisant les navigateurs de fichiers (konqueror et nautilus). Par exemple, en utilisant le protocole “smb:/” à donner comme adresse à konqueror. Mais certains programmes linux (ex: programmes pour écouter des mp3) n'acceptent pas d'y accéder parce que ce n'est pas un vrai montage. Il faut alors monter le répertoire partagé dans l'arborescence de linux, de façon à pouvoir y accéder: c'est l'objet du présent tuto.

Le pilote samba smbfs qui permettait de monter des répertoires partagés, est progressivement remplacé par cifs. Sur l'opensuse 10.2, seul cifs fonctionne. Sur la debian etch, on peut encore utiliser les 2. On utilisera ici uniquement “cifs”.

Montage d'un répertoire partagé public

Configuration du serveur samba-netbios

Serveur netbios Windows XP

Pour que le partage de répertoires soit “public” (accès sans mot de passe), il faut qu'il y ait l'option activée “utiliser le partage de fichier simple”.

Sur Windows XP “home”, on n'a pas le choix, c'est la seule option possible.

Sur Windows XP “pro”, c'est dans: Explorateur Windows → menu “outils” → option des dossiers → onglet “affichage” → ligne “utiliser le partage de fichier simple” → la case doit être cochée.

Windows a par défaut un répertoire partagé public (lecture-écriture) appelé sous Windows “Mes documents partagés”. Si on ne met pas un autre nom pour le réseau, il apparait comme “SharedDocs”. Je l'ai changé chez moi en “Documents”.

En fait, n'importe quel répertoire peut être partagé.

Pour cela, avec l'Explorateur Windows, clic droit sur le répertoire à partager → partage et sécurité. Il y a 3 choses à faire:

  • cocher la case pour partager
  • mettre alors un nom de partage
  • dire si on accepte que les machines éloignées aient ou pas le droit d'écriture
Serveur samba Linux

Il faut que le serveur samba soit installé (le client samba est, lui, souvent installé par défaut).

Pour le configurer, vous utilisez le logiciel de votre choix: swat par exemple.

Vous pouvez déclarer un répertoire partagé avec simplement konqueror sous KDE: clic droit → propriétés → onglet “partage”.

En tout cas, dans le fichier de configuration du serveur samba qui est: /etc/samba/smb.conf:

  • Dans le bloc commençant par ”[nomdupartage]”, il doit y avoir “guest ok = Yes” car c'est ça qui permettra l'accès sans mot de passe.
  • Il est aussi possible que dans le bloc commençant par ”[global]”, il soit nécessaire qu'il y ait : “security = user”.

Configuration du client samba-netbios

client Windows XP

Avec l'explorateur Windows, on peut toujours accéder aux répertoires partagés du réseau par: “favoris réseau” → “tout le réseau” → “réseau microsoft windows” → noms netbios des réseaux locaux → noms netbios des machines → noms de partage des répertoires partagés. C'est l'analogue du protocole “smb:/” de konqueror dans linux.

Pour “monter” un répertoire partagé sous Windows, il faut utiliser l'Explorateur Windows et le menu “outils” → “connecter un lecteur réseau”. Il vient une petite fenêtre qui permet de parcourir le réseau, de choisir le répertoire partagé disponible, et de l'affecter à une lettre (V: par ex.) encore disponible. On peut en plus demander que désormais, la connexion soit établie à chaque boot.

Et c'est tout: après cela, l'Explorateur Windows présentera ce répertoire partagée comme un nouveau disque dans l'arborescence (par ex. V:\).

client linux

Il faut, bien sûr, que le client samba soit installé.

Prenons un cas simpliste. La commande suivante (en console sous root):

# mount -t cifs -o guest //192.168.0.99/Documents /media/partwin

fera le montage (on ne peut pas espérer plus simple)!

Commentaires sur la commande:

  • guest: c'est ça qui permettra de ne pas demander de mot de passe (pour l'accès aux répertoires publics)
  • 192.168.0.99: c'est l'adresse IP locale du PC qui a mis un répertoire en partage public
  • Documents: c'est le nom “réseau” du répertoire partagé
  • /media/partwin: le répertoire partwin doit avoir été créé avant.

Commentaires sur le résultat de la commande:

  • tous les fichiers et tous les répertoires ont été affectés à root:root (c'est normal, c'est root qui a fait le montage)
  • avec des droits “rwxrwxrwx” (777) pour les répertoires, et bizarrement rwxrwSrwt pour les fichiers (=767 avec setgid et stiky bit!).
  • bizarrement aussi, ces mêmes droits seront affichés, même si vous avez interdit le droit d'écriture sur le répertoire partagé (mais l'écriture ne se fera pas heureusement!).
  • pas de correction d'encodage: les caractères accentués des noms de fichiers ne sont pas affichés correctement

Corrigeons tout cela avec:

  • Pour affecter le répertoire partagé à tyrtamos:users, au lieu de root:root, on ajoute les options: “uid=tyrtamos,gid=users”. On pourrait mettre aussi les nombres correspondant à l'utilisateur comme uid=1000 et gid=100.
  • Pour avoir les bons droits affichés, on ajoute les options: “file_mode=0666,dir_mode=0777”, ce qui permettra en plus d'éviter l'exécution de programmes binaires. Bien sûr, si on n'a pas le droit d'écriture, il faut mettre: “file_mode=0444,dir_mode=0555”. Une plus grande restriction des droits serait très artificielle puisqu'on accéde à un répertoire partagé public.
  • Pour avoir un affichage correct des caractères accentués, on ajoute l'option “iocharset=utf8” ou “iocharset=iso8859-1” ou encore “iocharset=iso8859-15” (le dernier, c'est pour avoir l'Euro) selon votre configuration: vous prenez celui qui marche.

NB: si on définit file_mode=0666,dir_mode=0777, on peut laisser la propriété des fichiers à root:root!

Cela donne au final l'une des lignes possibles:

# mount -t cifs -o guest,file_mode=0666,dir_mode=0777,iocharset=utf8 //192.168.0.99/Documents /media/partwin

Et pour une ligne dans fstab:

//192.168.0.99/Documents /media/partwin cifs guest,file_mode=0666,dir_mode=0777,iocharset=utf8  0 0

Avec la ligne dans fstab, on peut aussi ajouter “noauto” de façon à ne déclencher le montage que si on sait que la machine distante est allumée:

//192.168.0.99/Documents /media/partwin cifs noauto,guest,file_mode=0666,dir_mode=0777,iocharset=utf8  0 0

Au lieu de noauto, on peut aussi utiliser l'option “soft” qui permet aux logiciels qui accédent au répertoire partagé de ne pas “planter” si l'accès est impossible, mais seulement de renvoyer une erreur. Ce qui donnera au final pour fstab (=c'est la ligne que j'utilise):

//192.168.0.99/Documents /media/partwin cifs guest,soft,file_mode=0666,dir_mode=0777,iocharset=utf8  0 0
debian/montage_de_disques_reseaux_sous_samba_avec_cifs.txt · Dernière modification : 2018/11/17 12:52 de 127.0.0.1