Linux mount SMB share — Virtuozia
En bref : Monter un partage SMB (Samba/Windows) sous Linux s’effectue avec la commande mount -t cifs pour un montage ponctuel, ou via /etc/fstab pour un montage automatique au démarrage du système.Le paquet cifs-utils est le prérequis indispensable : il fournit le pilote noyau CIFS (Common Internet File System) qui implémente le protocole SMB côté client Linux.La gestion sécurisée des identifiants — via un fichier credentials séparé plutôt qu’en clair dans fstab — est une bonne pratique essentielle dans tout environnement professionnel.
Linux mount SMB share : monter un partage réseau Samba en ligne de commande
Le partage de fichiers via le protocole SMB — Server Message Block, protocole réseau développé par Microsoft pour le partage de fichiers, d’imprimantes et de ressources réseau entre machines Windows — est omniprésent dans les environnements d’entreprise. Sous Linux, l’accès à ces partages réseau — qu’ils soient hébergés sur un serveur Windows, un NAS Synology, un serveur Samba ou un NAS QNAP — nécessite quelques commandes précises. Ce guide couvre l’ensemble des méthodes de montage SMB sous Linux : montage ponctuel en ligne de commande, montage permanent via fstab et montage automatique sécurisé avec fichier de credentials.
- Prérequis : installation de cifs-utils
- Montage ponctuel d’un partage SMB avec mount
- Montage permanent via /etc/fstab
- Options avancées et cas d’usage spécifiques
- Questions fréquentes — Linux mount SMB share
Prérequis : installation de cifs-utils
Avant de monter un partage SMB sous Linux, le paquet cifs-utils — Common Internet File System utilities — doit être installé. Il fournit le pilote de système de fichiers CIFS intégré au noyau Linux ainsi que les utilitaires en espace utilisateur nécessaires au montage de partages SMB via mount -t cifs. Sans ce paquet, la commande mount retourne une erreur « unknown filesystem type ‘cifs' ».
# Installation de cifs-utils selon la distribution # Debian / Ubuntu / Linux Mint sudo apt update && sudo apt install cifs-utils # Fedora / CentOS / RHEL 8+ sudo dnf install cifs-utils # CentOS / RHEL 7 sudo yum install cifs-utils # Arch Linux / Manjaro sudo pacman -S cifs-utils # openSUSE / SLES sudo zypper install cifs-utils # Vérification de l'installation mount.cifs --version
Comprendre le protocole SMB/CIFS sous Linux
SMB — Server Message Block — est le protocole réseau qui sous-tend le partage de fichiers Windows depuis les années 1980. Microsoft a renommé SMB en CIFS — Common Internet File System — pour la version SMB 1.0 dans les années 1990, et le terme « CIFS » est resté dans la terminologie Linux même si les versions modernes utilisent SMB 2.x et SMB 3.x. Le module noyau Linux cifs.ko implémente le client SMB/CIFS et supporte les versions SMB 1.0, 2.0, 2.1, 3.0, 3.0.2, 3.1.1. SMB 1.0 est désactivé par défaut dans les environnements sécurisés modernes en raison de vulnérabilités critiques (notamment l’exploit EternalBlue utilisé par le ransomware WannaCry). Veillez à utiliser SMB 2.x ou SMB 3.x dans vos configurations de production.
Outils de diagnostic préalables
# Tester la connectivité réseau vers le serveur SMB ping 192.168.1.100 ping serveur-fichiers.domaine.local # Lister les partages disponibles sur un serveur (smbclient) sudo apt install smbclient # si non installé smbclient -L //192.168.1.100 -U votre_utilisateur smbclient -L //serveur-fichiers -U DOMAINE\\utilisateur # Vérifier que le port SMB est accessible (445 = SMB moderne, 139 = NetBIOS) nc -zv 192.168.1.100 445 nmap -p 445 192.168.1.100 # Résolution du nom NetBIOS si la résolution DNS échoue nmblookup NOMSERVEUR
Montage ponctuel d’un partage SMB avec mount
Le montage ponctuel — temporaire, non persistant après redémarrage — est utile pour tester l’accès à un partage, effectuer des opérations ponctuelles sur des fichiers distants ou diagnostiquer des problèmes de connectivité. Il s’effectue avec la commande mount exécutée avec les droits root (sudo).
Syntaxe de base du montage SMB
# Syntaxe générale
sudo mount -t cifs //SERVEUR/PARTAGE /POINT_DE_MONTAGE -o OPTIONS
# Création du point de montage (répertoire local)
sudo mkdir -p /mnt/partage_reseau
# Montage avec identifiants en ligne de commande (déconseillé en production)
sudo mount -t cifs //192.168.1.100/documents /mnt/partage_reseau \
-o username=votre_utilisateur,password=votre_mot_de_passe
# Montage en demandant le mot de passe interactivement (plus sûr)
sudo mount -t cifs //192.168.1.100/documents /mnt/partage_reseau \
-o username=votre_utilisateur
# Montage avec nom de serveur au lieu de l'IP (si DNS/NetBIOS configuré)
sudo mount -t cifs //serveur-fichiers/documents /mnt/docs \
-o username=alice,password=MotDePasse123
# Montage d'un partage Windows avec domaine Active Directory
sudo mount -t cifs //192.168.1.100/partage /mnt/partage \
-o username=alice,password=MotDePasse123,domain=MONDOMAINE
# Montage d'un accès invité (sans authentification)
sudo mount -t cifs //192.168.1.100/public /mnt/public \
-o guest
# Vérification du montage
df -h /mnt/partage_reseau
ls -la /mnt/partage_reseau
mount | grep cifs
Options de montage SMB courantes
# Option uid et gid : définir le propriétaire des fichiers montés
# (nécessaire pour que l'utilisateur non-root puisse écrire)
sudo mount -t cifs //192.168.1.100/partage /mnt/partage \
-o username=alice,password=MDP,uid=$(id -u),gid=$(id -g)
# Option file_mode et dir_mode : permissions des fichiers et dossiers
sudo mount -t cifs //192.168.1.100/partage /mnt/partage \
-o username=alice,password=MDP,uid=1000,gid=1000,\
file_mode=0664,dir_mode=0775
# Spécifier la version SMB explicitement
# (recommandé pour forcer SMB2+ et éviter SMB1)
sudo mount -t cifs //192.168.1.100/partage /mnt/partage \
-o username=alice,password=MDP,vers=3.0
# Tableau des versions SMB supportées
# vers=1.0 → SMB 1.0/CIFS (désactivé par défaut sur systèmes récents, INSÉCURE)
# vers=2.0 → SMB 2.0 (Windows Vista/Server 2008)
# vers=2.1 → SMB 2.1 (Windows 7/Server 2008 R2)
# vers=3.0 → SMB 3.0 (Windows 8/Server 2012)
# vers=3.02 → SMB 3.0.2 (Windows 8.1/Server 2012 R2)
# vers=3.1.1 → SMB 3.1.1 (Windows 10/Server 2016+)
# vers=default → négociation automatique (recommandé sauf problème)
# Montage avec cache désactivé (pour les fichiers partagés en temps réel)
sudo mount -t cifs //192.168.1.100/partage /mnt/partage \
-o username=alice,password=MDP,cache=none
# Montage en lecture seule (ro)
sudo mount -t cifs //192.168.1.100/partage /mnt/partage \
-o username=alice,password=MDP,ro
Démontage d’un partage SMB
# Démonter le partage (chemin du point de montage) sudo umount /mnt/partage_reseau # Si "target is busy" : trouver les processus utilisant le montage lsof /mnt/partage_reseau fuser -m /mnt/partage_reseau # Forcer le démontage (à utiliser avec précaution) sudo umount -l /mnt/partage_reseau # lazy unmount (différé) sudo umount -f /mnt/partage_reseau # force (si serveur inaccessible) # Vérifier qu'il n'y a plus de montages CIFS actifs mount | grep cifs
🔍 Analyse
Lorsqu’un montage SMB échoue avec l’erreur « mount error(13): Permission denied », trois causes sont fréquentes. Les identifiants sont incorrects — vérifiez le nom d’utilisateur (sensible à la casse), le mot de passe et le nom de domaine. Le serveur requiert une version SMB spécifique — ajoutez explicitement vers=2.1 ou vers=3.0 selon le serveur. Les permissions du partage côté serveur n’autorisent pas l’utilisateur — vérifiez les ACL du partage Windows ou la configuration smb.conf de Samba. L’erreur « mount error(115): Operation now in progress » indique un problème réseau ou de pare-feu bloquant le port 445.
Montage permanent via /etc/fstab
Le montage permanent — persistant après redémarrage — s’effectue en ajoutant une entrée dans le fichier /etc/fstab. Ce fichier — File System TABle — liste les systèmes de fichiers à monter automatiquement au démarrage du système. La configuration correcte d’un partage SMB dans fstab est plus complexe qu’un montage ponctuel car elle doit gérer les identifiants de manière sécurisée et anticiper les situations où le réseau n’est pas disponible au moment du montage.
Créer un fichier de credentials sécurisé
La pratique recommandée pour stocker les identifiants SMB dans fstab est d’utiliser un fichier de credentials séparé plutôt que d’inclure le nom d’utilisateur et le mot de passe en clair dans /etc/fstab. Ce fichier, accessible uniquement par root, centralise les identifiants et évite leur exposition dans le fichier fstab qui est généralement lisible par tous les utilisateurs du système.
# Créer le fichier de credentials sudo nano /etc/samba/credentials_partage # Contenu du fichier (un paramètre par ligne, sans espaces autour du =) username=votre_utilisateur password=votre_mot_de_passe domain=MONDOMAINE # optionnel : pour les environnements Active Directory # Sécuriser les permissions : lecture uniquement par root sudo chmod 600 /etc/samba/credentials_partage sudo chown root:root /etc/samba/credentials_partage # Vérification des permissions (doit afficher -rw-------) ls -la /etc/samba/credentials_partage
Configurer /etc/fstab pour un montage SMB permanent
# Sauvegarder fstab avant modification (bonne pratique) sudo cp /etc/fstab /etc/fstab.backup # Ouvrir fstab pour modification sudo nano /etc/fstab # ─── Structure d'une entrée fstab SMB ─────────────────────────────────────── # //SERVEUR/PARTAGE /POINT_DE_MONTAGE cifs OPTIONS 0 0 # Exemple 1 : montage standard avec fichier de credentials //192.168.1.100/documents /mnt/documents cifs credentials=/etc/samba/credentials_partage,uid=1000,gid=1000,file_mode=0664,dir_mode=0775 0 0 # Exemple 2 : avec auto-détection de version SMB et montage différé au démarrage //192.168.1.100/partage /mnt/partage cifs credentials=/etc/samba/credentials_partage,uid=1000,gid=1000,iocharset=utf8,_netdev 0 0 # Exemple 3 : avec environnement Active Directory //serveur.domaine.local/partage /mnt/partage cifs credentials=/etc/samba/credentials_partage,domain=DOMAINE,uid=1000,gid=1000,vers=3.0 0 0 # ─── Explication des champs fstab ─────────────────────────────────────────── # Champ 1 : //SERVEUR/PARTAGE → chemin UNC du partage SMB # Champ 2 : /mnt/partage → point de montage local (doit exister) # Champ 3 : cifs → type de système de fichiers # Champ 4 : OPTIONS → options de montage (voir ci-dessous) # Champ 5 : 0 → dump (toujours 0 pour CIFS) # Champ 6 : 0 → fsck (toujours 0 pour CIFS) # ─── Options fstab SMB importantes ───────────────────────────────────────── # credentials=/chemin/fichier → fichier d'identifiants sécurisé # uid=1000 → UID de l'utilisateur propriétaire # gid=1000 → GID du groupe propriétaire # file_mode=0664 → permissions des fichiers (octal) # dir_mode=0775 → permissions des répertoires (octal) # iocharset=utf8 → encodage des caractères (noms de fichiers) # vers=3.0 → version SMB (3.0, 2.1, 2.0) # _netdev → attend la disponibilité réseau avant montage # noauto → ne pas monter automatiquement au démarrage # x-systemd.automount → montage automatique au premier accès (systemd) # x-systemd.idle-timeout=60 → démontage après 60s d'inactivité (systemd) # ro → lecture seule # nofail → ne pas bloquer le démarrage si montage échoue
Tester et appliquer la configuration fstab
# Créer le point de montage s'il n'existe pas sudo mkdir -p /mnt/documents sudo mkdir -p /mnt/partage # Tester le montage sans redémarrer (monte toutes les entrées fstab non encore montées) sudo mount -a # Tester un point de montage spécifique depuis fstab sudo mount /mnt/documents # Vérifier que le montage est actif df -h | grep cifs mount | grep cifs ls /mnt/documents # Vérifier les erreurs éventuelles dans les journaux système sudo journalctl -xe | grep -i cifs sudo journalctl -xe | grep -i mount dmesg | grep -i cifs
⚠️ Point de vigilance
Une erreur dans /etc/fstab peut empêcher le système de démarrer correctement, particulièrement si l’option nofail n’est pas spécifiée et que le serveur SMB est inaccessible au démarrage (réseau non disponible, serveur éteint). Incluez systématiquement l’option _netdev (attend la disponibilité réseau) et nofail (ne bloque pas le démarrage en cas d’échec) pour les partages réseau dans fstab. Testez toujours la configuration avec sudo mount -a avant de redémarrer le système. Si le système ne démarre plus à cause de fstab, vous pouvez passer en mode de récupération (recovery mode) et commenter la ligne problématique.
Options avancées et cas d’usage spécifiques
Selon l’environnement — NAS domestique, serveur Windows en entreprise, domaine Active Directory, environnement systemd — des configurations spécifiques améliorent la fiabilité et les performances du montage SMB.
Montage automatique à la demande avec systemd.automount
Le montage automatique à la demande — automount — présente un avantage majeur par rapport au montage au démarrage : le partage n’est monté que lorsqu’un processus tente d’y accéder, et peut être démonté automatiquement après une période d’inactivité. Cela évite les problèmes de démarrage liés à l’indisponibilité du serveur réseau et réduit la consommation de ressources pour les partages peu utilisés.
# Configuration fstab avec automount systemd
# (le partage est monté à la première utilisation et démonté après inactivité)
//192.168.1.100/partage /mnt/partage cifs \
credentials=/etc/samba/credentials_partage,\
uid=1000,gid=1000,\
_netdev,nofail,\
x-systemd.automount,\
x-systemd.mount-timeout=30,\
x-systemd.idle-timeout=300 0 0
# Après modification de fstab avec automount, recharger systemd
sudo systemctl daemon-reload
# Vérifier les unités de montage systemd
systemctl list-units --type=mount
systemctl list-units --type=automount
Montage SMB dans un environnement Active Directory
# Montage avec authentification Kerberos (si la machine Linux est jointe au domaine)
# Prérequis : paquets krb5-user, sssd ou winbind installés et configurés
# Obtenir un ticket Kerberos
kinit utilisateur@DOMAINE.LOCAL
# Montage avec authentification Kerberos (sec=krb5)
sudo mount -t cifs //serveur.domaine.local/partage /mnt/partage \
-o sec=krb5,vers=3.0
# Montage avec authentification NTLMv2 (sans Kerberos)
sudo mount -t cifs //serveur.domaine.local/partage /mnt/partage \
-o username=utilisateur,password=MDP,domain=DOMAINE,\
sec=ntlmssp,vers=3.0
# Fichier credentials pour environnement AD
# /etc/samba/credentials_ad :
username=utilisateur
password=MotDePasse
domain=DOMAINE
# Entrée fstab pour AD
//serveur.domaine.local/partage /mnt/partage cifs \
credentials=/etc/samba/credentials_ad,\
domain=DOMAINE,uid=1000,gid=1000,\
sec=ntlmssp,vers=3.0,_netdev,nofail 0 0
Diagnostic et résolution des erreurs courantes
# ─── Erreurs courantes et solutions ─────────────────────────────────────────
# Erreur : mount error(13): Permission denied
# → Identifiants incorrects ou permissions insuffisantes côté serveur
# → Tester avec smbclient pour isoler le problème :
smbclient //192.168.1.100/partage -U utilisateur
# Erreur : mount error(6): No such device or address
# → Le partage n'existe pas sur le serveur ou le nom est incorrect
# → Lister les partages disponibles :
smbclient -L //192.168.1.100 -U utilisateur
# Erreur : mount error(112): Host is down
# → Problème réseau ou serveur inaccessible
# → Vérifier la connectivité :
ping 192.168.1.100 && nc -zv 192.168.1.100 445
# Erreur : mount error(95): Operation not supported
# → Version SMB incompatible (souvent SMB1 désactivé côté serveur)
# → Spécifier explicitement la version :
sudo mount -t cifs //192.168.1.100/partage /mnt/p -o username=user,vers=2.1
# Erreur : mount error(22): Invalid argument
# → Option de montage incorrecte ou non supportée
# → Vérifier la syntaxe des options, retirer les options une par une
# Activer les logs de debug CIFS pour diagnostic avancé
echo 7 | sudo tee /proc/fs/cifs/cifsFYI
# (désactiver après diagnostic)
echo 0 | sudo tee /proc/fs/cifs/cifsFYI
# Voir les statistiques CIFS en temps réel
cat /proc/fs/cifs/Stats
# Montage en mode verbeux pour déboguer
sudo mount -t cifs //192.168.1.100/partage /mnt/partage \
-o username=user,password=MDP,vers=3.0 -vvv 2>&1 | tee /tmp/mount_debug.log
Script Bash complet de montage SMB avec gestion d’erreurs
#!/bin/bash
# Script de montage SMB robuste avec vérifications
# Usage : ./mount_smb.sh [monter|demonter]
SERVEUR="192.168.1.100"
PARTAGE="documents"
POINT_MONTAGE="/mnt/documents"
CREDENTIALS="/etc/samba/credentials_partage"
VERSION_SMB="3.0"
UID_USER=$(id -u)
GID_USER=$(id -g)
monter() {
# Vérifier que le point de montage existe
if [ ! -d "$POINT_MONTAGE" ]; then
echo "Création du point de montage : $POINT_MONTAGE"
sudo mkdir -p "$POINT_MONTAGE"
fi
# Vérifier si déjà monté
if mount | grep -q "$POINT_MONTAGE"; then
echo "Le partage est déjà monté sur $POINT_MONTAGE"
return 0
fi
# Tester la connectivité réseau
if ! ping -c 1 -W 3 "$SERVEUR" &>/dev/null; then
echo "ERREUR : Serveur $SERVEUR inaccessible"
return 1
fi
# Monter le partage
echo "Montage de //$SERVEUR/$PARTAGE sur $POINT_MONTAGE..."
sudo mount -t cifs "//$SERVEUR/$PARTAGE" "$POINT_MONTAGE" \
-o "credentials=$CREDENTIALS,uid=$UID_USER,gid=$GID_USER,\
vers=$VERSION_SMB,iocharset=utf8,file_mode=0664,dir_mode=0775"
if [ $? -eq 0 ]; then
echo "✓ Partage monté avec succès"
df -h "$POINT_MONTAGE"
else
echo "✗ Échec du montage"
return 1
fi
}
demonter() {
if ! mount | grep -q "$POINT_MONTAGE"; then
echo "Aucun partage monté sur $POINT_MONTAGE"
return 0
fi
echo "Démontage de $POINT_MONTAGE..."
sudo umount "$POINT_MONTAGE"
if [ $? -eq 0 ]; then
echo "✓ Démontage réussi"
else
echo "✗ Échec du démontage (processus actifs ?)"
lsof "$POINT_MONTAGE" 2>/dev/null
return 1
fi
}
case "${1:-monter}" in
monter) monter ;;
demonter) demonter ;;
*) echo "Usage : $0 [monter|demonter]" ; exit 1 ;;
esac
✅ À retenir
La configuration minimale et sécurisée d’un partage SMB permanent sous Linux repose sur quatre éléments : un fichier de credentials séparé avec permissions 600 (root uniquement), les options _netdev et nofail dans fstab pour la robustesse au démarrage, la spécification explicite de vers=3.0 pour éviter SMB1, et les options uid/gid pour que l’utilisateur non-root puisse lire et écrire les fichiers montés. Ces quatre éléments couvrent la grande majorité des cas d’usage en environnement professionnel.
Questions fréquentes — Linux mount SMB share
Quelle est la différence entre SMB et CIFS sous Linux ?
CIFS — Common Internet File System — est le nom que Microsoft a donné à SMB 1.0 dans les années 1990. Sous Linux, le type de système de fichiers utilisé dans la commande mount est toujours -t cifs quel que soit la version de SMB utilisée (1.0, 2.x ou 3.x), car c’est le nom du module noyau Linux qui implémente le client SMB. Le terme « CIFS » dans les commandes Linux est donc une dénomination historique qui s’applique à toutes les versions du protocole SMB, y compris les versions modernes SMB 2.1 et SMB 3.1.1. En pratique, utiliser -t cifs avec l’option vers=3.0 monte un partage SMB 3.0 — le terme « CIFS » dans la commande ne signifie pas que SMB 1.0 sera utilisé.
Comment monter un partage SMB sans droits root sous Linux ?
Il est possible de permettre aux utilisateurs non-root de monter des partages SMB via deux approches. La première consiste à utiliser mount.cifs avec le bit setuid — en ajoutant l’option users ou user dans fstab, les utilisateurs peuvent monter et démonter le partage sans sudo. La seconde, plus moderne, consiste à utiliser GVFS — GNOME Virtual File System — ou les outils d’environnement de bureau (Nautilus sur GNOME, Dolphin sur KDE) qui gèrent le montage SMB côté utilisateur via des mécanismes de proxy comme gvfsd-smb. Ces interfaces graphiques permettent de parcourir et de monter des partages SMB via smb://192.168.1.100/partage dans la barre d’adresse du gestionnaire de fichiers sans aucune commande root.
Comment accéder à un partage SMB depuis Linux sans le monter dans le système de fichiers ?
L’outil smbclient — du paquet éponyme — permet d’accéder à un partage SMB via une interface similaire à FTP, sans point de montage. Il est utile pour des transferts ponctuels, la vérification des accès ou le listage du contenu d’un partage. La commande smbclient //192.168.1.100/partage -U utilisateur ouvre une session interactive. Des commandes comme ls, get fichier.txt, put fichier.txt, cd repertoire permettent de naviguer et de transférer des fichiers. Pour des transfers scriptés, la commande smbclient //192.168.1.100/partage -U utilisateur%motdepasse -c "get fichier.txt /tmp/fichier.txt" effectue un téléchargement non-interactif.
Comment résoudre le problème « NT_STATUS_ACCESS_DENIED » avec mount.cifs ?
L’erreur NT_STATUS_ACCESS_DENIED (traduite par mount error(13): Permission denied) peut avoir plusieurs origines. Les identifiants sont incorrects — vérifiez le format du nom d’utilisateur (avec ou sans domaine : DOMAINE\\utilisateur), l’exactitude du mot de passe et la casse. Le compte est verrouillé ou expiré côté serveur Windows — vérifiez dans Active Directory ou la gestion des comptes locaux Windows. Les permissions du partage côté serveur n’autorisent pas cet utilisateur — vérifiez les ACL du partage et les permissions NTFS sur le dossier partagé. La version SMB négociée est incompatible — testez avec vers=2.1 puis vers=3.0 explicitement. Si les identifiants contiennent des caractères spéciaux, placez-les dans un fichier credentials plutôt qu’en ligne de commande pour éviter les problèmes d’interprétation du shell.
Le montage de partages SMB sous Linux est une compétence essentielle pour les administrateurs système et les utilisateurs Linux en environnement d’entreprise. La commande fondamentale sudo mount -t cifs //SERVEUR/PARTAGE /mnt/point -o username=user,password=MDP couvre le montage ponctuel de diagnostic. Pour un montage permanent robuste et sécurisé, la combinaison d’un fichier de credentials (chmod 600), d’une entrée fstab avec les options credentials=, _netdev, nofail, vers=3.0 et les uid/gid appropriés constitue la configuration de référence. L’option x-systemd.automount est à privilégier pour les environnements systemd modernes afin de bénéficier d’un montage à la demande qui évite les problèmes de démarrage liés à l’indisponibilité transitoire du réseau.