Sélectionner Une Page

Samba/SMB sur Debian – Installation

RÉSEAU, SYSTÈMES, UTILITAIRES

Samba est une solution open source qui implémente le protocole SMB/CIFS (Server Message Block/Common Internet File System) sur les systèmes Unix, permettant une interopérabilité complète entre Linux et Windows. Sur Debian, il sert principalement à transformer un serveur Linux en serveur de fichiers, d'imprimantes (ou même en contrôleur de domaine) pour partager des ressources avec des postes clients Windows, macOS ou d'autres systèmes Linux.

SMB est intégré nativement dans Windows, ce qui permet une configuration automatique et transparente via l'explorateur de fichiers sans installation de logiciel tiers.

En revanche, Linux ne possède pas de support natif historique pour le protocole SMB ; il nécessite l'installation et la configuration manuelle d'un logiciel externe comme Samba pour agir comme serveur ou client, ainsi que des ajustements spécifiques pour la compatibilité des permissions et de l'authentification.

Lors de la configuration de Samba sous Linux vous déterminez quels dossiers sont partagés et avec quelles autorisations utilisateurs ( fonctionnalités que l'on peut retrouver dans l'Active Directory de Windows Server).

Lorsque l'on débute sur Linux, (objet de ce blog), et que vous n'utilisiez jusqu'à présent uniquement un PC Windows, vous serez sans doute interrogatif quant à sa configuration (qui pourra vous paraître, dans un premier temps, compliquée). Au regard de cette complexité et des multiples paramètres pouvant être ajoutés (ajout d'utilisateurs, autorisations, groupes, périphériques etc) - cet article permettra, simplement,  d'installer Samba sur Debian et de configurer (et comprendre en partie) un partage de dossiers/fichiers avec Windows (avec un seul utilisateur).

1. Installer Samba sous Debian 13

Connectez vous à votre machine avec le terminal de Cokpit (ou autre console Terminal SSH). Identifiez-vous en root - commande su ou su - (mot de passe à l'aveugle). Et, mettez à jour avec la commande (NB : vous pouvez faire les mises à jour préalablement avec l'onglet précedent sur Cockpit "Mise à jour de logiciel"). NB sur le terminal Cockpit, vous devez d'abord passer un commande pour le demande d'identification.

Copier coller chacun des codes ci-dessous et validez avec Entrée l'un après l'autre.

sudo apt update

Et installer Samba ainsi que les utilitaires client nécessaires

sudo apt install -y samba smbclient cifs-utils

Une fois l'installation terminée, smbd (partage de fichiers/imprimantes) et nmbd (résolution NetBIOS) sont activés automatiquement.

Puis, activez le démarrage automatique

systemctl enable smbd

Avec un navigateur de fichiers, vous pouvez visualiser le nouveau dossier samba créé dans le répertoire etc

2. Utilisateur de Samba

2.1. Associer l'utilisateur à Samba

Pour pouvoir utiliser Samba/SMB, il faut associer / autoriser chaque utilisateur à ce protocole.

Il faut donc que l'utilisateur soit créé (pour notre exemple, il n'y a qu'un seul utilisateur et, de fait déjà créé).

Pour être associé à Samba, il devra simplement indiquer un mot de passe (soit vous utilisez le même ou vous pouvez en dédier un spécifiquement à ce protocole de partage).

Pour définir le mot de passe associé à l'utilisateur, il faut utiliser la commande "smbpasswd

Copier coller le code qui suit en remplaçant "utilisateur" par votre nom.

sudo smbpasswd -a utilisateur

