nous allons voir comment créer un partage de fichiers rapidement avec Samba, le but est donc ici de partager un ensemble de fichiers présents sur un poste sur tout un réseau.
Quels sont les prérequis pour suivre ce tutoriel ?
Pour suivre ce tutoriel, vous avez besoin :
D'une machine sous Linux, pour ma part Debian 11 (selon la distribution quelques commandes peuvent changer)
D'un poste client sous Windows pour tester l'accès au partage, pour ma part Windows 11 (mais Windows 10 fera très bien l'affaire)
Note : les commandes sont exécutées directement avec l'utilisateur "root" mais si vous agissez depuis un compte administrateur (autre que root), pensez à préfixer les commandes avec "sudo".
Connectez-vous sur votre machine Linux et mettez à jour la liste des paquets :
apt update
Ensuite, installez le paquet "samba" :
apt install samba -y
La création du partage va s'effectuer en plusieurs étapes : la configuration de Samba dans un premier temps, et la préparation du groupe, de l'utilisateur et du dossier du partage dans un second temps.
Le fichier de configuration de Samba est "/etc/samba/smb.conf", nous allons l'éditer :
nano /etc/samba/smb.conf
Ajoutez ensuite les lignes suivantes pour déclarer notre partage : (on peut le modifier comme on le veux )
[partage]
comment = Partage de données
path = /srv/partage
guest ok = no
read only = no
browseable = yes
valid users = @partage
Quelques explications :
[partage] : sert à spécifier le nom du partage entre "[]", c'est le nom qui devra être utilisé pour accéder au partage
comment : description du partage
path : chemin vers le dossier à partager, sur le serveur
guest ok : accès invité au partage (par défaut "no"). Si vous décidez d'activer cette option, vous devez configurer l'option "guest account" qui par défaut prend la valeur "nobody".
read only : partage accessible uniquement en lecture seule (yes ou no)
browseable : le partage doit-il être visible ou masqué si on liste les partages du serveur avec un hôte distant (découverte réseau). La valeur "yes" permet de le rendre visible.
valid users : spécifier les utilisateurs ou les groupes qui ont les droits d'accès au partage (les droits sur le système de fichiers doivent être cohérents vis-à-vis de cette autorisation). On précise un utilisateur avec son identifiant et un groupe avec son identifiant précédé du caractère "@". Pour indiquer plusieurs valeurs, séparez-les par une virgule.
La configuration étant terminée, sauvegardez le fichier et redémarrez le service smb:
systemctl restart smb
Le groupe "partage" que nous avons déclaré dans la configuration n'existe pas. Nous allons créer le groupe, ainsi qu'un utilisateur nommé "sambapartage" et qui sera membre de ce groupe.
Créez l'utilisateur "sambapartage" et définissez son mot de passe :
Pour que l'utilisateur puisse se connecter au partage, il faut l'autoriser dans Samba, en plus de la création au sein du système Linux. Pour cela, il faut utiliser la commande "smbpasswd" pour déclarer l'utilisateur et lui créer un mot de passe Samba (ce dernier pouvant être différent du mot de passe du compte sur le système).
Voici la commande pour ajouter l'utilisateur "sambapartage" :
smbpasswd -a sambapartage
Créer l'utilisateur et définir son mot de passe Samba avec smbpasswd
Lorsqu'un utilisateur exécute lui-même la commande "smbpasswd", cela lui permet de modifier lui-même son mot de passe Samba.
L'utilisateur étant prêt, nous allons créer le groupe "partage" :
groupadd partage
Ajouter l'utilisateur au groupe associé à notre partage
Avec gpasswd ou usermod, ajoutez l'utilisateur "it-connect" au groupe "partage" :
gpasswd -a sambapartage partage
Le partage va être hébergé à l'emplacement "/srv/partage" de notre serveur. Commençons par créer le dossier :
mkdir /srv/partage
Ensuite, on va attribuer le groupe "partage" comme groupe propriétaire de ce dossier :
chgrp -R partage /srv/partage/
Puis, nous allons ajouter les droits de lecture/écriture à ce groupe sur ce dossier :
chmod -R g+rw /srv/partage/
On peut vérifier la configuration des droits avec la commande suivante :
ls -l/srv/
Tout est prêt, nous pouvons tester depuis un poste client mais avant cela lisez le point suivant.
Dans sa configuration par défaut, Samba dispose d'un partage nommé [homes]. En fait, il ne s'agit pas réellement d'un partage nommé "homes" mais cette configuration spécifique permet de créer un partage personnel pour chaque utilisateur qui se connecte sur votre machine Linux.
De cette façon, l'utilisateur "sambapartage" dispose d'un partage personnel (correspondant à son dossier personnel définit au niveau de Linux) accessible à l'adresse suivante :
Il faut savoir que, par défaut, ces partages sont accessibles en lecture seule et l'utilisateur ne voit que son propre partage, après s'être authentifié au serveur.
Si vous souhaitez désactiver ces partages car vous n'en avez pas l'utilité, il suffit de commenter les différentes lignes (la ligne [homes] ainsi que les directives en dessous) dans le fichier smb.conf et de redémarrer le service Samba.
Pour tester l'accès au partage, j'ai pris une machine Windows mais j'aurais pu utiliser un client sous Linux également. Pour accéder au partage, il y a plusieurs possibilités : à partir de l'explorateur de fichiers Windows, d'un lecteur réseau, de la commande net use voire même New-PSDrive en PowerShell.
Exemple - Connecter un lecteur réseau sous Windows
Utilisons la méthode la plus courante pour accéder à un partage : un chemin UNC directement dans la barre d'adresse de l'Explorateur de fichiers. Pour ma part, ma machine se nomme "debian-11", ce qui donne :
\\debian-11\partage
Note : vous pouvez utiliser l'adresse IP à la place du nom si vous rencontrez des difficultés. ex:192.168.1.15
Accéder au partage Samba depuis Windows
Le message accès refusé apparaît, c'est normal, car je dois m'authentifier, donc j'utilise le compte "sambapartage" et le mot de passe saisit lors de l'exécution de la commande "smbpasswd".
Parfait ! J'accède bien à mon partage Samba depuis Windows ! Je peux même créer un fichier puisque j'ai accès en lecture / écriture
Au sein du fichier smb.conf et de notre bloc [partage], nous allons ajouter trois options :
create mask = 0660
directory mask = 0770
force group = partage
- L'option "create mask" va permettre de définir les droits par défaut sur les fichiers (lecture/écriture pour l'utilisateur propriétaire et le groupe propriétaire seulement)
- L'option "directory mask" va permettre de définir les droits par défaut sur les dossiers
- L'option "force group" va permettre de forcer le groupe "partage" comme groupe propriétaire des fichiers et dossiers
Ce qui donne :
[partage]
comment = Partage de données
path = /srv/partage
guest ok = no
read only = no
browsable = yes
valid users = @partage
create mask = 0660
directory mask = 0770
force group = partage
Une fois cet ajustement effectué, sauvegardez la configuration et redémarrez le service :
systemctl restart smb
Et voila ce tutoriels est fini vous pouvez suivre d'autre tutoriels dans les autres onglets.....