Samba est un serveur SMB libre et disponible sur Linux.
Le protocole SMB permet de partager des fichiers, répertoires et imprimantes sur un réseau local. Ceci permet d'accéder aux ressources d'une machine ou connectées à elle (répertoires de données et imprimantes, support de stockage connecté à une box, NAS, etc.), à partir d'un autre appareil situé sur un même réseau local (réseau domestique ou d'entreprise).
SMB dispose de sa page de documentation dédiée.
Le logiciel Samba permet de partager des données et des imprimantes sur un réseau local, à destination d'autres machines fonctionnant avec n'importe que système d'exploitation ordinaire : Windows, macOS, Linux, Android, iOS, *BSD, Solaris, etc.
Pour accéder à des partages SMB avec Ubuntu, il est inutile d'installer Samba. GNOME Fichiers sait accéder nativement à ces partages, c'est aussi le cas de nombreuses autres applications telles que VLC, etc.
À ce sujet n'hésitez pas à consulter la page concernant SMB et ses clients !
Dans l'ensemble des articles concernant les réseaux, retenez ces quelques notions :
workgroup du fichier de configuration Samba.server string du fichier de configuration Samba.WORKGROUP ne sera pas considéré de la même manière que workgroup.-).
Sans quoi elle sera accessible uniquement par son adresse IP (et donc invisible autrement).
Pour le nom de la machine voir hosts.
Sans ce nommage, on pourra rencontrer des problèmes du type :
Your hostname could not be resolved , pour plus d'infos, voir aussi zeroconf.
Pour utiliser le serveur Samba, installez le paquet samba. Vous pouvez également gérer le partage grâce à des interfaces graphiques pour Samba, le plus simple est system-config-samba, une autre possibilité plus avancée est gsambad.
Pour accéder à des partages SMB avec Ubuntu, n'hésitez pas à consulter la page concernant SMB et ses clients !
Pour partager des dossiers ou des imprimantes (devenir un serveur de partage), des composantes supplémentaires doivent être installées.
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 au sein d'une structure complexe (ex : un réseau d'entreprise) ; toutefois, ce mode est très pratique et pertinent pour un partage simple (ex : sur un réseau domestique).
Pour pouvoir partager des répertoires ou des fichiers sur votre réseau local, il faut dans un premier temps installer le paquet nautilus-share (si vous utilisez GNOME).
Il faut ensuite ajouter votre utilisateur courant au groupe sambashare pour l'autoriser à créer de nouveaux partages.
Vous pouvez le faire simplement avec la commande :
sudo usermod -aG sambashare $USER
puis redémarrez.
Vous pouvez ensuite partager des répertoires ou des fichiers :
nautilus-share, si vous utilisez GNOME, et caja-share, si vous utilisez MATE.sudo smbpasswd -a nom_utilisateur
Si vous obtenez un message d'erreur relatif à un problème de permissions, assurez vous que l'utilisateur appartienne bien au groupe sambashare (voir paragraphe ci-dessus).
Installation de la fonction serveur, lors du premier partage
La toute première fois que vous souhaitez partager un dossier personnel, votre gestionnaire de fichiers Nautilus vous informe que le service de partage n'est pas encore installé. Seul un administrateur du système peut procéder à l'installation de cette composante supplémentaire.
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./etc/samba/smb.conf, mais il va créer un fichier par dossier partagé dans /var/lib/samba/usershares qui ressemble à :
#VERSION 2 path=/paht/to/folder comment= usershare_acl=S-1-1-0:F guest_ok=y sharename=nom-partage_SMB
N'essayez pas de faire des modifications dans /etc/samba/smb.conf en parallèle si le partage via Nautilus ne fonctionne pas. Il vaut mieux supprimer les fichiers qu'il a créer et faire quelque chose de propre dans /etc/samba/smb.conf comme par exemple :
[linuxsharename] path=/path/to/folder force user = votre_login_Ubuntu public = yes guest ok = yes writable = yes
Puis relancer le service :
sudo systemctl restart smbd
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 SMB sur le poste Ubuntu.
La configuration de Samba peut se faire :

Ouvrir nautilus et aller dans le menu Éditions → Préférences → Aperçu. Puis indiquez l'option Toujours pour Afficher les vignettes (par défaut : "Uniquement les fichiers locaux"). Vous pouvez faire de même pour les Dossiers.
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étrer par exemple à 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 CIFS.
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, Ouvrez le fichier /etc/samba/smb.conf en remplaçant:
wins support = no
par:
wins support = yes
puis redémarrez Samba
sudo systemctl restart smbd
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é, tel 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
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 ;usershares max shares à 0 pour qu'aucun compte d'utilisateur ne puisse créer de partage utilisateur ;usershares allow guests à no.
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 /etc/samba/smb.conf, avec les droits d'administration. Pour chacun des dossiers partagés, ajoutez les deux options suivantes :
strict locking=yes share modes=no
Vous trouverez un complément d'informations (en anglais) ici et là
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.
/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 !/etc/samba/smb.conf.
Bien que robuste, en cas de soucis, vous pouvez allez voir les fichiers log qui se trouvent dans
/var/log/samba/ dont le fichier log.%m spécifié par le paramètre log file de smb.conf.
Quand on veut accéder depuis Windows 7 ou 8 à un dossier partagé par Ubuntu avec des restrictions de droits, une fenêtre demandant l'autorisation apparaît. Il faut simplement donner le nom d'utilisateur Linux et son mot de passe associé pour accéder au dossier partagé. Si vous n'arrivez à accéder au dossier partagé, il s'agit probablement d'un niveau de sécurité trop élevé demandé par Windows par défaut. Pour résoudre cela, Suivez la procédure suivante :
%windir%\system32\secpol.msc /s),Envoyer LM et NTLM – utiliser NTLMv2 si négocié,Contributeurs : les contributeurs d'Ubuntu-fr, Gogy, julientux, krodelabestiole.