Tutoriel Linux

Samba sous Linux : partager un dossier sans ouvrir toute la machine

Débutant7 min de lecture
À retenirLinux n'est pas réservé aux experts. Le bon point de départ : une distribution accessible, une sauvegarde propre et quelques commandes comprises.

Installer Samba sous Linux paraît simple au départ : on installe le paquet, on ajoute un partage et on teste depuis un autre poste. Le problème, c’est que beaucoup de guides finissent avec un dossier ouvert trop largement, des droits Linux incohérents ou un partage qui fonctionne seulement parce que tout le monde peut tout écrire.

Ici, je pars sur une méthode volontairement limitée : un dossier dédié, un groupe Linux, un utilisateur Samba, une configuration lisible et des tests avant d’ouvrir le partage au réseau. C’est moins spectaculaire qu’un chmod 777, mais c’est aussi comme ça que vous évitez de transformer votre serveur en dépôt public.

Tux administrateur Linux sécurise un dossier partagé Samba sur un serveur
Samba permet de publier un dossier réseau, à condition de cadrer les droits Linux et l’accès SMB.

Avant d’installer Samba, choisissez ce que vous partagez

Samba sert à exposer un partage SMB depuis Linux, généralement pour des postes Windows, macOS ou Linux. Il peut être utilisé sur un petit serveur, un NAS maison, une VM ou une machine de bureau qui doit partager un dossier précis.

La première décision importante n’est pas la commande d’installation. C’est le périmètre du partage. Je vous conseille de ne pas partager directement /home, / ou un dossier qui contient déjà trop de choses. Créez un répertoire dédié, avec un usage clair.

sudo mkdir -p /srv/partages/equipe

Si votre objectif est de monter un vrai stockage réseau, le guide sur Linux pour un NAS maison complète bien ce point. Samba peut être une brique propre, mais il ne remplace pas une réflexion sur les disques, les sauvegardes et les permissions.

Installer les paquets Samba

Sur Debian ou Ubuntu, installez Samba avec les paquets classiques.

sudo apt update
sudo apt install samba smbclient

Sur Fedora, le service peut s’appeler smb au lieu de smbd selon la distribution et les paquets installés.

sudo dnf install samba samba-client

Sur Arch Linux, installez le paquet samba.

sudo pacman -S samba

Avant de toucher à la configuration, regardez l’état du service. C’est aussi une bonne manière de vérifier le nom utilisé par votre distribution.

systemctl status smbd --no-pager
systemctl status nmbd --no-pager

Si smbd n’existe pas sur votre système, testez smb. Ne copiez pas une commande de redémarrage sans vérifier le service réel, surtout sur un serveur distant.

Créer un groupe et cadrer les droits Linux

Samba ne répare pas des permissions Linux mal posées. Si le compte système ne peut pas lire ou écrire dans le dossier, le partage ne fonctionnera pas correctement. Je préfère commencer par un groupe dédié.

sudo groupadd partage-samba
sudo chgrp partage-samba /srv/partages/equipe
sudo chmod 2770 /srv/partages/equipe

Le 2 dans 2770 active le bit setgid sur le dossier. Les nouveaux fichiers créés dedans garderont le groupe du répertoire. C’est pratique pour un partage d’équipe, car vous évitez rapidement les fichiers créés avec le mauvais groupe.

Ajoutez ensuite l’utilisateur Linux qui doit accéder au partage. Dans cet exemple, j’utilise nathan. Adaptez le nom.

sudo usermod -aG partage-samba nathan
id nathan

Si vous venez d’ajouter l’utilisateur au groupe, une reconnexion peut être nécessaire pour que l’appartenance soit prise en compte dans une session interactive. Pour Samba, le point important reste aussi le compte Samba, que l’on crée juste après.

Ajouter un mot de passe Samba à l’utilisateur

Un compte Linux ne suffit pas toujours. Samba garde sa propre base de mots de passe pour l’authentification SMB. L’utilisateur doit exister côté Linux, puis être ajouté côté Samba.

sudo smbpasswd -a nathan
sudo smbpasswd -e nathan

Évitez de réutiliser un mot de passe faible sous prétexte que le partage reste sur le réseau local. Un partage SMB est souvent visible par plus de machines qu’on ne l’imagine, surtout sur un réseau de bureau ou une box domestique un peu chargée.

Pour relire les utilisateurs Samba connus, vous pouvez utiliser :

sudo pdbedit -L

Déclarer un partage minimal dans smb.conf

Avant de modifier /etc/samba/smb.conf, faites une sauvegarde. Une erreur de syntaxe suffit à casser le service.

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak-$(date +%F-%H%M)
sudo nano /etc/samba/smb.conf

