Comment installer le serveur Samba sur CentOS 8
Samba est un logiciel libre et open-source qui peut être utilisé pour partager des fichiers, des dossiers et des imprimantes entre des systèmes Linux et Windows. Il est également utilisé pour l’authentification et l’autorisation, la résolution de noms et l’annonce de services. 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 comme un serveur de partage autonome sur CentOS 8.
Conditions préalables
- Un serveur exécutant CentOS 8.
- Un mot de passe root est configuré sur ton serveur.
Installer le serveur Samba
Par défaut, le paquet Samba est disponible dans le référentiel par défaut de CentOS. Tu peux l’installer avec la commande suivante :
dnf install samba samba-common samba-client -y
Après avoir installé Samba, démarre le service SMB et active-le pour qu’il démarre après le redémarrage du système avec la commande suivante :
systemctl start smb
systemctl enable smb
Tu peux maintenant vérifier le service Samba avec la commande suivante :
systemctl status smb
Tu devrais 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 pour que tout le monde puisse accéder au répertoire du partage public sans mot de passe.
Créer un répertoire de partage public
Tout d’abord, crée un dossier partagé nommé public et crée également deux fichiers à l’intérieur du répertoire public :
mkdir -p /samba/share/public
touch /samba/share/public/file1.txt
touch /samba/share/public/file2.txt
Ensuite, attribue les permissions 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, tu devras configurer Samba pour partager un répertoire public.
Tout d’abord, crée 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ée un nouveau fichier de configuration Samba :
nano /etc/samba/smb.conf
Ajoute 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
Enregistre et ferme le fichier. Ensuite, redémarre le service Samba pour appliquer les modifications :
systemctl restart smb
Ensuite, teste la configuration Samba avec la commande suivante :
testparm
Tu devrais voir la sortie suivante :
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éfinis 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 à travers 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, va sur la machine distante, ouvre le gestionnaire de fichiers Gnome et clique sur le bouton Connecter au serveur comme indiqué ci-dessous :
Indique l’adresse IP de ton serveur Samba et clique sur le bouton Connecter. Une fois la connexion réussie, tu devrais voir le partage Samba dans l’écran suivant :
Maintenant, clique sur le répertoire Public, tu devrais voir tes fichiers dans l’écran suivant :
Accéder au partage Samba depuis la ligne de commande Ubuntu
Tu peux aussi accéder au partage Samba depuis la ligne de commande.
Tout d’abord, liste tous les partages Samba disponibles avec la commande suivante :
smbclient -L //45.58.38.51
Tu devrais voir la sortie suivante :
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 --------- -------
Tu peux aussi monter le partage Samba à l’aide du protocole cifs. Pour ce faire, installe le paquet cifs-utils avec la commande suivante :
apt-get install cifs-utils -y
Ensuite, monte le partage Samba dans le répertoire /mnt avec la commande suivante :
mount -t cifs //45.58.38.51/public /mnt/
Il te sera demandé de fournir un mot de passe comme indiqué ci-dessous :
Password for root@//45.58.38.51/public:
Appuie simplement sur la touche Entrée sans entrer de mot de passe pour monter le partage Samba :
Tu peux maintenant accéder au partage Samba dans le répertoire /mnt :
ls /mnt/
Tu devrais 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 seuls les utilisateurs authentifiés puissent accéder au répertoire du partage privé.
Créer un utilisateur et un groupe
Tout d’abord, crée un groupe nommé private avec la commande suivante :
groupadd private
Ensuite, crée un nouvel utilisateur nommé privateuser et ajoute-le au groupe private :
useradd -g private privateuser
Ensuite, définis 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 partagé privé
Ensuite, crée un dossier partagé nommé private et crée aussi deux fichiers dans le répertoire private :
mkdir -p /samba/share/private
touch /samba/share/private/private1.txt
touch /samba/share/private/private2.txt
Ensuite, attribue la permission et la propriété appropriées avec la commande suivante :
chmod -R 0770 /samba/share/private
chown -R root:private /samba/share/private
Ensuite, configure 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, ouvre le fichier de configuration Samba et définis le partage privé :
nano /etc/samba/smb.conf
Ajoute les lignes suivantes à la fin du fichier :
[Private] path = /samba/share/private valid users = @private guest ok = no writable = yes browsable = yes
Enregistre et ferme le fichier puis redémarre le service Samba pour appliquer les modifications :
systemctl restart smb
Ensuite, vérifie la configuration de Samba avec la commande suivante :
testparm
Tu devrais voir la sortie suivante :
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 depuis la ligne de commande Ubuntu
Accède d’abord au partage disponible avec la commande suivante :
smbclient -L //45.58.38.51
Tu devrais 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, connecte-toi au serveur Samba et liste le partage disponible avec la commande suivante :
smbclient //45.58.38.51/private -U privateuser
Il te sera demandé de fournir un mot de passe comme indiqué ci-dessous :
Enter privateuser's password:
Tape ton mot de passe et appuie 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, liste le partage disponible avec la commande suivante :
smb: \> ls
Tu devrais 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, quitte le shell Samba avec la commande suivante :
smb: \>exit
Tu peux aussi monter le partage Samba sur le répertoire /opt :
mount -t cifs -o user=privateuser //45.58.38.51/private /opt
Il te sera demandé de fournir un mot de passe comme indiqué ci-dessous :
Password for privateuser@//45.58.38.51/private: *********
Indique ton mot de passe et appuie sur Entrée pour monter le partage Samba.
Tu peux maintenant vérifier ton 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, va sur la machine distante, ouvre le gestionnaire de fichiers Gnome et clique sur le bouton Connecter au serveur comme indiqué ci-dessous :
Indique l’adresse IP de ton serveur Samba et clique sur le bouton Connecter. Après une connexion réussie, tu devrais voir le partage Samba dans l’écran suivant :
Maintenant, clique sur le répertoire privé, indique ton nom d’utilisateur et ton mot de passe, puis clique sur le bouton Connecter. Tu devrais voir tes fichiers dans l’écran suivant :
Félicitations ! Tu as réussi à installer et à configurer le serveur Samba sur CentOS 8.