# Monter un partage CIFS (SMB) sur votre système Linux Cet article explique comment monter un partage Windows sur Linux via le protocole SMB (**S**erver **M**essage **B**lock). SMB est un **protocole client-serveur** qui permet d'**accéder à des ressources via le réseau** par exemple : des fichiers, des dossiers, ou des imprimantes partagées. Le protocole propriétaire SMB de Microsoft est pris en charge par défaut sous Windows. Sous Linux, l'accès à un partage SMB implique l'installation d'un paquet spécifique nommé samba. > [!info] À savoir !<span style="font-weight: normal; color: var(--text-normal)"> Le protocole SMB a porté plusieurs noms selon les versions. Pour cette raison, il n'est par rare de parler de SMB, CIFS ou SMB-CIFS (surtout en environnement Linux).</span> # Prérequis Pour réaliser ce tutoriel, vous avez besoin de 2 machines connectées sur le même réseau local : - Sous Microsoft Windows 10 ou 11. - Créer un compte local, utilisateur standard, nommé "*fabien*". - Créer un partage Windows nommé "*Windows-Share*". - Configurer les permissions de partage sur autoriser les modifications pour "*fabien*". - Une machine Linux de type Debian 12 avec ou sans environnement de bureau (gnome ou autre). - Les deux machines doivent être connectées au même réseau local, par exemple : 192.168.1.0/24. > [!danger] Attention !<span style="font-weight: normal; color: var(--text-normal)"> Ce tutoriel n'explique pas comment partager un dossier sous Windows.</span> Pour accéder au partage Windows depuis la machine Debian 12, il faut installer le paquet "*cifs-utils*" nécessaire pour monter un partage SMB (CIFS). - Ouvrir une session non-root sous Debian 12. - Ouvrir un terminal et exécutez les commandes suivantes. ``` sudo apt-get update sudo apt-get install cifs-utils -y ``` Pour accéder au partage réseau nommé "*Windows-Share*", il faut au préalable définir un point de montage local sur la machine Linux. > [!info] À savoir !<span style="font-weight: normal; color: var(--text-normal)"> Un point de montage sous Linux est un dossier local que le système Linux va pouvoir associer à une ressource. Par exemple : le contenu d'un DVD ou d'un dossier partagé. </span> Il convient donc de créer un répertoire qui servira à mapper le partage distant. Dans cet exemple, nous allons créer le répertoire "*/mnt/partage*". ``` sudo mkdir /mnt/partage ``` # Monter le partage de façon éphémère Nous allons à présent utiliser la commande `mount` pour monter le partage dans le système de fichiers local grâce aux options suivantes : - `-t cifs` : spécifie le protocole à utiliser pour accéder au dossier partagé (SMB). - `//192.168.1.10/Windows-Share` : indique l'adresse complète du partage réseau au format UNC - `/mnt/partage` : indique le point de montage local où le contenu du partage réseau sera accessible une fois monté. - `-o username=fabien` : fournit le nom d'utilisateur pour s'authentifier sur le partage réseau. ``` sudo mount -t cifs //19.168.1.10/Windows-Share /mnt/partage -o username=fabien ``` > [!warning] Remarque ! <span style="font-weight: normal; color: var(--text-normal)"> Si votre système DNS est opérationnel, il est recommendé d'utiliser le nom complet de la machine Windows (FQDN) à la place de son IP. </span> > [!info] A savoir !<span style="font-weight: normal; color: var(--text-normal)"> Sur Linux, les chaînes qui commencent par deux barres obliques (`//`) sont reconnues comme des chemins UNC (Convention de Nommage Universelle).</span> La commande `mount` vous demande de saisir le mot de passe de façon interactive. S'il n'y a pas d'erreur dans la console, l'opération s'est déroulée avec succès. Pour confirmer que le partage est bien monté : - Utilisez la commande `ls` (**l**i**s**t) pour afficher le contenu du dossier "*/mnt/partage*" ``` ls -lah /mnt/partage ``` - Utilisez la commande `df` (**d**isk **f**ree) pour constater la du point de montage. ``` df -h ``` > [!danger] Attention !<span style="font-weight: normal; color: var(--text-normal)"> Cette configuration ne sera pas persistante après reboot. Le répertoire "**/mnt/partage**" sera toujours présent, mais le partage distant ne sera plus monté après le redémarrage !</span> # Démonter un partage CIFS sur Linux Pour démonter le partage, il suffit de redémarrer la machine ou d'utiliser la commande `umount` en spécifiant le point de montage ciblé : ``` sudo umount /mnt/partage ``` # Monter le partage de façon persistante Pour rendre cette configuration persistante au redémarrage de la machine Linux, nous allons configurer le fichier "*fstab*" et créer un fichier sécurisé contenant les identifiants de connexion. Dans un premier temps créer le fichier "*/etc/.smb-partage-creds*", pour stocker les identifiants : ``` sudo nano /etc/.smb-partage-creds ``` > [!info] À savoir !<span style="font-weight: normal; color: var(--text-normal)"> Sous Linux les fichiers dont le nom commence par "`.`" sont des fichiers cachés. Utiliser `ls -a` pour les afficher.</span> Indiquez le nom d'utilisateur et le mot de passe de cette façon dans le fichier : ``` username=fabien password=P@ssword! ``` Enregistrez et fermez le fichier, puis modifiez les permissions afin d'empêcher les accès non autorisés sur ce fichier : ``` sudo chmod 600 /etc/.smb-partage-creds ``` Pour confirmer que ce fichier n'est accessible que par le compte root utiliser la commande : ``` sudo ls -lah /etc/.smb-partage-creds ``` Il faut à présent tester l'authentification avec le fichier sécurisé : ``` sudo mount -t cifs //192.168.1.10/Windows-Share /mnt/partage -o credentials=/etc/.smb-partage-creds ``` Si l'opération s'est correctement exécutée, modifiez le fichier "*/etc/fstab*" pour ajouter un point de montage automatique. ``` sudo nano /etc/fstab ``` Puis, dans ce fichier, nous allons ajouter cette ligne : - `//192.168.1.10/Windows-Share` : partage distant à monter - `/mnt/partage` : point de montage local - `cifs` : protocole de fichiers à utiliser (SMB) - `credentials=/etc/.smb-partage-creds` : fichier qui contient les identifiants d'accès au partage SMB. - `_netdev` : utilisé pour retarder le montage jusqu’à ce que le réseau soit opérationnel. - `0 0` : Désactivation des options de **dump** et de **pass** (vérification du système de fichiers). ``` //192.168.1.10/Windows-Share /mnt/partage cifs credentials=/etc/.smb-partage-creds,_netdev 0 0 ``` > [!info] À savoir !<span style="font-weight: normal; color: var(--text-normal)"> Il est possible de spécifier les identifiants directement dans fstab mais cela n'est pas recommandé.</span> Enregistrez et fermez le fichier "*fstab*" puis vérifier que la nouvelle configuration est opérationnelle : - Démonter le point de montage avec `umount`. - Ensuite exécuter la commande : ``` sudo mount -a ``` > [!info] À savoir !<span style="font-weight: normal; color: var(--text-normal)"> La commande `mount -a` sous Linux a pour rôle de **monter automatiquement tous les systèmes de fichiers** définis dans `/etc/fstab`, **à condition qu'ils ne soient pas déjà montés** et qu'ils ne soient pas marqués avec l'option `noauto`.</span> Si la commande précédente s'exécute sans erreur, vous n'avez plus qu'à redémarrer votre machine Linux pour tester la configuration. ``` sudo reboot ``` Une fois le système redémarré, ouvrez une session terminale et exécutez à nouveau la commande : ``` df -h | grep /mnt/partage ``` Si le volume CIFS est monté, son point de montage apparaîtra dans la liste des volumes avec la même taille et informations qu’avant le reboot. # Conclusion En suivant les étapes précédentes, vous devriez être en mesure de monter un partage de fichiers SMB-CIFS de façon temporaire ou permanente, et de le déconnecter du système. Si vous rencontrez des difficultés : - Vérifiez la syntaxe de vos commandes. - Vérifier les identifiants (login et mot de passe). - Vérifiez les permissions du compte utilisateur au niveau du partage distant. ## Référence - Ubuntu : [How to mount cifs shares permanently](https://ubuntu.com/server/docs/how-to-mount-cifs-shares-permanently) - IT-CONNECT : [Monter un partage CIFS sous Linux](https://www.it-connect.fr/monter-un-partage-cifs-sous-linux/)