Ajoutez un bloc simple en fin de fichier.

[equipe]
   path = /srv/partages/equipe
   browseable = yes
   read only = no
   valid users = @partage-samba
   force group = partage-samba
   create mask = 0660
   directory mask = 2770

Ce partage autorise les membres du groupe partage-samba. Il ne donne pas un accès invité et il ne rend pas le dossier lisible par tout le monde. C’est le minimum que je garderais pour un partage de travail.

Les options de smb.conf sont nombreuses. Pour aller plus loin, la documentation de smb.conf, smbpasswd et testparm reste la référence utile. Dans un premier partage, je vous conseille surtout de rester lisible.

Tester la configuration avant de redémarrer le service

Ne redémarrez pas Samba à l’aveugle. Lancez d’abord testparm. La commande vérifie la syntaxe et affiche la configuration comprise par Samba.

testparm -s

Si la sortie indique une erreur, corrigez-la avant d’aller plus loin. Si la configuration est propre, rechargez ou redémarrez le service.

sudo systemctl restart smbd
sudo systemctl status smbd --no-pager

Sur certaines distributions, vous devrez utiliser smb.

sudo systemctl restart smb
sudo systemctl status smb --no-pager

Si le service ne repart pas, regardez les journaux avant de modifier trois options au hasard.

journalctl -u smbd -b --no-pager
tail -n 80 /var/log/samba/log.smbd

Le guide sur journalctl au dernier démarrage peut vous aider si vous voulez isoler les erreurs du service au lieu de lire tout le journal système.

Ouvrir le pare-feu seulement si le partage doit sortir de la machine

Si vous testez uniquement en local, inutile d’ouvrir le pare-feu tout de suite. Commencez par vérifier que Samba écoute.

sudo ss -ltnp | grep -E ':139|:445'

Avec UFW, la règle la plus simple est :

sudo ufw allow Samba
sudo ufw status verbose

Mais ne l’appliquez pas mécaniquement sur une machine exposée. SMB n’a pas vocation à être ouvert sur Internet. Sur un VPS ou un serveur public, passez par un VPN, un tunnel privé ou une architecture dédiée. Si vous devez vérifier les ports ouverts, repartez du guide sur ss et netstat sous Linux.

Tester le partage depuis Linux avant de chercher côté client

Avant d’aller sur le poste client, testez déjà depuis le serveur. Cela sépare les problèmes Samba des problèmes réseau ou pare-feu.

smbclient -L localhost -U nathan
smbclient //localhost/equipe -U nathan -c 'ls'

Si ce test échoue en local, ne perdez pas de temps sur Windows ou macOS. Vérifiez l’utilisateur Samba, le groupe Linux, le chemin du partage et les journaux.

Depuis un autre poste Linux, vous pouvez aussi tester l’accès avec l’adresse IP du serveur.

smbclient -L //192.168.1.20 -U nathan
smbclient //192.168.1.20/equipe -U nathan

Remplacez bien 192.168.1.20 par l’adresse de votre serveur. Si le test local fonctionne mais pas le test distant, vous avez probablement un sujet réseau, pare-feu ou résolution de nom.

Les erreurs que je vérifierais en premier

Sur un partage Samba qui refuse de fonctionner, je regarde presque toujours les mêmes points :

  • le dossier existe vraiment et pointe au bon endroit ;
  • l’utilisateur Linux appartient au groupe prévu ;
  • l’utilisateur a bien été ajouté avec smbpasswd -a ;
  • testparm -s ne remonte pas d’erreur ;
  • le service smbd ou smb est actif ;
  • le port 445 écoute et le pare-feu ne bloque pas le réseau local ;
  • les logs Samba ne parlent pas d’un refus de droits sur le chemin réel.

Si votre besoin est seulement de transférer ponctuellement quelques fichiers entre Windows et Linux, un partage Samba permanent n’est pas toujours nécessaire. L’ancien guide sur l’échange de fichiers entre Windows et Linux donne d’autres pistes. Samba devient intéressant quand le partage doit rester disponible, avec des droits maîtrisés et plusieurs clients capables de s’y connecter.

Une fois que tout fonctionne, créez un fichier de test, relisez-le depuis un autre poste, puis supprimez-le. C’est basique, mais cela valide la boucle complète : authentification, droits Linux, écriture Samba, lecture distante et nettoyage. Tant que ce test n’est pas propre, je n’élargirais pas le partage à d’autres utilisateurs.

sudo apt update && sudo apt upgrade