Serveur de fichiers Debian : installer et configurer Samba 4

I. Présentation

Dans ce tutoriel, je vous propose d'installer et configurer Samba 4 sur un serveur Debian 11 afin de créer un serveur de fichiers sous Linux, avec un partage de fichiers.

Qu'est-ce que Samba ?

Samba est une application libre qui tourne sous Linux et qui permet de créer un serveur de fichiers en s'appuyant sur l'implémentation du protocole SMB (CIFS). C'est précisément cette fonctionnalité qui va nous intéresser aujourd'hui, mais sachez que Samba permet également de partager des imprimantes et de créer un véritable contrôleur de domaine Active Directory (prise en charge des GPO, Kerberos, LDAP, DNS, etc.).

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)

Quel est l'objectif de ce tutoriel ?

Nous allons installer le paquet Samba sous Debian 11 dans le but de monter un serveur de fichiers. Ce serveur de fichiers contiendra un seul partage nommé tout simplement "Partage" et il sera accessible par plusieurs utilisateurs. Nous verrons également comment accéder à ce partage depuis un poste client.

Si vous découvrez le protocole SMB à l'occasion de ce tutoriel, rendez-vous à la fin de l'article !

Ready ? Go !

II. 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
apt-get install -y 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.

III. 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
   browseable = yes
   valid users = @partage
Configurer un partage dans Samba
Configurer un partage dans Samba

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 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é "it-connect" et qui sera membre de ce groupe.

Créez l'utilisateur "it-connect" et définissez son mot de passe :

adduser it-connect

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 "it-connect" :

smbpasswd -a it-connect
Créer l'utilisateur et définir son mot de passe Samba avec smbpasswd
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
Ajouter l'utilisateur au groupe associé à notre partage

Avec gpasswd ou usermod, ajoutez l'utilisateur "it-connect" au groupe "partage" :

gpasswd -a it-connect 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/
Préparer le dossier du partage Samba
Préparer le dossier du partage Samba

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 "it-connect" dispose d'un partage personnel (correspondant à son dossier personnel définit au niveau de Linux) accessible à l'adresse suivante :

\\<nom-du-serveur>\it-connect

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

Accéder au partage Samba depuis Windows
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 "it-connect" 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 ?

Si l'on regarde les droits du fichier "IT-Connect.txt", on peut voir que l'utilisateur propriétaire est "it-connect" et que le groupe propriétaire est "it-connect" également. En bref, il n'y a que l'utilisateur "it-connect" qui peut modifier ce fichier. Les autres utilisateurs pourront seulement le lire.

C'est gênant, car l'objectif c'est que plusieurs utilisateurs puissent accéder à ce partage et travailler sur les mêmes fichiers et dossiers. Nous allons voir comment ajuster la configuration de notre partage dans Samba.

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

VII. Découvrir le protocole SMB

Le partage de fichiers avec Samba s'appuie sur le protocole SMB, mais connaissez-vous réellement ce protocole ? Je vous propose une introduction avec mon article "Le protocole SMB pour les débutants", disponible également au format vidéo.

Pour finir, voici le lien vers la documentation de Samba pour aller plus loin.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian BURNEL

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.

Nombre de posts de cet auteur : 5499.Voir tous les posts

14 thoughts on “Serveur de fichiers Debian : installer et configurer Samba 4

  • Salut ! 🙂

    Étant Gestionnaire IT (orienté infra), depuis 7 ans, je voulais te dire que c’est vraimen cool la démarche de ton site !

    Y’a plein de petit truc sympa (même si on utiliserai pas tout y’a bien quelques truc qui m’ont bien renseigner).

    Continue en tout cas à publier, je suis abonné ^^

    Répondre
  • Bonjour,

    Je rejoins le commentaire de Xavier, ce site est une mine d’or.
    Merci de nous faire partager votre expertise et continuez comme cela.
    @+

    Répondre
    • Merci beaucoup pour l’expérience que tu viens de partager avec nous

      Répondre
      • Très pratique, merci !
        Un article sur le lien possible avec un serveur LDAP est il prévu ?

        Répondre
  • un tuto pour en faire un contrôleur de domaine est en cours ?

    Répondre
  • c’est possible de faire du dfs-r entre un serveur avec samba et un filer windows ?

    Répondre
  • Salut. Un grand merci pour ce tuto qui à fonctionner du premier coup. Au moment ou j’ai decouvert ton tuto j’expérimentais la mise en place d’un OpenVPN sur la même Débian 11 avec une connection depuis un W10. La connexion s’effectue très bien. Je souhaite maintenand accèder au dossier « partage » depuis le W10 via la connexion VPN mais je n’y arrive pas. J’ai beau utiliser les méthodes que tu préconise et qui marche en local, mais pas avec le VPN. Si tu a un idée merci d’avance. Et bonne continuation.

    Répondre
  • Bonjour,
    merci pour l’article, très bien expliqué.

    Attention, petite coquille néanmoins :
    Dans la configuration des partages, c’est browseable au lieu de browsable.

    Répondre
  • Bonjour,
    Très claire et bien expliqué
    Juste une question :
    J’accède bien à mon partage depuis mon pc perso, mais comment faire pour y accéder avec mon pc pro qui appartient à un ad ?

    Répondre
  • Merci pour ces explications au top, mon serveur Samba fonctionne ! Et tu détailles chaque étape, génial !

    Répondre
  • Un grand merci pour ce tuto très intéressant et facile à suivre. Il m’a permis de récupérer l’accès à un partage réseau SAMBA que j’avais perdu suite à la mise à niveau de DEBIAN Buster vers DEBIAN Bluseyes sur un Raspberry.

    Sans avoir toutes les compétences requises, je ne voyais pas l’intérêt de mettre en place un lecteur réseau sous Windows 10 et pourtant, c’est cette démarche qui m’a finalement permis de retrouver l’accès au dossier « partage » du Raspberry depuis un PC sous Windows grâce à son explorateur de fichier via le SMB2 Linux du Raspberry.

    Répondre
  • Merci pour ce tres bon tuto sur le partaga samba avec linux , fonctionne du premier coup sur debian 12

    Répondre

Répondre à Florian Burnel Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.