Samba est une réimplémentation libre et gratuite du protocole de partage de fichiers en réseau SMB/CIFS qui permet aux utilisateurs finaux d’accéder aux fichiers, aux imprimantes et à d’autres ressources partagées.
Dans ce tutoriel, nous allons montrer comment installer Samba sur CentOS 7 et le configurer en tant que serveur autonome pour fournir un partage de fichiers entre différents systèmes d’exploitation sur un réseau.
Nous allons créer les partages et les utilisateurs Samba suivants.
Utilisateurs:
- sadmin – Un utilisateur administratif avec un accès en lecture et en écriture à tous les partages.
- josh – Un utilisateur régulier avec son propre partage de fichiers privé.
Partages:
- users – Ce partage sera accessible avec des autorisations de lecture/écriture par tous les utilisateurs.
- josh – Ce partage sera accessible avec des autorisations de lecture/écriture uniquement par les utilisateurs josh et sadmin.
Les partages de fichiers seront accessibles depuis tous les périphériques de votre réseau. Plus tard dans le tutoriel, nous fournirons également des instructions détaillées sur la façon de se connecter au serveur Samba à partir de clients Linux, Windows et macOS.
Prérequis #
Avant de commencer, assurez-vous que vous êtes connecté à votre système CentOS 7 en tant qu’utilisateur avec des privilèges sudo.
Installation de Samba sur CentOS #
Samba est disponible à partir des dépôts CentOS standard. Pour l’installer sur votre système CentOS, exécutez la commande suivante :
sudo yum install samba samba-client
Une fois l’installation terminée, démarrez les services Samba et activez-les pour qu’ils démarrent automatiquement au démarrage du système :
sudo systemctl start smb.service
sudo systemctl start nmb.service
sudo systemctl enable smb.service
sudo systemctl enable nmb.service
Le service smbd
fournit des services de partage de fichiers et d’impression et écoute sur les ports TCP 139 et 445. Le service nmbd
fournit des services de nommage NetBIOS sur IP aux clients et écoute sur le port UDP 137.
Configuration du pare-feu #
Maintenant que Samba est installé et fonctionne sur votre machine CentOS, vous devrez configurer votre pare-feu et ouvrir les ports nécessaires. Pour ce faire, exécutez les commandes suivantes :
firewall-cmd --permanent --zone=public --add-service=samba
firewall-cmd --zone=public --add-service=samba
Création des utilisateurs Samba et de la structure du répertoire #
Pour faciliter la maintenabilité et la flexibilité au lieu d’utiliser les répertoires personnels standard (/home/user
), tous les répertoires et les données Samba seront situés dans le répertoire /samba
.
Débutez par la création du répertoire /samba
:
sudo mkdir /samba
Créer un nouveau groupe nommé sambashare
. Plus tard, nous ajouterons tous les utilisateurs Samba à ce groupe.
sudo groupadd sambashare
Définir la propriété du groupe du répertoire /samba
à sambashare
:
sudo chgrp sambashare /samba
Samba utilise les utilisateurs Linux et le système de permission de groupe mais il a son propre mécanisme d’authentification séparé de l’authentification standard de Linux. Nous allons créer les utilisateurs en utilisant l’outil standard Linux useradd
puis définir le mot de passe de l’utilisateur avec l’utilitaire smbpasswd
.
Comme nous l’avons mentionné dans l’introduction, nous allons créer un utilisateur régulier qui aura accès à son partage de fichiers privé et un compte administratif avec un accès en lecture et écriture à tous les partages du serveur Samba.
Création d’utilisateurs Samba #
Pour créer un nouvel utilisateur nommé josh
, utilisez la commande suivante :
sudo useradd -M -d /samba/josh -s /usr/sbin/nologin -G sambashare josh
Les options useradd
ont les significations suivantes :
Créer le répertoire personnel de l’utilisateur et définir la propriété du répertoire à l’utilisateur josh
et au groupe sambashare
:
sudo mkdir /samba/josh
sudo chown josh:sambashare /samba/josh
La commande suivante ajoutera le bit setgid au répertoire /samba/josh
afin que les fichiers nouvellement créés dans ce répertoire héritent du groupe du répertoire parent. De cette façon, quel que soit l’utilisateur qui crée un nouveau fichier, le fichier aura le groupe-propriétaire de sambashare
. Par exemple, si vous ne définissez pas les autorisations du répertoire à 2770
et que l’utilisateur sadmin
crée un nouveau fichier, l’utilisateur josh
ne pourra pas lire/écrire sur ce fichier.
sudo chmod 2770 /samba/josh
Ajouter le compte utilisateur josh
à la base de données Samba en définissant le mot de passe de l’utilisateur :
sudo smbpasswd -a josh
Vous serez invité à saisir et à confirmer le mot de passe de l’utilisateur.
New SMB password:Retype new SMB password:Added user josh.
Une fois le mot de passe défini, activez le compte Samba en tapant :
sudo smbpasswd -e josh
Enabled user josh.
Pour créer un autre utilisateur, répétez le même processus que lors de la création de l’utilisateur josh
.
Puis, créons un utilisateur et un groupe sadmin
. Tous les membres de ce groupe auront des permissions administratives. Plus tard, si vous voulez accorder des permissions administratives à un autre utilisateur, ajoutez simplement cet utilisateur au groupe sadmin
.
Créons l’utilisateur administratif en tapant :
sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin
La commande ci-dessus créera également un groupe sadmin
et ajoutera l’utilisateur aux deux groupes sadmin
et sambashare
.
Définir un mot de passe et activer l’utilisateur:
sudo smbpasswd -a sadmin
sudo smbpasswd -e sadmin
Puis, créer le répertoire de partage Users
:
sudo mkdir /samba/users
Définir la propriété du répertoire à l’utilisateur sadmin
et au groupe sambashare
:
sudo chown sadmin:sambashare /samba/users
Ce répertoire sera accessible par tous les utilisateurs authentifiés. La commande suivante configure l’accès en écriture/lecture aux membres du groupe sambashare
dans le répertoire /samba/users
:
sudo chmod 2770 /samba/users
Configuration des partages Samba#
Ouvrez le fichier de configuration Samba et ajoutez les sections:
sudo nano /etc/samba/smb.conf
Les options ont les significations suivantes :
-
et
– Les noms des partages que vous utiliserez lors de la connexion.
-
path
– Le chemin d’accès au partage. -
browseable
– Si le partage doit être listé dans la liste des partages disponibles. En définissant àno
, les autres utilisateurs ne pourront pas voir le partage. -
read only
– Si les utilisateurs spécifiés dans la listevalid users
peuvent écrire sur ce partage. -
force create mode
– Définit les autorisations pour les fichiers nouvellement créés dans ce partage. -
force directory mode
– Définit les autorisations pour les répertoires nouvellement créés dans ce partage. -
valid users
– Une liste d’utilisateurs et de groupes qui sont autorisés à accéder au partage. Les groupes sont préfixés par le symbole@
.
Pour plus d’informations sur les options disponibles, consultez la page de documentation du fichier de configuration Samba.
Une fois cela fait, redémarrez les services Samba avec :
sudo systemctl restart smb.service
sudo systemctl restart nmb.service
Dans les sections suivantes, nous vous montrerons comment vous connecter à un partage Samba à partir de clients Linux, macOS et Windows.
Connexion à un partage Samba depuis Linux #
Les utilisateurs de Linux peuvent accéder au partage Samba depuis la ligne de commande, en utilisant le gestionnaire de fichiers ou monter le partage Samba.
Utilisation du client smbclient #
smbclient
est un outil qui vous permet d’accéder à Samba depuis la ligne de commande. Le paquet smbclient
n’est pas pré-installé sur la plupart des distros Linux, vous devrez donc l’installer avec le gestionnaire de paquets de votre distribution.
Pour installer smbclient
sur Ubuntu et Debian exécutez:
sudo apt install smbclient
Pour installer smbclient
sur CentOS et Fedora exécutez:
sudo yum install samba-client
La syntaxe pour accéder à un partage Samba est la suivante :
mbclient //samba_hostname_or_server_ip/share_name -U username
Par exemple, pour se connecter à un partage nommé josh
sur un serveur Samba avec l’adresse IP 192.168.121.118
en tant qu’utilisateur josh
, vous devez exécuter :
smbclient //192.168.121.118/josh -U josh
Vous serez invité à entrer le mot de passe de l’utilisateur.
Enter WORKGROUP\josh's password:
Une fois que vous aurez saisi le mot de passe, vous serez connecté à l’interface de ligne de commande Samba.
Try "help" to get a list of possible commands.smb: \>
Montage du partage Samba #
Pour monter un partage Samba sur Linux, vous devez d’abord installer le paquet cifs-utils
.
Sur Ubuntu et Debian exécutez :
sudo apt install cifs-utils
Sur CentOS et Fedora exécutez :
sudo yum install cifs-utils
Puis, créez un point de montage :
sudo mkdir /mnt/smbmount
Montez le partage en utilisant la commande suivante :
sudo mount -t cifs -o username=username //samba_hostname_or_server_ip/sharename /mnt/smbmount
Par exemple, pour monter un partage nommé josh
sur un serveur Samba avec l’adresse IP 192.168.121.118
en tant qu’utilisateur josh
au point de montage /mnt/smbmount
, vous devez exécuter :
sudo mount -t cifs -o username=josh //192.168.121.118/josh /mnt/smbmount
Vous serez invité à entrer le mot de passe de l’utilisateur.
Password for josh@//192.168.121.118/josh: ********
Utilisation de l’interface graphique #
Fichiers, le gestionnaire de fichiers par défaut de Gnome a une option intégrée pour accéder aux partages Samba.
- Ouvrez Fichiers et cliquez sur « Autres emplacements » dans la barre latérale.
- Dans « Connexion au serveur », entrez l’adresse du partage Samba au format suivant
smb://samba_hostname_or_server_ip/sharename
. - Cliquez sur « Connecter » et l’écran suivant apparaîtra:
- Sélectionnez « Utilisateur enregistré », entrez le nom d’utilisateur et le mot de passe Samba et cliquez sur « Connecter ».
- Les fichiers sur le serveur Samba seront affichés.
Connexion à un partage Samba depuis macOS #
Dans macOS, vous pouvez accéder aux partages Samba soit à partir de la ligne de commande, soit en utilisant le Finder, le gestionnaire de fichiers par défaut de macOS. Les étapes suivantes montrent comment accéder au partage à l’aide du Finder.
- Ouvrir « Finder », sélectionner « Go » et cliquer sur « Connecter à ».
- Dans « Connecter à », entrez l’adresse du partage Samba au format suivant
smb://samba_hostname_or_server_ip/sharename
.
- Cliquez sur « Connecter » et l’écran suivant apparaîtra:
- Sélectionnez « Utilisateur enregistré », entrez le nom d’utilisateur et le mot de passe Samba et cliquez sur « Connecter ».
- Les fichiers sur le serveur Samba seront affichés.
Connexion à un partage Samba depuis Windows #
Les utilisateurs de Windows ont également une option pour se connecter au partage Samba à partir de la ligne de commande et de l’interface graphique. Les étapes ci-dessous montrent comment accéder au partage à l’aide de l’explorateur de fichiers de Windows.
- Ouvrir l’explorateur de fichiers et dans le volet gauche, faire un clic droit sur « Ce PC ».
- Sélectionner « Choisir un emplacement réseau personnalisé » puis cliquer sur « Suivant ».
- Dans « Adresse Internet ou réseau », saisir l’adresse du partage Samba au format suivant
\samba_hostname_or_server_ip\sharename
.
- Cliquez sur « Suivant » et vous serez invité à saisir les informations de connexion comme indiqué ci-dessous:
- Dans la fenêtre suivante, vous pouvez saisir un nom personnalisé pour l’emplacement réseau. Celui par défaut sera repris par le serveur Samba.
- Cliquez sur « Suivant » pour passer au dernier écran de l’assistant de configuration de connexion.
- Cliquez sur « Terminer » et les fichiers sur le serveur Samba seront affichés.
Conclusion #
Dans ce tutoriel, vous avez appris à installer un serveur Samba sur CentOS 7 et à créer différents types de partages et d’utilisateurs. Nous vous avons également montré comment vous connecter au serveur Samba à partir de périphériques Linux, macOS et Windows.