Tapez le mot de passe (toujours à l'aveugle). Puis, confirmez. Et, vous êtes maintenant ajouté au SMB.

NB vous pourrez ultérieurement, modifier le mot de passe utilisateur avec cette même commande.

2.2. Associer l'utilisateur à un groupe

Fonctionnalité optionnelle (si plusieurs utilisateurs par la suite).

La pratique commune et la plus simple est de créer un groupe dédié à la gestion des utilisateurs Samba. Aussi, cela facilite l’administration si plusieurs personnes doivent accéder au partage.

Copier coller la commande qui suit - pour la création d'un groupe - en indiquant un nom de groupe de votre choix à la place de "smbgroupe"

sudo groupadd smbgroupe

Ajoutez l'utilisateur à ce groupe (changez par votre nom)

sudo usermod -aG smbgroupe utilisateur 

3. Dossiers Partagés

3.1. Création de dossier

Créez ou déterminez le(s) dossier(s) qui sera(ont) partagé(s). Pour cet exemple, je vais en créer deux.

  • Le premier appelé "MEDIAS"  créé en "mode classique" (ligne de commande)
  • Et le second nommé "test" créé avec un navigateur de fichiers (ici avec Cockpit-files)

Ces deux dossiers partagés seront créés dans le répertoire srv. Répertoire que j'utiliserais principalement pour mon serveur.

NB il est tout à fait possible de partager directement le répertoire /srv mais il est fortement recommandé de ne pas partager la racine /srv entière pour des raisons de sécurité et de gestion des permissions. Plus particulièrement si vous envisagez de créer des utilisateurs et différents niveaux d'accès.

Création en ligne de commande

Le premier dossier à partager est créé avec la méthode classique en ligne de commande. Sur le Terminal (ouvert en root). La commande pour créer un dossier est mkdir suivi (espace) du chemin attribué. Copier coller la commande ci-dessous en indiquant (à la place de MEDIAS) le nom que vous souhaitez donner au dossier à créer.

sudo mkdir /srv/MEDIAS

Si vous avez un navigateur de fichiers, vous pouvez dès à présent, vérifier la création du dossier.

Ce dossier étant créé avec sudo (délégation d'une partie des droits à l'utilisateur) - le propriétaire par défaut du dossier est root.

Création avec un explorateur de fichiers

Vous pouvez aussi créer le dossier directement sur le navigateur de Fichiers. Sur Cockpit cliquez droit, puis sur le menu sélectionnez "Créer un répertoire".

Lors de la création du dossier (répertoire) indiquez le nom (ici "test").

Puis, bouton Créer.

Concernant la propriété, je viens de le créer sur mon compte connecté à Cockpit. Le propriétaire est donc l'utilisateur (morgyann pour l'exemple).

3.2. Droits d'accès

Nous devons maintenant déterminer les droits d'accès à mon (mes) dossier(s). Lors des deux mode de création, nous constatons que, par défaut,

  • le propriétaire a un accès en lecture et écriture
  • le groupe a un accès en lecture
  • les autres ont un accès en lecture

Plusieurs scénari peuvent être envisagés,

Changer les droits d'accès

Changer les droits d'accès au(x) dossier(s) avec, par exemple, la commande chmod -R 0775 qui modifie récursivement les permissions des fichiers et dossiers dans un répertoire spécifié.

Permissions appliquées :

  • Propriétaire (User) : Lecture, écriture et exécution (7).

  • Groupe (Group) : Lecture, écriture et exécution (7).
  • Autres (Others) : Lecture et exécution uniquement, pas d'écriture (5).

Changez "dossier" par le nom de votre dossier partagé (et le chemin si vous utilisez autre que le répertoire srv)

NB Ces opérations peuvent être faites directement sur l'interface de Cockpit-Files

sudo chmod -R 0775 /srv/dossier

Changer le propriétaire

Pour devenir propriétaire d'un dossier créé sous Debian, la commande principale est chown (change owner). Elle permet de transférer la propriété d'un fichier ou d'un répertoire vers un utilisateur spécifique. Quand elle est suivi (avec espace) de -R pour répercuter la propriété à tous les sous-dossiers et fichiers contenus.

sudo chmod -R nouvel_utilisateur /chemin/vers/le/dossier

Changer le groupe

Pour changer le groupe, c'est la commande chgrp avec le nom du groupe (si vous n'avez pas de groupe remettez le nom du propriétaire).

Ou avec la commande chown et ":" devant le groupe pour indiquer que seul le groupe est affecté (le propriétaire reste le même).

