Il est possible d’accéder à un dossier sur une machine distante en installant un serveur Samba sous Linux. Ce serveur permet d’accéder à un certain dossier de fichier depuis n’importe quelle machine connecté au même réseau.
Installation de Samba
Pour installer Samba,
sudo apt-get update && sudo apt-get install samba -y
Vérifier la version
smbd --version
Avant la configuration, vérifiez que le service Samba est désactivé
sudo systemctl stop smbd
Configuration de Samba sous Linux
Pour partager un dossier de manière sécurisé, vous devez renseigner certaines informations dans le fichier de configuration /etc/samba/smb.conf. Avant de commencer la configuration, vous pouvez sauvegarder le fichier de conf pour plus de sécurité car il contient un grand nombre d’informations dont vous aurez certainement besoin.
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
Pour modifier le fichier de configuration, vous pouvez utiliser un éditeur de texte ou nano dans le terminal
sudo nano /etc/samba/smb.conf
Les informations à rentrer sont le path qui est l’adresse du dossier à partager. N’oubliez pas de remplacer <USERNAME> par le nom de l’utilisateur. Pour obtenir le nom utilisateur entrez la commande whoami
[smbSharedFolder]
comment= Folder Shared by Samba Server
path = /home/<USERNAME>/smbSharedFolder
public = yes
read only = no
Redémarrer le service Samba
sudo systemctl restart smbd
Pour vérifier l’état du service et qu’il n’y a pas d’erreur dans le fichier de configuration
sudo systemctl status smbd
N.B.: Il est possible de créer plusieurs dossiers partagés en ajoutant un bloc ou section de configuration (commençant par [sharefolder]) dans le fichier /etc/samba/smb.conf et en veillant à redémarrer le service Samba
Créer et modifier les droits utilisateurs
Pour accéder au dossier partagé Samba avec votre compte utilisateur vous devez l’ajouter au groupe Samba
sudo smbpasswd -a <username>
Le système vous demande ensuite de renseigner et de confirmer le mot de passe utilisateur.
Vérifier la liste des utilisateurs
sudo pbdedit -L -v
Accéder au dossier Samba depuis une machine distante
Pour accéder au dossier depuis un autre ordinateur, vous devez connaitre l’adresse IP de l’ordinateur sur lequel est installé Samba. Pour récupérer l’adresse IP, entrez la commande suivante depuis un terminal
hostname -I
Dans un explorateur Windows, entrez l’adresse IP de la machine suivit du nom du dossier \\<IP_ADDRESS>\<PATH_TO_FOLDER>
\\192.168.1.95\smbSharedFolder
Il est aussi possible d’accéder au fichier en utilisant un navigateur web
Ajouter un fichier de log
Ce n’est pas nécessaire mais je vous conseille d’ajouter un fichier log pour pouvoir surveiller ce qu’il se passe au niveau de Samba surtout en cas d’erreur
Dans le fichier /etc/samba/smb.conf
Ajouter une section « global » au début du fichier et ajourer la ligne log file. Le paramètre « %m » spécifie de créer un fichier log pour chaque machine qui se connecte au dossier partagé Samba. Le paramètre log level à 1 permet d’activer le logging (defaut à 0).
[global]
log file = /var/log/samba/log.%m
log level = 1
[smbSharedFolder]
comment= Folder Shared by Samba Server
path = /home/<USERNAME>/smbSharedFolder
public = yes
read only = no
Utiliser le raccourci Ctrl+X pour sauvegarder et fermer le fichier puis redémarrer le service
sudo systemctl restart smbd
Pour trouver le fichier log à regarder
ls /var/log/samba/
Pour lire le fichier log
cat /var/log/samba/log.<IP_CLIENT>
Bonus: Accéder au dossier à l’aide d’un Alias
Plutôt que d’utiliser l’adresse IP, il est possible de définir un alias pour la machine. Pour cela nous allons trouver le nom de la machine et modifier le fichier /etc/hosts
Pour trouver le nom de la machine
hostname
Dans le fichier /etc/hosts, rajouter à la fin du fichier <IP_ADRESS> <HOSTNAME>
sudo nano /etc/hosts
127.0.0.1 localhost
127.0.1.1 MyMachine
192.168.1.95 MyMachine
Pour accéder au dossier, vous pouvez entrez la commande suivante dans un explorateur Windows
\\MyMachine\smbSharedFolder
Une fois l’alias défini, vous pouvez créer un emplacement réseau sur votre ordinateur
Dans le dossier Ce PC, faites un clique droit et sélectionnez ajouter un emplacement réseau
Dans le champ spécifié l’adresse du dossier partager
\\MyMachine\smbSharedFolder
Vous avez maintenant accès à votre dossier partagé directement dans le navigateur windows
Fichier d’installation et de configuration de Samba (Utilisateurs avancés)
Pour vous faciliter la vie, vous pouvez créer un fichier d’installation Samba, que vous pourrez lancer sur toutes vos installations Linux.
N’oubliez pas de mettre à jour les noms FOLDERNAME et USER qui correspondent à votre besoin
sudo nano install_samba.sh
chmod +x install_samba.sh
sudo ./install_samba.sh
#folder user name FOLDERNAME=sambashare USER=pi #install samba sudo apt-get update && sudo apt-get install samba -y sudo systemctl stop smbd #get machine info HOSTNAME=$(hostname) IPADDR=$(hostname -I | cut -f1 -d' ') SMBVER=$(smbd --version) #create samba folder mkdir $FOLDERNAME #save conf file for later sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak #write conf file #echo > /etc/samba/smb.conf printf "[global] #log file = /var/log/samba/log log level = 1 [$FOLDERNAME] comment= Folder Shared by Samba Server path = /home/$USER/$FOLDERNAME public = yes read only = no " > /etc/samba/smb.conf #create host alias (optional) echo $IPADDR $HOSTNAME >> /etc/hosts #add user sudo smbpasswd -a $USER #start service sudo systemctl restart smbd #display result echo --------------------- SUCCESS ----------------------- echo SAMBA $SMBVER was installed correcly echo you can access your folder with echo \\\\$IPADDR\\$FOLDERNAME echo or echo \\\\$HOSTNAME\\$FOLDERNAME echo with username $USER echo ------------------------------------------------------
N.B.: Si ce fichier ne s’exécute pas correctement après un copier coller, vous pouvez essayer d’utiliser dos2unix pour convertir le fichier
Applications
- Accéder à vos fichiers de n’importe où avec le port forwarding
- Téléverser des fichiers d’une machine à une autre sur le même réseau
Par exemple, je l’utilise pour transférer des fichiers de mon PC Windows à mon PC linux qui gère ma graveuse laser