
I. Présentation
Vous avez un ordinateur sous Linux, un autre sous Windows, et vous souhaitez partager des données entre deux machines ? Cet article devrait vous plaire ! En effet, nous allons apprendre à partager des fichiers entre Linux et Windows, dans un sens comme dans l’autre.
Plusieurs raisons m’ont incité à rédiger cet article :
Avec la fin du support de Windows 10, certaines personnes vont certainement bousculer sur Linux. Il n’est pas à exclure qu’un autre ordinateur sous Windows 11 soit présent sur le même réseau, la question du partage de fichiers peut donc se poser.
Ce n’est pas parce que les machines ont un système d’exploitation totalement différent qu’elles ne peuvent pas échanger d’informations : c’est tout l’intérêt des protocoles.
Ce tutoriel est également disponible au format vidéo :
II. Prérequis
Avant de commencer, assurez-vous de respecter quelques prérequis basiques.
Communication réseau entre les deux machines
Vérifiez que les deux machines soient en mesure de communiquer l’une avec l’autre. Vous pouvez utiliser la commande habituelle pour cela : la commande ping. Nous pouvons tester la communication de Windows vers Linux (ou l’inverse).
Sur Linux, vous pouvez récupérer votre adresse IP depuis un Terminal, en exécutant la commande suivante :
ip a
Dans mon cas, la machine Linux que j’utilise dispose de l’adresse IP 192.168.14.135.
flo@Ubuntu2404:~$ ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: ens33: mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:09:29:94 brd ff:ff:ff:ff:ff:ff
altname enp2s1
inet 192.168.14.135/24 brd 192.168.14.255 scope global dynamic noprefixroute ens33
valid_lft 1793sec preferred_lft 1793sec
inet6 fe80::20c:29ff:fe09:2994/64 scope link
valid_lft forever preferred_lft foreve
Depuis votre machine Windows, ouvrez une Invite de commande, et tentez un ping vers la machine Linux :
ping 192.168.14.135
# Réponse positive :
Envoi d’une requête ‘Ping’ 192.168.14.135 avec 32 octets de données :
Réponse de 192.168.14.135 : octets=32 temps=1 ms TTL=64
Réponse de 192.168.14.135 : octets=32 temps<1ms TTL=64
Réponse de 192.168.14.135 : octets=32 temps<1ms TTL=64
Réponse de 192.168.14.135 : octets=32 temps<1ms TTL=64
Statistiques Ping pour 192.168.14.135:
Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
Durée approximative des boucles en millisecondes :
Minimum = 0ms, Maximum = 1ms, Moyenne = 0ms
# Réponse négative :
Envoi d’une requête ‘Ping’ 192.168.14.135 avec 32 octets de données :
Réponse de 192.168.14.133 : Impossible de joindre l’hôte de destination.
Réponse de 192.168.14.133 : Impossible de joindre l’hôte de destination.
Réponse de 192.168.14.133 : Impossible de joindre l’hôte de destination.
Réponse de 192.168.14.133 : Impossible de joindre l’hôte de destination.
Statistiques Ping pour 192.168.14.135:
Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
Attention, il est possible que le ping de Linux vers Windows ne fonctionne pas à cause du pare-feu intégré à Windows. C’est pour cette raison qu’il est préférable de faire un rapide test de Windows vers Linux. Si ce test ne fonctionne pas, vérifiez la configuration réseau (IP) de vos machines, le câblage, et finissez par vous intéresser au pare-feu.
Les droits d’administration sur les deux machines
Assurez-vous d’avoir les accès administrateur sur les deux machines, notamment sur la machine Linux où nous devons effectuer l’installation d’un paquet supplémentaire.
III. Partage de fichiers de Linux vers Windows
Le partage de fichiers de Linux vers Windows peut être réalisé de plusieurs manières. L’une d’elles consiste à installer le paquet Samba sur Linux pour partager un dossier sur le réseau. Pour partager des fichiers situés sur une machine Linux pour les rendre accessibles depuis Windows, suivez cette section de l’article.
Samba est solution disponible sur Linux qui offre plusieurs fonctionnalités, dont la prise en charge des partages SMB (CIFS) : un protocole pris en charge nativement par Windows.
Nous verrons deux approches différentes :
Création d’un partage dédié et multi-utilisateurs
Utilisation des répertoires personnels des utilisateurs, qui seront partagés directement via une fonctionnalité native de Samba
A. Installer Samba sur Ubuntu
Tout d’abord, installons Samba si ce n’est pas déjà fait, et activons le service smbd :
sudo apt update
sudo apt install samba
sudo systemctl enable smbd
Le service est désormais configuré pour démarrer automatiquement au démarrage de la machine.
Par précaution, nous allons aussi effectuer une copie du fichier de configuration smb.conf avant de le modifier (ceci permet de revenir facilement à la version d’origine en cas de besoin).
sudo cp /etc/samba/smb.conf smb.conf.bkp
sudo nano /etc/samba/smb.conf
Nous pouvons passer à la configuration de Samba.
B. Activation des partages Homes de Samba
Samba permet de partager automatiquement le dossier personnel de chaque utilisateur Linux via une configuration spéciale appelée [homes]. Autrement dit, ceci permet de partager le répertoire home d’un ou plusieurs utilisateurs.
Par exemple : l’utilisateur flo, dont le répertoire d’accueil est /home/flo pourrait accéder à son profil à distance via le chemin réseau \\192.168.14.135\flo. Il sera donc possible de voir les données de ce compte et de les lire ou modifier (selon la configuration).
Dans le fichier /etc/samba/smb.conf, assurez-vous que la section suivante est présente (elle existe par défaut, mais elle est commentée) :
[homes]
comment = Dossier personnel de %U
browseable = no
read only = no
create mask = 0700
directory mask = 0700
Explications :
comment : description du partage.
browseable = no : le partage n’est pas visible dans lors de la découverte du réseau, mais il reste accessible directement en connaissant son chemin.
read only = no : les utilisateurs peuvent lire et écrire dans leur dossier.
create mask = 0700 : définit les permissions des fichiers créés via Samba pour que seul le propriétaire ait tous les droits.
directory mask = 0700 : définit les permissions des dossiers créés via Samba pour que seul le propriétaire ait tous les droits.
%U est automatiquement remplacé par le nom de l’utilisateur qui se connecte.
Redémarrons Samba pour appliquer la configuration :
sudo systemctl restart smbd
En l’état, l’accès ne fonctionnera pas ! En effet, il faut définir un mot de passe pour ce compte au niveau de Samba. Ceci s’effectue via la commande smbpasswd :
sudo smbpasswd -a flo
C. Accès au partage Samba depuis Windows
À partir de Windows, nous allons tester une connexion au partage distant. Il existe plusieurs manières de procéder. La plus directe étant de saisir le chemin UNC (chemin réseau) vers le partage dans la barre d’adresse de l’Explorateur de fichiers. Nous devons indiquer le chemin complet, en spécifiant l’adresse IP ou le nom, comme ceci :
\\\
Il convient ensuite de s’authentifier avec les identifiants de l’utilisateur présent sur la machine Linux. Ici, ce sera l’utilisateur flo et son mot de passe.
Nous avons désormais accès au partage distant ! Autrement dit, nous avons accès au profil de l’utilisateur flo depuis la machine Windows. Nous pouvons naviguer dans les documents, etc.
Une autre façon de faire, c’est de connecter un lecteur réseau. L’avantage, c’est que la connexion peut être persistante : le lecteur réseau peut être connecté à chaque fois que la machine Windows démarre. Il apparaît dans l’Explorateur de fichiers de Windows avec une lettre, au même titre que le disque C.
Pour connecter un lecteur réseau, ouvrez l’Explorateur de fichiers, puis cliquez sur “Ce PC”. Ensuite, cliquez sur “…” puis choisissez l’option “Connecter un lecteur réseau”. Vous devez choisir une lettre de lecteur, indiquez le chemin UNC vers le partage et cocher l’option “Se reconnecter lors de la connexion” pour que ce lecteur soit connecté à chaque fois que Windows démarre (à condition que la machine Linux soit allumée).
Voilà pour cette première méthode, basée sur les répertoires homes.
D. Configuration d’un partage Samba
Désormais, nous allons voir comment créer un partage nommé “Partage” et qui correspond à un dossier partagé distinct sur notre machine Linux. Autrement dit, ce n’est pas un répertoire home, mais un dossier indépendant. La méthode qui suit est basée sur un autre tutoriel présent sur notre site :
Éditons le fichier de configuration principal de Samba :
sudo nano /etc/samba/smb.conf
En bas du fichier, ajoutez la configuration suivante pour créer un partage nommé partage :
[partage]
comment = Partage de données
path = /srv/partage
guest ok = no
read only = no
browseable = yes
valid users = @partage
Explications :
path : indique le chemin du dossier partagé.
valid users : seuls les membres du groupe partage auront accès.
read only = no : le partage est en lecture/écriture.
browsable = yes : le partage est visible dans l’explorateur réseau.
Une fois les modifications effectuées, sauvegardez le fichier (CTRL + O puis ENTER) et quittez (CTRL + X).
Redémarrez le service pour appliquer la configuration :
sudo systemctl restart smbd
Créez un utilisateur système qui pourra accéder au partage (sauf si vous souhaitez utiliser votre utilisateur actuel, auquel cas, c’est facultatif).
L’utilisateur s’appellera it-connect :
sudo adduser it-connect
Suivez les instructions pour définir le mot de passe de l’utilisateur.
Ensuite, ajoutez cet utilisateur à Samba en créant son mot de passe :
sudo smbpasswd -a it-connect
Vous devrez saisir un mot de passe pour l’accès via Samba. Ce mot de passe peut être différent du mot de passe Linux.
Créez un groupe dédié au partage, nommé tout simplement partage, et ajoutez l’utilisateur au groupe (soit l’utilisateur que vous venez de créer et/ou un utilisateur existant) :
sudo groupadd partage
sudo gpasswd -a it-connect partage
Créez ensuite le dossier de partage dans un emplacement recommandé (/srv) :
sudo mkdir /srv/partage
sudo chgrp -R partage /srv/partage
sudo chmod -R g+rw /srv/partage
Ainsi :
Le groupe partage est propriétaire du dossier.
Les membres du groupe ont les droits de lecture et d’écriture.
Vous n’avez plus qu’à tester l’accès à ce partage depuis la machine Windows !
Depuis un poste Windows, via l’Explorateur de fichiers, toujours dans la barre d’adresse, tapez l’adresse IP ou le nom du serveur Linux et ciblez le partage nommé “Partage”. Par exemple : \\192.168.14.135\partage.
Indiquez les identifiants d’un utilisateur membre du groupe partage. Vous avez maintenant accès au dossier partagé depuis Windows. Vous pouvez déposer un fichier depuis Windows :
Et, il sera bien visible depuis Linux :
Voilà, nous venons de voir comment créer un partage sur Linux et comment y accéder depuis Windows. Voyons comment faire l’inverse…
IV. Partage de fichiers de Windows vers Linux
Désormais, nous allons voir comment créer un dossier partagé sur Windows 11, afin de le rendre accessible sur Linux.
A. Créer un dossier partagé sur Windows 11
Pour cette démonstration, nous allons créer le dossier C:\Partage et le rendre accessible via le réseau.
Commencez par créer le dossier à partir de l’Explorateur de fichiers (clic droit Nouveau > Dossier).
Pour partager le dossier, suivez ces étapes :
1 – Faites un clic droit sur le dossier Partage, puis sélectionnez Propriétés.
2 – Cliquez sur l’onglet “Partage”.
3 – Cliquez sur le bouton “Partage avancé”. Cochez l’option “Partager ce dossier” et conservez le nom par défaut (le nom du dossier est repris).
4 – Pour gérer les permissions, cliquez sur le bouton “Autorisations”.
5 – Veiller à ajouter l’utilisateur qui doit avoir accès au partage, en lui donnant les autorisations de “Contrôle total”. Vous pouvez aussi créer un groupe sur Windows et ajouter le groupe directement (ce qui est plus judicieux si vous souhaitez donner des droits à plusieurs utilisateurs Windows).
6 – Validez avec le bouton OK.
Ensuite, cliquez sur l’onglet “Sécurité”. Vous pouvez ajouter votre utilisateur également ici, s’il n’est pas présent. Il doit avoir des autorisations également à cet endroit, sinon il ne pourra pas écrire sur le disque.
Sachez que, par défaut, votre PC Windows peut être détecté par les autres machines du réseau si vous êtes sur un réseau privé, sinon avec un réseau public ce ne sera pas le cas. Même si vous êtes connecté à votre domicile, le profil public peut être assigné à votre connexion.
B. Monter le partage dans le système de fichiers
Il existe plusieurs façons pour monter un partage sur Linux. L’avantage de la ligne de commande, c’est qu’elle va vous permettre d’automatiser la connexion du partage, comme un lecteur réseau sous Windows.
En complément des explications ci-dessous, vous pouvez lire ce tutoriel :
Sur Linux, il est nécessaire de créer ce que l’on appelle un point de montage. Pour monter le dossier partagé dans /mnt :
sudo mkdir /mnt/partage
Pour monter le partage en ciblant ce nouveau point de montage, nous allons utiliser la commande mount. Sous Linux, cette commande s’utilise pour rendre accessible un partage réseau ou un périphérique de stockage dans le système de fichiers local.
Mais, avant cela, il est nécessaire d’installer le paquet cifs-utils (prise en charge du SMB sous Linux) :
sudo apt-get update
sudo apt-get install cifs-utils -y
Voici la commande à exécuter pour répondre à notre besoin :
sudo mount -t cifs //192.168.14.133/Partage /mnt/partage -o username=Florian
Quelques explications sur la syntaxe utilisée :
-t cifs : spécifie le type de système de fichiers à utiliser, ici CIFS, soit le SMB
//192.168.14.133/Partage : indique l’adresse complète du partage réseau
/mnt/partage : indique le point de montage local où le contenu du partage réseau sera accessible une fois monté. Ici, les fichiers du dossier partagé seront visibles dans /mnt/partage.
-o : déclarer des options de montage
username=Florian : fournit le nom d’utilisateur pour s’authentifier sur le partage réseau. Ici, il s’agit de l’utilisateur “Florian” existant sur la machine Windows 11.
Vous devrez ensuite saisir votre mot de passe Windows. Vous pouvez ensuite lister le contenu du partage via cette commande (ou naviguer via l’Explorateur de fichiers de Linux).
ls -l /mnt/partage
Nous pouvons qu’il y a un fichier dans ce partage (il a été déposé au préalable depuis Windows) : L’inconvénient de cette méthode, c’est que si vous redémarrez la machine, le partage sera inaccessible (il faut le monter à chaque fois).
C. Montage automatique au démarrage
Pour finir, nous allons voir comment monter automatiquement le partage à chaque démarrage de la machine Linux. Nous allons commencer par modifier 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.14.133/Partage /mnt/partage cifs credentials=/etc/smb-partage-creds 0 0
Quelques explications :
//192.168.14.133/Partage : partage distant à monter, situé la machine Windows 11.
/mnt/partage : point de montage local.
cifs : protocole de fichiers à utiliser (SMB).
credentials=/etc/smb-partage-creds : fichier avec les identifiants (que nous allons créer par la suite).
0 0 : options de dump et de vérification du système de fichiers (0 ou 1).
Nous pourrions aussi préciser les identifiants directement dans le fichier fstab, mais il est préférable d’utiliser la méthode évoquée ci-dessus.
Une fois les modifications effectuées, sauvegardez le fichier (CTRL + O puis ENTER) et quittez (CTRL + X).
À présent, nous allons créer le fichier /etc/smb-partage-creds, car il va nous servir à stocker les identifiants.
sudo nano /etc/smb-partage-creds
Indiquez le nom d’utilisateur et le mot de passe de votre compte Windows, en suivant cette syntaxe :
username=Florian
password=MotDePasse
Enregistrez et fermez le fichier. Pour éviter les accès non autorisés, nous allons modifier les permissions sur ce fichier avec la commande chmod :
sudo chmod 600 /etc/smb-partage-creds
Vous n’avez plus qu’à redémarrer votre machine Linux pour tester la configuration ! Si elle est correcte, vous devriez avoir accès au partage SMB et à ses données ! L’accès se fera toujours via le dossier /mnt/partage.
V. Conclusion
Si vous utilisez à la fois Windows et Linux, et que vous n’avez pas de serveur (NAS ou alternative), ce tutoriel devrait vous permettre de partager des données entre vos machines via le réseau ! Le partage de fichiers via Samba (et le protocole SMB) reste la méthode la plus simple pour les non-initiés. Une alternative consiste à utiliser le SSH (SCP/SFTP) puisqu’il y a un client et un serveur SSH disponible autant pour Windows que Linux.
N’hésitez pas à poser vos questions en commentaire et à nous faire un retour.
Ingénieur système et réseau, cofondateur d’IT-Connect et Microsoft MVP “Cloud and Datacenter Management”. Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.