I. Introduction▲
Le logiciel Samba est un outil permettant de partager des dossiers et des imprimantes à travers un réseau local. Il permet de partager et d'accéder aux ressources d'autres ordinateurs fonctionnant avec des systèmes d'exploitation Microsoft® Windows® et Apple® Mac OS® X, ainsi que des systèmes GNU/Linux, *BSD et Solaris dans lesquels une implémentation de Samba est installée.
Pour partager de manière simple des ressources entre plusieurs ordinateurs, l'utilisation de Samba est conseillée.
Dans l'ensemble des articles concernant les réseaux, noter que :
-
le Groupe désigne un ensemble de machines ayant des affinités communes (exemple : le nom de famille, de l'entreprise ou d'un service), auxquelles l'accès sera plus direct.
- Sous Windows™, il s'agit du Groupe de travail et cette information se trouve dans les Propriétés de l'ordinateur,
- sous Ubuntu, cette information est le paramètre workgroup du fichier de configuration Samba ;
-
l'Ordinateur désigne une machine, identifiée par son nom et sa description (exemple : le modèle et l'emplacement de la machine).
- Sous Windows™, il s'agit du nom de l'ordinateur et de sa description, et ces informations se trouvent dans les propriétés de l'ordinateur,
- sous Ubuntu, le nom de l'ordinateur est un paramètre réseau global, alors que la description se trouve dans le paramètre server string du fichier de configuration Samba ;
- Les Utilisateurs ont accès à des répertoires (contenant des fichiers) ou des ressources (imprimantes, lecteur de CD-Rom).
Pour les utilisateurs de Xubuntu, le partage simple ne fonctionne pas. Suivre cette méthode : shares-admin.
Depuis Ubuntu 12.04 LTS, certains utilisateurs peuvent ne pas réussir à se connecter à un partage Samba. La raison est que la casse doit impérativement être respectée en ce qui concerne le nom de domaine. Par exemple « WORKGROUP » ne sera pas considéré de la même manière que « workgroup ».
Installez le paquet Samba , ou en ligne de commande :
sudo apt-get install samba
II. Accéder à un dossier partagé▲
De base, Ubuntu contient l'essentiel permettant d'accéder à des ressources partagées par un autre ordinateur.
II-A. Accéder à un ordinateur membre d'un même groupe de travail▲
Depuis le bureau Ubuntu cliquez sur Raccourcis (dans la barre de tâche) et choisissez Réseau.
Les ordinateurs de votre groupe de travail sont listés dans cette interface. Sélectionnez l'ordinateur distant de votre groupe de travail pour accéder à ses dossiers partagés. Vous voyez les dossiers partagés par cet ordinateur.
II-B. Accéder à un ordinateur membre d'un groupe de travail différent▲
Les partages SMB et CIFS sont dans la sous-catégorie Réseau Windows
Pour accéder à des ordinateurs d'autres groupes de travail de votre réseau local, allez dans ce dossier. Les groupes de travail de votre réseau local s'affichent ; sélectionnez le groupe de travail dans lequel se trouve l'ordinateur auquel vous désirez accéder. Sélectionnez ensuite l'ordinateur distant pour lequel vous souhaitez accéder à ses ressources. Vous voyez les dossiers partagés par cet ordinateur.
NOTE : les dossiers samba se montent, par défaut, sous Ubuntu 11.04 sous ~/.gvfs
II-C. Partages protégés par mot de passe▲
Certains ordinateurs protègent l'accès à leurs ressources partagées dans un réseau local. Dans ces cas-là, une ou plusieurs de leurs ressources peuvent être restreintes aux utilisateurs disposant d'un compte d'utilisateur dans l'ordinateur distant uniquement. Si une fenêtre d'identification apparaît lorsque vous tentez d'accéder à ordinateur distant ou un dossier partagé, vous devez saisir l'identifiant et le mot de passe de votre compte de l'ordinateur distant.
Si vous n'avez pas de compte d'utilisateur dans l'ordinateur distant auquel vous voulez accéder, contactez votre administrateur réseau afin qu'il vous en crée un.
Les Mots de passe enregistrés sont ensuite gérables dans le menu Gnome>Préférences>Mots de passe et clés de chiffrement
II-C-1. Cas particulier: accéder à un dossier partagé par Windows 7▲
Il est possible que vous ayez de la difficulté à accéder à des dossiers partagés par un ordinateur fonctionnant avec Windows 7, même en saisissant correctement vos informations d'identification du poste distant. Ceci est dû apparemment à une incompatibilité entre les modes de partage de Windows 7 et ceux des précédentes versions de Windows (sur lesquels se base Samba). Pour corriger la situation, vous devez modifier certains paramètres concernant la gestion des partages par Windows 7 :
- Dans votre ordinateur fonctionnant sous Windows 7, ouvrez une session à l'aide d'un compte d'administrateur ;
- Ouvrez l'éditeur de base de registre. Appuyez sur le bouton Démarrer, puis dans le champ Rechercher les programmes ou fichiers, inscrivez regedit et appuyez sur la touche [Entrée] de votre clavier ;
-
Développez l'arborescence jusqu'à la clé de registre HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\ puis :
- modifiez la valeur de la clé everyoneincludesanonymous de 0 vers 1,
- modifiez la valeur de la clé NoLmHash de 1 vers 0 ;
-
Développez l'arborescence jusqu'à la clé de registre HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters, puis :
- modifiez la valeur de la clé restrictnullsessaccess de 1 vers 0 ;
- Redémarrez votre ordinateur.
II-D. Accéder manuellement à un dossier partagé▲
Il est parfois possible qu'un ordinateur distant n'apparaisse pas dans la liste des ordinateurs proposant des ressources partagées. Dans ces cas-là, vous pouvez saisir manuellement les informations de connexion pour accéder au partage distant.
- Ouvrir Nautilus (votre navigateur de fichiers par défaut sur Ubuntu).
- Faites Fichier ? Se connecter à un serveur…
- Dans le menu déroulant de la fenêtre de saisie, choisissez Partage Windows.
- Dans le champ Serveur, entrez l'adresse IP de l'ordinateur du réseau local ou son nom d'ordinateur dans le réseau local.
- Accessoirement, saisissez d'autres informations, comme votre nom d'utilisateur dans le poste distant.
- Appuyez sur le bouton Se connecter pour afficher les dossiers partagés.
Il est possible de créer un lanceur pour monter manuellement un partage Windows. Renseigner l'option Commande du lanceur selon la syntaxe suivante: nautilus smb://MachineDistante/DossierPartagé sous Ubuntu (remplacer nautilus par konqueror sous Kubuntu ou par thunar sous Xubuntu).
II-E. Accéder à un dossier partagé (sous Ubuntu) depuis un poste Windows (réseau local)▲
I. Configuration de Windows XP Aucune configuration particulière n'est à faire sur le poste équipé de Windows (testé avec Windows XP, configuration par défaut : attribution automatique des adresses IP, réseau local Ethernet).
En effet il suffit que ce poste dispose du protocole TCP/IP, lequel est toujours installé par défaut sous Windows.
Or donc, bien vérifier :
connexions réseau> mon interface réseau> propriétés> onglet général>
cette connexion utilise les éléments suivants:
(x) client pour les réseaux Microsoft
(x) tcp/ip
...
II. Pour accéder à un dossier préalablement partagé sous Ubuntu (voir § suivant) :
Aller dans : Favoris réseau > Tout le réseau > Réseau Microsoft Windows > Workgroup
Vous devriez voir votre (vos) machine Ubuntu sous la forme suivante :
« nom_de_machine server (Samba, Ubuntu) »
Ouvrir la machine pour voir les dossiers partagés, et pouvoir y accéder.
Autre façon de procéder :
- Dialogue propose Parcourir, parcourez le chemin indiqué ci-dessus jusqu'au dossier partagé et valider ;
- Dans Favoris réseau, choisissez l'action Ajouter un favori réseau, puis lorsque le xp-bureau.icone.station de travail> connecter un lecteur réseau>
entrer
lecteur : z:\
dossier : \\10.0.0.10\mydir
valider
le cas échéant :
entrer le nom d'utilisateur et le mot de passe:
toto
mysecretpw
et voilà !
ensuite, accéder à la ressource distante sous Samba via le lecteur z:\
- idem que (2), mais en ms script, dans une ms.cmd.box :
net use z: \\10.0.0.10\mydir mysecretpw /user:toto /persistent:no
- idem que (2), mais en bash script, dans une xterm (cygwin) :
#!/bin/bash
ip=10.0.0.10
pw=$2
net use z: \\\\$ip\\mydir $pw /user:toto /persistent:no
echo $?
III. Partager des ressources dans un réseau local▲
Pour partager des dossiers ou des imprimantes (devenir un serveur de partage), des composantes supplémentaires doivent être installées.
III-A. Penser au Pare-feu▲
En cas de problème de connexion, si par exemple, en essayant de parcourir votre réseau, vous obtenez ce message d'erreur: « L'obtention de la liste des partages du serveur a échoué » , regardez la configuration du pare-feu de chaque machine. Vous pouvez consulter ses logs ou le désactiver temporairement, pour vérifier si le problème vient bien de là, avant de le paramétrerPorts liés au partage de fichiers par les protocoles SMB et CIFS pourquoi pas à l'aide d'ufw. Les ports à ouvrir sont indiqués dans le paragraphe Ports liés au partage de fichiers par les protocoles SMB et CIFSPorts liés au partage de fichiers par les protocoles SMB et CIFS
Attention à la sécurité de votre réseau local, si une seule des machines de celui-ci est compromise alors vous n'êtes plus protégés contre une intrusion sur votre propre machine
Si l'erreur « L'obtention de la liste des partages du serveur a échoué » persiste, c'est qu'il n'y a pas de serveur WINS sur votre réseau. Pour activer cette fonction de Samba, éditez le fichier /etc/samba/smb.conf en remplaçant
wins support = no
par
wins support = yes
puis redémarrez Samba
sudo service smbd restart
Sous Ubuntu 11.10, si vous obtenez l'erreur « L'obtention de la liste des partages du serveur a échoué », éditez votre fichier /etc/nsswitch.conf. Remplacez la ligne
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
par
hosts: files mdns4_minimal [NOTFOUND=return] wins dns mdns4
Au reboot, vos partages devraient fonctionner.
III-B. Voir les miniatures sur les partages samba dans nautilus▲
Ouvrir nautilus et aller dans le menu « Fichiers > Préférences > Aperçu ».
Puis indiquer l'option « Toujours » pour « Afficher les vignettes » (par défaut : « Uniquement les fichiers locaux »).
III-C. Partager un dossier personnel (usershares)▲
Vous pouvez facilement partager un répertoire dont vous êtes le propriétaire - ce sont essentiellement les répertoires se trouvant dans votre dossier personnel d'Ubuntu. Ce mode de partage de dossier est appelé partage utilisateur (ou usershare), car il est administré par chacun des utilisateurs de votre système Ubuntu (et non pas d'une manière centralisée). La configuration d'un partage utilisateur se fait très simplement, et les options de partage sont limitées. De ce fait, il est probablement préférable de désactiver la capacité de configurer des partages utilisateur dans une structure complexe (ex. : un réseau d'entreprise) ; toutefois, ce mode est très pratique et pertinent pour un partage simple (ex. : dans un réseau domestique).
Pour configurer un partage utilisateur :
|
Installation de la fonction serveur, lors du premier partage |
|
- Si vous êtes un administrateur, appuyez sur le bouton Installer le service pour procéder à l'installation du service. Vous devrez fermer votre session, une fois l'installation terminée, puis la rouvrir pour prendre en compte ce nouveau service.
- Si vous n'êtes pas un administrateur de l'ordinateur, demandez à un administrateur d'installer le paquet logiciel samba. Ce paquet correspond à la fonctionnalité serveur de Samba. Lorsqu'il sera installé, votre session doit être close puis rouverte pour que le nouveau service soit pris en compte.
==== Attention nom de la machine < 16 caractères ! ====
Pour être visible quand on parcourt le réseau, le nom de la machine (serveur) qui partage un dossier ne doit pas dépasser 15 caractères (et ne peut contenir que des lettres non accentuées, chiffres et signes -). Sinon elle sera accessible uniquement par son adresse IP (et donc invisible autrement). le nom de la machine est dans le fichier « hostname » pour le changer :
sudo nano /etc/hostname
puis se déconnecter, et rouvrir la session.
III-D. Partager un dossier du système de fichiers (shares)▲
Les dossiers partagés, ou partages administratifs (shares), sont gérés de manière centralisée. Ils sont uniquement configurables par les administrateurs du système Ubuntu, et leurs options sont plus complètes. Le paquet supplémentaire samba doit être installé afin de profiter de la fonctionnalité serveur de Samba dans le poste Ubuntu.
La configuration de Samba se fait préférablement manuellement, dans le fichier de configuration /etc/samba/smb.conf. C'est dans ce fichier que vous paramétrez le nom du domaine et le groupe de travail de l'ordinateur, les paramètres de sécurité et les dossiers et imprimantes partagés.
Les partages administratifs peuvent être gérés graphiquement à l'aide de divers outils. Cependant, tous les outils n'offrent pas la possibilité de configurer tous les multiples paramètres de Samba. Ces outils sont fort utiles en complément à une configuration manuelle (par exemple, ajouter des nouveaux partages administratifs ou retirer des partages administratifs d'un serveur Samba déjà configuré). Voici quelques outils graphiques pouvant vous assister dans le paramétrage de vos partages ; leur utilisation propre est décrite dans leur document dédié :
IV. Aller plus loin…▲
IV-A. Désactiver ou limiter les partages utilisateurs▲
Les partages utilisateurs sont bien pratiques dans un milieu domestique. Toutefois, ils peuvent représenter un risque de sécurité dans un environnement contrôlé, telle une entreprise, où la gestion du partage des ressources devrait être confiée à un administrateur réseau. Les partages utilisateurs devraient être désactivés afin que seuls les membres autorisés puissent partager des dossiers à travers un réseau local.
Pour désactiver ou limiter les partages utilisateurs, ouvrez le fichier de configuration de Samba /etc/samba/smb.conf. Localisez la section suivante :
# Maximum number of usershare. 0 (default) means that usershare is disabled.
; usershare max shares = 100
# Allow users who've been granted usershare privileges to create
# public shares, not just authenticated ones
usershare allow guests = yes
- décommentez l'option usershare max shares pour limiter la création de N partages utilisateurs par compte d'utilisateur. Lorsque cette option est commentée, les utilisateurs peuvent créer un nombre illimité de partages utilisateurs ;
- paramétrez l'option usershares max shares à 0 pour qu'aucun compte d'utilisateur ne puisse créer de partage utilisateur ;
- si vous souhaitez autoriser la création de partages utilisateur, mais n'autoriser l'accès qu'aux utilisateurs autorisés (interdire les connexions invitées), paramétrez l'option usershares allow guests à no.
IV-B. Monter manuellement et automatiquement un dossier partagé dans le système de fichiers▲
Il est possible de monter un dossier partagé dans un point de montage de l'arborescence d'un système Ubuntu, tout comme il est possible de le faire avec une partition de disque dur. Ceci est intéressant, par exemple, pour partager des ressources entre plusieurs postes dans une grande entreprise ou pour accéder de manière transparente à un serveur de stockage réseau (Network Attached Storage, ou NAS).
Les tâches suivantes doivent être exécutées par un administrateur. Assurez-vous que le paquet smbfs (ou cifs-utils depuis 12.10) est installé. De plus, assurez-vous de disposer d'un point de montage valide (un répertoire vide dans lequel devra être monté le dossier partagé).
Pour les exemples suivants, nous établirons que :
- le PC distant ou le NAS se nomme MACHINEDISTANTE ;
- le dossier partagé par l'ordinateur distant est Multimedia ;
- le point de montage dans l'ordinateur local est /media/MédiasPartagés/.
IV-B-1. Montage manuel▲
Si aucune authentification n'est requise pour accéder au dossier partagé ou si vous ne possédez pas d'identifiant dans le poste distant :
administrateur@local:~$ sudo mount.cifs //MACHINEDISTANTE/Multimedia /media/MédiasPartagés -o guest
La connexion peut vous être refusée si l'authentification est nécessaire, ou certaines actions peuvent ne pas être disponibles pour vous en tant qu'invité.
Si une authentification dans le poste distant est requise pour accéder au dossier partagé ou pour débloquer certaines actions autorisées pour votre compte dans le poste distant :
administrateur@local:~$ sudo mount.cifs //MACHINEDISTANTE/Multimedia /media/MédiasPartagés -o username=IDENTIFIANT
où IDENTIFIANT est votre identifiant dans le poste distant. Une invite Password: vous permet de saisir le mot de passe de votre compte dans le poste distant.
Depuis la 13.04, il est devenu nécessaire de rajouter l'option sec=ntlmv2 sous peine d'obtenir une erreur de montage. On peut donc s'essayer à
sudo mount -t cifs //MACHINEDISTANTE/Multimedia /media/MédiasPartagés -o guest,rw,nosetuids,sec=ntlmv2
Dans le cas où le nom de partage contient des espaces, on utilisera « \ » pour échapper l'espace. Exemple avec un nom de partage Dossier Multimedia :
administrateur@local:~$ sudo mount.cifs //MACHINEDISTANTE/Dossier\ Multimedia /media/MédiasPartagés -o username=IDENTIFIANT
IV-B-2. Montage automatique▲
Modifiez le fichier /etc/fstab afin d'ajouter une nouvelle règle de montage. Si aucune authentification n'est requise pour accéder au dossier partagé ou si vous ne possédez pas d'identifiant dans le poste distant, inscrivez la règle suivante, sur une seule ligne :
//MACHINEDISTANTE/Multimedia /media/MédiasPartagés cifs _netdev,guest 0 0
La montage peut vous être refusé si l'authentification est nécessaire, ou certaines actions peuvent ne pas être disponibles pour vous en tant qu'invité.
Si une authentification dans le poste distant est requise pour accéder au dossier partagé ou pour débloquer certaines actions autorisées pour votre compte dans le poste distant, inscrivez la règle suivante, sur une seule ligne :
//MACHINEDISTANTE/Multimedia /media/MédiasPartagés cifs _netdev,credentials=/root/.smbcredentials 0 0
De plus, créez un fichier /root/.smbcredentials contenant le texte suivant - et uniquement ce texte-là :
username=IDENTIFIANT
password=MOTDEPASSE
Remplacez IDENTIFIANT par votre identifiant dans le poste distant et MOTDEPASSE par le mot de passe de votre compte dans le poste distant.
Un redémarrage de l'ordinateur est nécessaire pour que le dossier partagé soit monté automatiquement dans le point de montage sélectionné.
(L'option de montage _netdev indique au système d'attendre que la liaison au réseau local soit établie avant de tenter le montage de ce dossier partagé.) Cependant la commande « sudo mount -a » monte automatiquement tous les systèmes de fichiers énumérés dans /etc/fstab immédiatement.
Dans le cas où le nom de partage contient des espaces on remplace les espaces par \040. Exemple avec un nom de partage Dossier Multimedia :
//MACHINEDISTANTE/Dossier\040Multimedia /media/MédiasPartagés cifs _netdev,credentials=/root/.smbcredentials 0 0
Si le nom de la machine distante n'est pas reconnu (le dossier partagé ne remonte pas en dépit d'une syntaxe correcte), remplacer le nom de la machine distante par son adresse IP dans le réseau local (nécessaire par exemple sur un réseau domestique connecté à une Livebox Orange).
Une méthode alternative qui a l'avantage de mieux fonctionner avec une connexion Wi-Fi est proposée en configurant AutoFs pour monter les dossiers partagés.
IV-C. Gérer les accès concurrentiels▲
Par défaut, les utilisateurs ne sont pas notifiés lorsqu'ils accèdent à un fichier déjà ouvert par un autre utilisateur. Pour activer la notification d'un accès concurrentiel, modifiez le fichier (avec les droits d'administration) /etc/samba/smb.conf. Pour chacun des dossiers partagés, ajoutez les deux options suivantes :
strict locking=yes
share modes=no
IV-D. Ports liés au partage de fichiers par les protocoles SMB et CIFS▲
Si vos postes clients et serveur ont de la difficulté à communiquer entre eux, il est possible qu'une des causes soit qu'un logiciel de pare-feu soit installé dans l'un ou l'autre des ordinateurs et que celui-ci bloque les communications entrantes ou sortantes utilisées par Samba. Si tel est votre cas, assurez-vous que votre pare-feu laisse passer les communications sur ces ports ; à ce sujet, reportez-vous au manuel d'administration de votre logiciel de pare-feu.
Voici la liste des ports TCP et UDP utilisés par les protocoles SMB et CIFS pour le partage de fichiers et d'imprimantes.
Port |
Protocole |
Nom du service |
---|---|---|
135 |
TCP et UDP |
Localisateur de services RPC |
137 |
TCP et UDP |
NetBIOS Name Service (nbname) |
138 |
UDP |
NetBIOS Datagram Service (nbdatagram) |
139 |
TCP |
NetBIOS Session Service (nbsession) |
445 |
TCP et UDP |
Services de dossiers partagés Windows |
Configuration du pare-feu par défaut d'Ubuntu
Par défaut, le service de pare-feu UFW est installé et actif dans Ubuntu. à moins d'utiliser un autre logiciel de pare-feu ou d'avoir complètement désactivé UFW, vous devez mettre à jour également la section suivante dans le fichier /etc/default/ufw :
# extra connection tracking modules to load \\
# ajout de nf_conntrack_netbios_ns pour Samba \\
IPT_MODULES="nf_conntrack_ftp nf_nat_ftp nf_conntrack_irc nf_nat_irc nf_conntrack_netbios_ns"
IV-E. Fonctionnement de Samba▲
Le fonctionnement de Samba repose principalement sur trois services (daemons): smbd , nmbd et winbindd. Lors de l'installation des services de Samba, votre système Ubuntu a été configuré automatiquement pour gérer ces services dès le démarrage du système.
- smbd
Ce service est celui qui permet le partage des fichiers et des imprimantes. Son paramétrage se fait par l'intermédiaire du fichier de configuration /etc/samba/smb.conf. smbd vérifie toutes les trois minutes ce fichier pour prendre en compte les modifications ; pour une application immédiate des changements, relancez ce service. - nmbd
Ce service sert à l'envoi et la découverte des noms NetBIOS (nom des machines) dans le réseau local. Il est également utilisé pour la résolution de noms et la fonction WINS, lorsque votre serveur Samba est le serveur d'un réseau NetBIOS. Ses paramètres sont aussi renseignés dans le fichier de configuration /etc/samba/smb.conf. - winbindd
Ce service n'est utilisé que lorsqu'un serveur Samba intègre un domaine NT ou pour gérer les relations d'approbation entre le serveur Samba et un domaine Windows / Active Directory.
V. Ressources supplémentaires▲
- Site officiel (en)
- Samba, le guide de l'administrateur (Éditions Eyrolles)
- Using Samba, Second Edition (en ligne et Amazon)