fbpixel
Étiquettes : ,

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
samba-access-folder-windows Créer un dossier partagé avec Samba sous Linux

Il est aussi possible d’accéder au fichier en utilisant un navigateur web

samba-access-folder-browser Créer un dossier partagé avec Samba sous Linux

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

samba-access-folder-windows-alias Créer un dossier partagé avec Samba sous Linux

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

windows-add-network-1 Créer un dossier partagé avec Samba sous Linux

Dans le champ spécifié l’adresse du dossier partager

\\MyMachine\smbSharedFolder

windows-network-shared-folder-samba-configure Créer un dossier partagé avec Samba sous Linux

Vous avez maintenant accès à votre dossier partagé directement dans le navigateur windows

windows-network-shared-folder-samba Créer un dossier partagé avec Samba sous Linux

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 &amp;&amp; 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 &gt; /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
" &gt; /etc/samba/smb.conf

#create host alias (optional)
echo $IPADDR $HOSTNAME &gt;&gt; /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

Sources