sudo chown -R :nouveau_groupe /chemin/vers/le/dossier    

Changer le propriétaire et le groupe

Pour changer le propriétaire et le groupe :

sudo chown -R nouvel_utilisateur:nouveau_groupe /chemin/vers/le/dossier   

Pour illustrer cet article, j'ai donc configuré mes deux dossiers comme suit.

4. Fichier smb.conf

Nous avons maintenant nos dossiers à partager ainsi que nos utilisateurs et/ou groupe autorisés pour le SMB.

Nous devons à présent configurer les accès sur le fichier smb.conf. Vous pouvez visualiser - (et éventuellement sauvegarder le contenu original avec un copier coller sur par ex un bloc-notes) - modifier soit avec l'éditeur de texte intégré à l'explorateur de fichier de Cockpit ou avec, plus conventionnnellement en ligne de commande sur le terminal.

Ce fichier est situé à /etc/samba/smb.conf

Pour une édition en mode classique via le terminal, (connexion en root), nous allons éditer ce fichier avec la commande nano suivi (avec espace) du chemin du fichier

nano /etc/samba/smb.conf

Le fichier s'affiche pour procéder à sa modification.

Descendez (molette souris ou flêches directionnelles) le curseur blanc jusqu'en bas du document.

Nous allons ajouter le "paragraphe (groupe de lignes)" suivant à la fin du fichier. Un "paragraphe" = un dossier à partager. Pour cet article, j'ai créé deux dossiers à partagés - en conséquence, je vais copier coller deux paragraphes.

[partage]
   comment = description
   path = /srv/partage
   browseable = yes
   read only = no
   valid users = @user-partage

Il nous faut maintenant modifier chacune des lignes comme suit :

[partage] par le nom à donner à celui-ci -vous mettez ce que vous voulez (pour mon exemple je reprends le nom de mon dossier ce qui donne par ex [medias])

comment = la description (je mets par ex comment = partage des medias)

path = /le-chemin/de-mes-medias (je mets pour l'ex /srv/MEDIAS)

browseable = yes pour qu'il soit visible (sinon no)

valid users = le(s) utilisateur(s) ou groupe(s) - précédé(s) de @ - qui peuvent voir les dossiers, séparé par une virgule si plusieurs (les droits des dossiers doivent être en cohérence)

Pour modifier le texte - déplacez-vous avec les flêches directionnelles  - Retour Arrière pour effacer.

Pour sauvegarder (et sortir) le fichier , touche Ctrl avec la touche X - puis touche O pour finir.

Et redémarrez le service samba

systemctl restart smbd

Pare-feu

Dans le cas, où vous auriez activé le pare-feu UFW sous Debian, vous devez ouvrir les ports suivants :

  • 137/UDP : NetBIOS Name Service

  • 138/UDP : NetBIOS Datagram Service

  • 139/TCP : NetBIOS Session Service

  • 445/TCP : SMB over TCP 

5. Accès partage SMB

Sur un PC Windows, ouvrez l'Explorateur de fichiers, cliquez sur réseau et, tapez sur la barre d'adresse l'ip locale de votre serveur avec \\ devant et \votre nom de partage (par exemple \\192.168.1.8\morgyann). Identifier vous et valider.

NB 1 Généralement, si votre session Windows comporte le même identifiant avec le même mot de passe, vous n'aurez pas à vous identifier.

NB 2 Certaines éditions ou versions de Windows ne peuvent se connecter à un système Linux. Dans ce cas, il vous faut activer (indiquer true) ou désactiver (indiquer false) via PowerShell la signature SMB sur le PC. Cf et plus d'infos ici.

morgyann

morgyann

Curieux de nature, j’ai découvert le monde des serveurs et plus particulièrement des applications Docker en apprenant au fil des essais et des ressources partagées sur le web. En retour, je partage ce que je connais et plus particulièrement à l'intention des débutants.

Si vous avez envie de proposer un article, n'hésitez pas à me contacter.

Soutenons l'utilisation des applications open source et leurs développeurs.