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.).
Présenation
Qu’est-ce que Samba ?
Samba est un logiciel libre qui permet de partager des fichiers et des imprimantes entre ordinateurs, même s’ils utilisent des systèmes d’exploitation différents. Principalement, Samba facilite la communication entre des machines Linux/Unix et des machines Windows.
Grâce à Samba, un ordinateur Linux peut agir comme un serveur de fichiers accessible depuis un poste Windows, ou inversement. C’est un outil essentiel dans de nombreux réseaux pour centraliser les ressources partagées.
À quoi sert Samba ?
Samba sert à créer un espace commun où les utilisateurs peuvent accéder, modifier et partager des fichiers et des imprimantes, quel que soit leur système. Cela simplifie le travail collaboratif et évite de dupliquer les données.
Il est très utilisé dans les entreprises pour gérer des dossiers partagés, permettre l’accès à des imprimantes réseau, et même intégrer un serveur Linux dans un domaine Windows Active Directory.
Comment fonctionne Samba ?
Samba fonctionne en implémentant les protocoles SMB (Server Message Block) et CIFS (Common Internet File System), qui sont ceux utilisés par Windows pour partager des ressources sur le réseau.
Un serveur Samba propose des partages, c’est-à-dire des dossiers ou imprimantes accessibles aux autres machines. Les clients, qu’ils soient Windows, Linux ou macOS, peuvent se connecter à ces partages en fonction des droits attribués.
Pourquoi utiliser Samba ?
Samba est très utile lorsqu’on souhaite faire communiquer des machines avec des systèmes différents. Il permet de centraliser les données et de faciliter l’accès aux ressources réseau.
Il est aussi performant, personnalisable, et bénéficie d’une large communauté, ce qui garantit une bonne stabilité et un support régulier.
Cas d’usage courants
Samba est souvent utilisé pour :
-
Partager des dossiers entre postes Windows et Linux,
-
Offrir un accès à des imprimantes réseau,
-
Intégrer un serveur Linux dans un domaine Active Directory,
-
Centraliser les fichiers utilisateurs sur un serveur,
-
Gérer les permissions d’accès aux ressources partagées.
En résumé
Samba est une solution incontournable pour partager des fichiers et imprimantes entre différents systèmes d’exploitation. Il facilite le travail en réseau en garantissant compatibilité et sécurité.
Installation
Installer les paquets
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.
Créer un partage
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.
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
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
Créer un utilisateur et un groupe
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 rakouns
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 rakouns
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 "rakouns" au groupe "partage" :
gpasswd -a rakouns partage
Le tour est joué pour l'utilisateur et le groupe !
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.
Accès 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.
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
Le message accès refusé apparaît, c'est normal, car je dois m'authentifier, donc j'utilise le compte "rakounst" 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.