Samba est une réimplémentation gratuite et open source du protocole de partage de fichiers réseau SMB/CIFS qui permet aux utilisateurs finaux d'accéder aux fichiers, imprimantes et autres ressources partagées.
Ce didacticiel explique comment installer Samba sur Ubuntu 18.04 et le configurer en tant que serveur autonome pour permettre le partage de fichiers entre différents systèmes d'exploitation sur un réseau.
Nous allons créer les partages et 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 :
- utilisateurs - 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 appareils de votre réseau. Plus loin dans ce didacticiel, 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 continuer, assurez-vous que vous êtes connecté à votre système Ubuntu 18.04 en tant qu'utilisateur avec des privilèges sudo.
Installer Samba sur Ubuntu #
Samba est disponible dans les dépôts officiels d'Ubuntu. Pour l'installer sur votre système Ubuntu, suivez les étapes ci-dessous :
-
Commencez par mettre à jour l'index des packages apt :
sudo apt update
-
Installez le package Samba avec la commande suivante :
sudo apt install samba
-
Une fois l'installation terminée, le service Samba démarrera automatiquement. Pour vérifier si le serveur Samba est en cours d'exécution, tapez :
sudo systemctl status smbd
La sortie devrait ressembler à quelque chose comme ci-dessous, indiquant que le service Samba est actif et en cours d'exécution :
● smbd.service - Samba SMB Daemon Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019-11-27 09:25:38 UTC; 2min 12s ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Main PID: 15142 (smbd) Status: "smbd: ready to serve connections..." Tasks: 4 (limit: 1152) CGroup: /system.slice/smbd.service ...
À ce stade, Samba est installé et prêt à être configuré.
Configuration du pare-feu #
Si vous avez un pare-feu en cours d'exécution sur votre système Ubuntu, vous devrez autoriser les connexions UDP entrantes sur les ports 137
et 138
et connexions TCP sur les ports 139
et 445
.
En supposant que vous utilisez UFW
pour gérer votre pare-feu, vous pouvez ouvrir les ports en activant le profil "Samba" :
sudo ufw allow 'Samba'
Configuration des options globales de Samba #
Avant d'apporter des modifications au fichier de configuration Samba, créez une sauvegarde à des fins de référence future :
sudo cp /etc/samba/smb.conf{,.backup}
Le fichier de configuration par défaut fourni avec le package Samba est configuré pour un serveur Samba autonome. Ouvrez le fichier et assurez-vous que server role
est défini sur standalone server
sudo nano /etc/samba/smb.conf
/etc/samba/smb.conf...
# Most people will want "standalone sever" or "member server".
# Running as "active directory domain controller" will require first
# running "samba-tool domain provision" to wipe databases and create a
# new domain.
server role = standalone server
...
Par défaut, Samba écoute sur toutes les interfaces. Si vous souhaitez restreindre l'accès au serveur Samba uniquement à partir de votre réseau interne, décommentez les deux lignes suivantes et spécifiez les interfaces à lier :
/etc/samba/smb.conf...
# The specific set of interfaces / networks to bind to
# This can be either the interface name or an IP address/netmask;
# interface names are normally preferred
interfaces = 127.0.0.0/8 eth0
# Only bind to the named interfaces and/or networks; you must use the
# 'interfaces' option above to use this.
# It is recommended that you enable this feature if your Samba machine is
# not protected by a firewall or is a firewall itself. However, this
# option cannot handle dynamic or non-broadcast interfaces correctly.
bind interfaces only = yes
...
Une fois terminé, exécutez le testparm
utilitaire pour vérifier le fichier de configuration Samba pour les erreurs. S'il n'y a pas d'erreurs de syntaxe, vous verrez Loaded services file OK.
Enfin, redémarrez les services Samba avec :
sudo systemctl restart smbd
sudo systemctl restart nmbd
Création d'utilisateurs Samba et de la structure de répertoire #
Pour une maintenabilité et une flexibilité plus faciles au lieu d'utiliser les répertoires personnels standard (/home/user
) tous les répertoires et données Samba seront situés dans le /samba
répertoire.
Pour créer le /samba
type de répertoire :
sudo mkdir /samba
Définissez la propriété du groupe sur sambashare
. Ce groupe est créé lors de l'installation de Samba, plus tard nous ajouterons tous les utilisateurs de Samba à ce groupe.
sudo chgrp sambashare /samba
Samba utilise les utilisateurs Linux et le système d'autorisation de groupe, mais possède son propre mécanisme d'authentification distinct de l'authentification Linux standard. Nous allons créer les utilisateurs en utilisant le standard Linux useradd
tool puis définissez le mot de passe utilisateur avec le smbpasswd
utilitaire.
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 en écriture à tous les partages sur le 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
Le useradd
les options ont les significations suivantes :
-M
-ne pas créer le répertoire personnel de l'utilisateur. Nous allons créer ce répertoire manuellement.-d /samba/josh
- définir le répertoire personnel de l'utilisateur sur/samba/josh
.-s /usr/sbin/nologin
- désactiver l'accès au shell pour cet utilisateur.-G sambashare
- ajouter l'utilisateur ausambashare
groupe.
Créez le répertoire personnel de l'utilisateur et définissez la propriété du répertoire sur l'utilisateur josh
et le groupe sambashare
:
sudo mkdir /samba/josh
sudo chown josh:sambashare /samba/josh
La commande suivante ajoutera le bit setgid au /samba/josh
répertoire 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 sur 2770
et le sadmin
l'utilisateur crée un nouveau fichier l'utilisateur josh
ne pourra pas lire/écrire dans ce fichier.
sudo chmod 2770 /samba/josh
Ajoutez le josh
compte utilisateur à la base de données Samba en définissant le mot de passe utilisateur :
sudo smbpasswd -a josh
Vous serez invité à entrer 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 pour activer l'exécution du compte Samba :
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
.
Ensuite, créons un utilisateur et un groupe sadmin
. Tous les membres de ce groupe auront des autorisations administratives. Plus tard, si vous souhaitez accorder des autorisations administratives à un autre utilisateur, ajoutez simplement cet utilisateur au sadmin
groupe.
Créez 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 ajoutez l'utilisateur à la fois sadmin
et sambashare
groupes.
Définissez un mot de passe et activez l'utilisateur :
sudo smbpasswd -a sadmin
sudo smbpasswd -e sadmin
Ensuite, créez les Users
répertoire de partage :
sudo mkdir /samba/users
Définissez la propriété du répertoire sur l'utilisateur sadmin
et le groupe sambashare
:
sudo chown sadmin:sambashare /samba/users
Ce répertoire sera accessible par tous les utilisateurs authentifiés. Le chmod
suivant la commande donne un accès en écriture/lecture aux membres du sambashare
groupe dans le /samba/users
répertoire :
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
/etc/samba/smb.conf[users]
path = /samba/users
browseable = yes
read only = no
force create mode = 0660
force directory mode = 2770
valid users = @sambashare @sadmin
[josh]
path = /samba/josh
browseable = no
read only = no
force create mode = 0660
force directory mode = 2770
valid users = josh @sadmin
Les options ont les significations suivantes :
[users]
et[josh]
- 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 répertorié dans la liste des partages disponibles. En réglant surno
les autres utilisateurs ne pourront pas voir le partage.read only
- Si les utilisateurs spécifiés dans levalid users
list sont capables d'é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 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 smbd
sudo systemctl restart nmbd
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 Linux peuvent accéder au partage Samba à partir de 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 smbclient
Le package n'est pas préinstallé sur la plupart des distributions Linux, vous devrez donc l'installer avec votre gestionnaire de packages de 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 exécuteriez :
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 avez entré le mot de passe, vous serez connecté à l'interface de ligne de commande Samba.
Try "help" to get a list of possible commands.
smb: \>
Monter le partage Samba #
Pour monter un partage Samba sur Linux, vous devez d'abord installer le cifs-utils
paquet.
Sur Ubuntu et Debian, exécutez :
sudo apt install cifs-utils
Sur CentOS et Fedora, exécutez :
sudo yum install cifs-utils
Créez ensuite un point de montage :
sudo mkdir /mnt/smbmount
Montez le partage à l'aide de 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 /mnt/smbmount
point de montage que vous exécuteriez :
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 dans 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ît :
- Sélectionnez "Utilisateur enregistré", entrez le nom d'utilisateur et le mot de passe Samba et cliquez sur "Se 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 à partir de la ligne de commande ou à l'aide du Finder du gestionnaire de fichiers macOS par défaut. Les étapes suivantes montrent comment accéder au partage à l'aide du Finder.
- Ouvrez "Finder", sélectionnez "Aller" et cliquez sur "Se connecter à".
- Dans "Se 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ît :
- Sélectionnez "Utilisateur enregistré", entrez le nom d'utilisateur et le mot de passe Samba et cliquez sur "Se connecter".
- Les fichiers sur le serveur Samba seront affichés.
Connexion à un partage Samba depuis Windows #
Les utilisateurs Windows ont également la possibilité de 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 Windows.
- Ouvrez l'Explorateur de fichiers et dans le volet de gauche, cliquez avec le bouton droit sur "Ce PC".
- Sélectionnez "Choisir un emplacement réseau personnalisé", puis cliquez sur "Suivant".
- Dans « Adresse Internet ou réseau », saisissez l'adresse du partage Samba au format suivant
\\samba_hostname_or_server_ip\sharename
. - Cliquez sur "Suivant" et vous serez invité à entrer les identifiants 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 récupéré 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.