I. Installer Samba sous Debian 11

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-get update

Ensuite, installez le paquet « samba » :

apt-get install -y samba

Suite à l’installation, on peut afficher la version actuelle de Samba via la commande smbd :

smbd --version
Version 4.13.5-Debian

Pour afficher le statut du serveur Samba, et voir s’il est démarré ou arrêté, voici la commande à exécuter :

systemctl status smbd

Avant de passer à la suite, nous allons activer le démarrage automatique de smbd (Samba) :

systemctl enable smbd

Maintenant, passons à la création du partage Samba.

II. Créer son premier partage sous Samba

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.

A. Configurer le partage dans smb.conf

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 :

[partage]
   comment = Partage de données
   path = /srv/partage
   guest ok = no
   read only = no
   browsable = 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)
  • browsable : 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 smbd :

systemctl restart smbd

B. Créer un utilisateur et le groupe « partage »

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é « ol63 » et qui sera membre de ce groupe.

Créez l’utilisateur « ol63 » et définissez son mot de passe :

adduser ol63

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 « ol63 » :

smbpasswd -a ol63

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

Avec gpasswd ou usermod, ajoutez l’utilisateur « ol63 » au groupe « partage » :

gpasswd -a ol63 partage

Le tour est joué pour l’utilisateur et le groupe !

C. Préparer le dossier du 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.

D. Le partage [homes] de Samba

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 « ol63 » dispose d’un partage personnel (correspondant à son dossier personnel définit au niveau de Linux) accessible à l’adresse suivante :

\\<nom-du-serveur>\ol63

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.

IV. Accéder au partage Samba depuis Windows

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 nous 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.

Le message accès refusé apparaît, c’est normal, car je dois m’authentifier, donc j’utilise le compte « ol63 » 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.

Sur le serveur Linux, on peut lister le contenu de notre partage :

ls -l /srv/partage/

Il n’y a pas quelque chose qui vous choc ?

V. Améliorer la gestion des droits sur le partage Samba

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 smbd

Ensuite, les droits sur les nouveaux dossiers et fichiers permettront la collaboration entre plusieurs utilisateurs :

VI. Désactiver le SMB v1 sur Samba

Pour des raisons de sécurité (voir article ci-dessous), je vous rappelle qu’il est déconseillé d’utiliser le protocole SMB v1. C’est pour cette raison que nous allons configurer le serveur Samba de manière à désactiver le SMB v1.

Retournez dans le fichier « smb.conf » et sous le bloc [global], ajoutez ces deux lignes :

min protocol = SMB2
client min protocol = SMB2
smb.conf – « min protocol » et « client min protocol »

Cela va permettre d’imposer le SMB v2 comme version minimale pour négocier une connexion SMB avec notre serveur Samba. Si vous souhaitez imposer le SMB v3, remplacez « SMB2 » par « SMB3« .