Serveur SAMBA sur Ubuntu
Table des matières:
- Conditions préalables
- Installer Samba sur Ubuntu
- Configuration du pare-feu
- Configuration des options globales de Samba
- Création d'utilisateurs Samba et d'une structure de répertoires
- Création d'utilisateurs Samba
- Configuration des partages Samba
- Connexion à un partage Samba depuis Linux
- Utilisation du client smbclient
- Montage du partage Samba
- Utilisation de l'interface graphique
- Conclusion
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 fournir le partage de fichiers sur 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é.
Actions:
- 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.
Conditions préalables
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 référentiels 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émarre automatiquement. Pour vérifier si le serveur Samba fonctionne, 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
En supposant que vous utilisez
UFW
pour gérer votre pare-feu, vous pouvez ouvrir les ports en activant le profil 'Samba':
Configuration des options globales de Samba
Avant d'apporter des modifications au fichier de configuration Samba, créez une sauvegarde pour 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 le 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 cela fait, exécutez l'utilitaire
testparm
pour rechercher des erreurs dans le fichier de configuration Samba. 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 d'une structure de répertoires
Pour faciliter la maintenance et la flexibilité au lieu d'utiliser les répertoires de base standard (
/home/user
), tous les répertoires et données Samba seront situés dans le répertoire
/samba
.
Pour créer le répertoire
/samba
, tapez:
sudo mkdir /samba
Définissez la propriété du groupe sur
sambashare
. Ce groupe est créé lors de l'installation de Samba, nous ajouterons plus tard tous les utilisateurs Samba à ce groupe.
sudo chgrp sambashare /samba
Samba utilise des utilisateurs Linux et un 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 à l'aide de l'outil Linux
useradd
standard, puis définir le mot de passe 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 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
Les options
useradd
ont les significations suivantes:
-
-M
-ne crée pas le répertoire personnel de l'utilisateur. Nous allons créer manuellement ce répertoire.-d /samba/josh
- définit le répertoire de base de l'utilisateur sur/samba/josh
.-s /usr/sbin/nologin
- désactive l'accès au shell pour cet utilisateur.-G sambashare
- ajoute l'utilisateur au groupesambashare
.
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 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 propriétaire du groupe de
sambashare
. Par exemple, si vous ne définissez pas les autorisations du répertoire sur
2770
et que l'utilisateur
sadmin
crée un nouveau fichier, l'utilisateur
josh
ne pourra pas lire / écrire dans ce fichier.
sudo chmod 2770 /samba/josh
Ajoutez le compte utilisateur
josh
à la base de données Samba en définissant le mot de passe utilisateur:
sudo smbpasswd -a josh
Vous serez invité à saisir et à confirmer le mot de passe 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 groupe
sadmin
.
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 ajoutera l'utilisateur aux groupes
sadmin
et
sambashare
.
Définissez un mot de passe et activez l'utilisateur:
sudo smbpasswd -a sadmin
sudo smbpasswd -e sadmin
Ensuite, créez le répertoire de partage des
Users
:
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 à tous les utilisateurs authentifiés. La commande
chmod
suivante donne un accès en écriture / lecture aux membres du groupe
sambashare
dans le répertoire
/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
path = /samba/users browseable = yes read only = no force create mode = 0660 force directory mode = 2770 valid users = @sambashare @sadmin 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:
-
path
- Le chemin vers le partage.browseable
-browseable
si le partage doit être répertorié dans la liste des partages disponibles. En définissant surno
autre utilisateur ne pourra pas voir le partage.read only
- Indique si les utilisateurs spécifiés dans la liste desvalid 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 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, à l'aide du gestionnaire de fichiers ou monter le partage Samba.
Utilisation du client smbclient
smbclient
est un outil qui vous permet d'accéder à Samba à partir de la ligne de commande. Le package
smbclient
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 vous connecter à un partage nommé
josh
sur un serveur Samba avec l'adresse IP
192.168.121.118
tant qu'utilisateur
josh
vous devez exécuter:
smbclient //192.168.121.118/josh -U josh
Vous serez invité à saisir le mot de passe utilisateur.
Enter WORKGROUP\josh's password:
Une fois le mot de passe entré, 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
cifs-utils
.
Sous Ubuntu et Debian, exécutez:
sudo apt install cifs-utils
Sur CentOS et Fedora, exécutez:
sudo yum install cifs-utils
Ensuite, créez 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
tant qu'utilisateur
josh
au point de montage
/mnt/smbmount
, vous exécuterez:
sudo mount -t cifs -o username=josh //192.168.121.118/josh /mnt/smbmount
Vous serez invité à saisir le mot de passe utilisateur.
Password for josh@//192.168.121.118/josh: ********
Utilisation de l'interface graphique
Files, 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 "Se connecter au serveur", entrez l'adresse du partage Samba au format
smb://samba_hostname_or_server_ip/sharename
sharename.Cliquez sur "Connect" et l'écran suivant apparaîtra:
Conclusion
Dans ce tutoriel, vous avez appris à installer le serveur Samba sur Ubuntu 18.04 et à créer différents types de partage et d'utilisateurs. Nous vous avons également montré comment vous connecter au serveur Samba à partir d'appareils Linux, macOS et Windows.
samba ubuntuComment installer et configurer un serveur nfs sur Ubuntu 18.04
Le système de fichiers réseau (NFS) est un protocole de système de fichiers distribué qui vous permet de partager des répertoires distants sur un réseau. Dans ce tutoriel, nous allons voir comment configurer un serveur NFSv4 sur Ubuntu 18.04.
Comment installer et configurer redis sur Ubuntu 18.04
Redis est un magasin de structure de données en mémoire libre. Il peut être utilisé comme base de données, cache et courtier de messages et prend en charge diverses structures de données telles que des chaînes, des hachages, des listes, des ensembles, etc. Ce tutoriel décrit comment installer et configurer Redis sur un serveur Ubuntu 18.04.
Comment installer et configurer Samba sur Centos 7
Dans ce didacticiel, nous allons montrer comment installer Samba sur CentOS 7 et le configurer en tant que serveur autonome pour fournir le partage de fichiers sur différents systèmes d'exploitation sur un réseau.