Linux

Samba — Partage de fichiers Windows/Linux

Installer et configurer Samba pour créer des partages réseau accessibles depuis Windows et Linux.

← Retour aux tutoriels Linux
📚 C'est quoi Samba ? Samba est une implémentation libre du protocole SMB/CIFS (le protocole de partage de fichiers de Windows). Il permet à un serveur Linux de partager des fichiers et imprimantes avec des machines Windows, macOS et Linux. C'est la solution standard pour l'interopérabilité réseau entre Windows et Linux.
ⓘ Prérequis Un serveur Debian/Ubuntu avec accès root — Un réseau local avec des machines Windows et/ou Linux.

Installer Samba

# Installer Samba et les outils
sudo apt update
sudo apt install samba samba-common-bin -y

# Vérifier l'installation
samba --version

# Vérifier le statut du service
sudo systemctl status smbd
sudo systemctl status nmbd

Créer un partage public (sans authentification)

Créer le répertoire partagé

sudo mkdir -p /srv/partage-public
sudo chmod 777 /srv/partage-public

Configurer Samba

# Sauvegarder la config d'origine
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

# Éditer la configuration
sudo nano /etc/samba/smb.conf

Ajouter à la fin du fichier :

[Public]
   comment = Partage public
   path = /srv/partage-public
   browsable = yes
   writable = yes
   guest ok = yes
   read only = no
   create mask = 0777
   directory mask = 0777

Tester et redémarrer

# Vérifier la syntaxe de la configuration
testparm

# Redémarrer Samba
sudo systemctl restart smbd nmbd

Créer un partage sécurisé (avec authentification)

Créer un utilisateur Samba

# Créer un utilisateur système (s'il n'existe pas déjà)
sudo useradd -M -s /usr/sbin/nologin smbuser

# Définir le mot de passe Samba (différent du mot de passe système)
sudo smbpasswd -a smbuser

# Activer l'utilisateur
sudo smbpasswd -e smbuser

Créer le répertoire sécurisé

sudo mkdir -p /srv/partage-securise
sudo chown smbuser:smbuser /srv/partage-securise
sudo chmod 770 /srv/partage-securise

Ajouter le partage dans smb.conf

[Securise]
   comment = Partage sécurisé
   path = /srv/partage-securise
   browsable = yes
   writable = yes
   guest ok = no
   valid users = smbuser
   create mask = 0770
   directory mask = 0770
# Redémarrer après modification
sudo systemctl restart smbd

Accéder au partage

Depuis Windows

# Dans l'Explorateur de fichiers, taper dans la barre d'adresse :
\\IP_DU_SERVEUR\Public
\\IP_DU_SERVEUR\Securise

Depuis Linux

# Installer le client SMB
sudo apt install cifs-utils -y

# Monter le partage public
sudo mount -t cifs //IP_DU_SERVEUR/Public /mnt/partage -o guest

# Monter le partage sécurisé
sudo mount -t cifs //IP_DU_SERVEUR/Securise /mnt/securise -o username=smbuser

Montage automatique au démarrage (fstab)

# Créer un fichier de credentials (sécurisé)
sudo nano /root/.smbcredentials

Contenu :

username=smbuser
password=Password
# Sécuriser le fichier
sudo chmod 600 /root/.smbcredentials

# Ajouter dans /etc/fstab :
# //IP_DU_SERVEUR/Securise /mnt/securise cifs credentials=/root/.smbcredentials,uid=1000,gid=1000 0 0

Pare-feu et vérification

Ouvrir les ports Samba

# Avec UFW
sudo ufw allow samba

# Ou manuellement
sudo ufw allow 139/tcp
sudo ufw allow 445/tcp

Commandes de diagnostic

# Lister les partages disponibles
smbclient -L //localhost -N

# Lister les utilisateurs Samba
sudo pdbedit -L

# Voir les connexions actives
sudo smbstatus

# Tester la configuration
testparm -s
✔ Résultat Samba est configuré avec un partage public et un partage sécurisé par authentification. Les machines Windows et Linux du réseau peuvent accéder aux fichiers partagés.