Samba est un logiciel gratuit et open source qui peut être utilisé pour partager des fichiers, des dossiers et des imprimantes entre les systèmes Linux et Windows. Il est également utilisé pour l'authentification et l'autorisation, la résolution de nom et l'annonce de service. Il peut être exécuté sur différents systèmes d'exploitation, notamment Linux, Unix, OpenVMS et bien d'autres.
Dans ce tutoriel, nous allons apprendre à installer Samba et à le configurer en tant que serveur de partage autonome sur CentOS 8.
Prérequis
- Un serveur exécutant CentOS 8.
- Un mot de passe root est configuré sur votre serveur.
Installer le serveur Samba
Par défaut, le package Samba est disponible dans le référentiel par défaut CentOS. Vous pouvez l'installer avec la commande suivante :
dnf install samba samba-common samba-client -y
Après avoir installé Samba, démarrez le service SMB et activez-le après le redémarrage du système avec la commande suivante :
systemctl start smb
systemctl enable smb
Vous pouvez maintenant vérifier le service Samba avec la commande suivante :
systemctl status smb
Vous devriez obtenir le résultat suivant :
? smb.service - Samba SMB Daemon Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled; vendor preset: disabled) Active: active (running) since Mon 2020-03-02 23:03:30 EST; 8s ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Main PID: 2072 (smbd) Status: "smbd: ready to serve connections..." Tasks: 4 (limit: 25028) Memory: 33.8M CGroup: /system.slice/smb.service ??2072 /usr/sbin/smbd --foreground --no-process-group ??2074 /usr/sbin/smbd --foreground --no-process-group ??2075 /usr/sbin/smbd --foreground --no-process-group ??2076 /usr/sbin/smbd --foreground --no-process-group
Créer un partage public avec Samba
Dans cette section, nous allons créer un partage public avec Samba afin que tout le monde puisse accéder au répertoire de partage public sans mot de passe.
Créer un répertoire de partage public
Tout d'abord, créez un dossier partagé nommé public et créez également deux fichiers dans le répertoire public :
mkdir -p /samba/share/public
touch /samba/share/public/file1.txt
touch /samba/share/public/file2.txt
Ensuite, attribuez les autorisations et la propriété nécessaires avec la commande suivante :
chmod -R 0755 /samba/share/
chmod -R 0755 /samba/share/public
chown -R nobody:nobody /samba/share
chown -R nobody:nobody /samba/share/public
Configurer Samba
Ensuite, vous devrez configurer Samba pour partager un répertoire public.
Commencez par créer une copie de sauvegarde du fichier /etc/samba/smb.conf avec la commande suivante :
mv /etc/samba/smb.conf /etc/samba/smb.bak
Ensuite, créez un nouveau fichier de configuration Samba :
nano /etc/samba/smb.conf
Ajoutez les lignes suivantes :
[global] workgroup = WORKGROUP server string = Samba Server %v netbios name = samba-server security = user map to guest = bad user dns proxy = no [Public] path = /samba/share/public browsable =yes writable = yes guest ok = yes read only = no
Enregistrez et fermez le fichier. Ensuite, redémarrez le service Samba pour appliquer les modifications :
systemctl restart smb
Ensuite, testez la configuration de Samba avec la commande suivante :
testparm
Vous devriez voir le résultat suivant :
Load smb config files from /etc/samba/smb.conf Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions # Global parameters [global] dns proxy = No map to guest = Bad User netbios name = SAMBA-SERVER security = USER server string = Samba Server %v idmap config * : backend = tdb [Public] guest ok = Yes path = /samba/share/public read only = No
Configurer SELinux et le pare-feu
Ensuite, définissez les valeurs booléennes et de contexte de sécurité SELinux appropriées sur le répertoire de partage avec la commande suivante :
setsebool -P samba_export_all_ro=1 samba_export_all_rw=1
semanage fcontext -a -t samba_share_t "/samba/share/public(/.*)?"restorecon /samba/share/public
Ensuite, tous les services Samba via firewalld avec la commande suivante :
firewall-cmd --add-service=samba --zone=public --permanent
firewall-cmd --reload
Accéder au partage Samba depuis Ubuntu Gnome
Pour accéder au partage Samba, allez sur la machine distante, ouvrez le gestionnaire de fichiers Gnome et cliquez sur Se connecter à Serveur comme indiqué ci-dessous :
Indiquez l'adresse IP de votre serveur Samba et cliquez sur Se connecter bouton. Après une connexion réussie, vous devriez voir le partage Samba dans l'écran suivant :
Maintenant, cliquez sur Public répertoire, vous devriez voir vos fichiers dans l'écran suivant :
Accéder au partage Samba à partir de la ligne de commande Ubuntu
Vous pouvez également accéder au partage Samba à partir de la ligne de commande.
Tout d'abord, répertoriez tous les partages Samba disponibles avec la commande suivante :
smbclient -L //45.58.38.51
Vous devriez voir le résultat suivant :
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4] Sharename Type Comment --------- ---- ------- Public Disk IPC$ IPC IPC Service (Samba Server 4.10.4) Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4] Server Comment --------- ------- Workgroup Master --------- -------
Vous pouvez également monter le partage Samba à l'aide du protocole cifs. Pour ce faire, installez le package cifs-utils avec la commande suivante :
apt-get install cifs-utils -y
Ensuite, montez le partage Samba dans le répertoire /mnt avec la commande suivante :
mount -t cifs //45.58.38.51/public /mnt/
Il vous sera demandé de fournir un mot de passe comme indiqué ci-dessous :
Password for [email protected]//45.58.38.51/public:
Appuyez simplement sur Entrée sans saisir de mot de passe pour monter le partage Samba :
Vous pouvez maintenant accéder au partage Samba dans le répertoire /mnt :
ls /mnt/
Vous devriez voir le résultat suivant :
file1.txt file2.txt
Créer un partage privé avec Samba
Dans cette section, nous allons créer un partage privé avec Samba afin que seul l'utilisateur authentifié puisse accéder au répertoire de partage privé.
Créer un utilisateur et un groupe
Commencez par créer un groupe nommé private avec la commande suivante :
groupadd private
Créez ensuite un nouvel utilisateur nommé privateuser et ajoutez-le au groupe privé :
useradd -g private privateuser
Ensuite, définissez le mot de passe de l'utilisateur avec la commande suivante :
smbpasswd -a privateuser
Sortie :
New SMB password: Retype new SMB password: Added user privateuser.
Créer un répertoire de partage privé
Ensuite, créez un dossier partagé nommé privé et créez également deux fichiers dans le répertoire privé :
mkdir -p /samba/share/private
touch /samba/share/private/private1.txt
touch /samba/share/private/private2.txt
Ensuite, attribuez l'autorisation et la propriété appropriées avec la commande suivante :
chmod -R 0770 /samba/share/private
chown -R root:private /samba/share/private
Ensuite, configurez le contexte SELinux pour le répertoire privé avec la commande suivante :
semanage fcontext –at samba_share_t "/samba/share/private(/.*)?"
restorecon /samba/share/private
Configurer Samba
Ensuite, ouvrez le fichier de configuration Samba et définissez le partage privé :
nano /etc/samba/smb.conf
Ajoutez les lignes suivantes à la fin du fichier :
[Private] path = /samba/share/private valid users = @private guest ok = no writable = yes browsable = yes
Enregistrez et fermez le fichier puis redémarrez le service Samba pour appliquer les modifications :
systemctl restart smb
Ensuite, vérifiez la configuration de Samba avec la commande suivante :
testparm
Vous devriez voir le résultat suivant :
Load smb config files from /etc/samba/smb.conf Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions # Global parameters [global] dns proxy = No map to guest = Bad User netbios name = SAMBA-SERVER security = USER server string = Samba Server %v idmap config * : backend = tdb [Public] guest ok = Yes path = /samba/share/public read only = No [Private] path = /samba/share/private read only = No valid users = @private
Accéder au partage Samba à partir de la ligne de commande Ubuntu
Tout d'abord, accédez au partage disponible avec la commande suivante :
smbclient -L //45.58.38.51
Vous devriez voir le résultat suivant :
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4] Sharename Type Comment --------- ---- ------- Public Disk Private Disk IPC$ IPC IPC Service (Samba Server 4.10.4) Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4] Server Comment --------- ------- Workgroup Master --------- -------
Ensuite, connectez-vous au serveur Samba et répertoriez le partage disponible avec la commande suivante :
smbclient //45.58.38.51/private -U privateuser
Il vous sera demandé de fournir un mot de passe comme indiqué ci-dessous :
Enter privateuser's password:
Tapez votre mot de passe et appuyez sur Entrée pour accéder au shell Samba comme indiqué ci-dessous :
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4] smb: \>
Maintenant, répertoriez le partage disponible avec la commande suivante :
smb: \> ls
Vous devriez voir le résultat suivant :
. D 0 Tue Mar 3 10:03:22 2020 .. D 0 Tue Mar 3 10:01:56 2020 private1.txt N 0 Tue Mar 3 10:03:17 2020 private2.txt N 0 Tue Mar 3 10:03:22 2020 51194 blocks of size 2097152. 49358 blocks available
Maintenant, quittez le shell Samba avec la commande suivante :
smb: \>exit
Vous pouvez également monter le partage Samba sur le répertoire /opt :
mount -t cifs -o user=privateuser //45.58.38.51/private /opt
Il vous sera demandé de fournir un mot de passe comme indiqué ci-dessous :
Password for [email protected]//45.58.38.51/private: *********
Fournissez votre mot de passe et appuyez sur Entrée pour monter le partage Samba.
Vous pouvez maintenant vérifier votre partage Samba dans le répertoire /opt comme indiqué ci-dessous :
ls /opt/
Sortie :
private1.txt private2.txt
Accéder au partage Samba depuis Ubuntu Gnome
Pour accéder au partage Samba, allez sur la machine distante, ouvrez le gestionnaire de fichiers Gnome et cliquez sur Se connecter à Serveur comme indiqué ci-dessous :
Indiquez l'adresse IP de votre serveur Samba et cliquez sur Se connecter bouton. Après une connexion réussie, vous devriez voir le partage Samba dans l'écran suivant :
Maintenant, cliquez sur Privé répertoire, indiquez votre nom d'utilisateur et votre mot de passe, puis cliquez sur le bouton Connecter. Vous devriez voir vos fichiers dans l'écran suivant :
Toutes nos félicitations! vous avez installé et configuré avec succès le serveur Samba sur CentOS 8.