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 :

Accéder à SAMBA depuis Gnome

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 :

Partage Samba dans l'explorateur de fichiers

Maintenant, clique sur le répertoire Public, tu devrais voir tes fichiers dans l’écran suivant :

Files list

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 :

Accéder à une part privée dans Gnome

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 :

Part publique et privée

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 :

Connecte-toi avec ton nom d'utilisateur et ton mot de passe

Fichiers

Félicitations ! Tu as réussi à installer et à configurer le serveur Samba sur CentOS 8.

Vous aimerez aussi...