Samba est un logiciel libre qui permet de partager des fichiers et des imprimantes entre des ordinateurs sous Linux et Windows. Il est très utile pour les réseaux domestiques et les petites entreprises. Dans cet article, Je vais vous montrer comment installer et configurer Samba sur Ubuntu 22.04.
Installer samba sur Ubuntu
Avant de commencer, assurez-vous que votre système est bien à jours :
root@Linux:~# apt-get update
Maintenant que notre système est bien à jour, utilisez la commande suivante pour installer Smb :
# apt install samba
Vous pouvez vérifier la version de samba installé avec cette commande :
root@Linux:~# samba -V Version 4.15.13-Ubuntu
Configuration de Samba
1- Ouvrez le fichier de configuration Samba en utilisant la commande suivante :
# nano /etc/samba/smb.conf
2- Recherchez la ligne workgroup = WORKGROUP et remplacez « WORKGROUP » par le nom de votre groupe de travail.
3- Indiquez le répertiore que vous souhaitez partager en ajoutant les sections comme celle-ci à la fin du fichier :
[NomDuPartage] comment = Commentaire path = /chemin/vers/le/dossier read only = no writable = yes browseable = yes guest ok = no valid users = user1
– Path : c’est le chemin vers votre répertoire de partage
– valid users : Les utilisateurs ayant le droit d’accéder au partage.
– read only :
no: si vous souhaitez que les utilisateur aient le droit d’ajouter et de modifier les fichiers
yes: si vous souhaitez que les utilisateur aient uniquement le droit de lecture.
writable : les utilisateur ont le droit ou non d’ajouter et de modifier les fichiers
browseable : Indique si le partage doit être visible dans la liste des partages disponibles.
4- Testez s’il y a des erreurs de syntax au niveau de fichier de configuration avec la commande testparm :
root@Linux:~# testparm /etc/samba/smb.conf Load smb config files from /etc/samba/smb.conf Loaded services file OK. Weak crypto is allowed Server role: ROLE_STANDALONE
Comme vous pouvez le constater, le résultat de la commande montre que tout est OK.
5- Redémarrez ensuite le service smbd en utilisant la commande suivante :
# systemctl restart smbd # systemctl status smbd ● smbd.service - Samba SMB Daemon Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2023-01-29 13:13:59 +01; 1h 2min ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Process: 45822 ExecStartPre=/usr/share/samba/update-apparmor-samba-profile (code=exited, status=0/SUCCESS) Main PID: 45831 (smbd) Status: "smbd: ready to serve connections..." Tasks: 4 (limit: 5695) Memory: 8.8M CPU: 254ms CGroup: /system.slice/smbd.service ├─45831 /usr/sbin/smbd --foreground --no-process-group ├─45833 /usr/sbin/smbd --foreground --no-process-group ├─45834 /usr/sbin/smbd --foreground --no-process-group └─45835 /usr/lib/x86_64-linux-gnu/samba/samba-bgqd --ready-signal-fd=45 --parent-watch-fd=11 --debuglevel=0 -F
Configuration de l’utilisateur samba
Créez un utilisateur qui aura le droit d’accéder à votre partage en utilisant la commande suivante :
# smbpasswd -a user1 New SMB password: Retype new SMB password: Added user user1.
Il faut ensuite accorder à cet utilisateur le droit de lire, modifier et éxécuter au niveau du dossier partagé en utilisant les ACL :
# setfacl -R -m "u:user1:rwx" /data
Configuration du pare-feu
root@Linux:~# ufw allow samba Rules updated Rules updated (v6)
Connection au partage Samba
Maintenant que notre samba est prêt, nous allons tester l’accés au partage depuis une machine Linux et Windows.
Depuis une machine Linux
Sur Linux pour accéder à un partage Samba nous allons utiliser smbclient.
smbclient est un utilitaire qui vous permet d’accéder à un partege SMB depuis la ligne de commande. Il n’est pas installé sur la pluspart des distribution. Voici la commande pour l’installer sur Centos/Redhat et Ubuntu/Debian :
- Sous Centos/Redhat :
# yum install samba-client
- Sous Ubuntu / Debian :
# apt install smbclient
Voici la syntaxe de la commande smbclient pour accéder au partage :
# smbclient //adresse_IP_du serveru_ou_hostname/nom_du_partage -U nom_de_utilisateur
Pa exemple dans mon cas, voici ma commande :
[root@smb-client ~]# smbclient //192.168.139.150/DATA -U user1 Enter SAMBA\user1's password: Try "help" to get a list of possible commands. smb: \>
Pour prendre un exmple, j’ai créé un fichier nommé « exemple.txt » au niveau du partage samba et je souhaite le télecharger, il suffit d’utiliser la commande get :
[root@smb-client ~]# smbclient //192.168.139.150/DATA -U user1 Enter SAMBA\user1's password: Try "help" to get a list of possible commands. smb: \> ls . D 0 Sun Jan 29 15:03:10 2023 .. D 0 Sun Jan 29 13:11:17 2023 exemple.txt N 0 Sun Jan 29 15:03:10 2023 19946096 blocks of size 1024. 4265416 blocks available smb: \> get exemple getting file \exemple of size 0 as exemple (0.0 KiloBytes/sec) (average 0.0 KiloBytes/sec) smb: \> exit [root@smb-client ~]# ls anaconda-ks.cfg exemple.txt [root@smb-client ~]#
Monter le partage Samba
Cette fois, au lieu d’intéragir avec le partage depuis la ligne de commande, nous allons le faire monter au niveau du client samba comme s’il existait localement.
Pour cela il nous faut installer un package nommé cifs :
- Sous CentOS/Redhat :
[root@smb-client ~]# yum install cifs-utils
- Sous Ubuntu/Debian
[root@smb-client ~]# apt install cifs-utils
Créez ensuite le point de montage via lequel on peut accéder au partage réseau :
[root@smb-client ~]# mkdir /applis
Par la suite faites monter le partage avec la commande ci-dessous on indiquant l’utilisateur samba:
[root@smb-client ~]# mount -t cifs -o username=user1 //192.168.139.150/DATA /applis Password for user1@//192.168.139.150/DATA: ********
vous serai inviter à taper le mot de passe de l’utilsateur samba.
Taper ensuite la commande df -hT :
[root@smb-client ~]# df -hT Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 898M 0 898M 0% /dev tmpfs tmpfs 910M 0 910M 0% /dev/shm tmpfs tmpfs 910M 9.6M 901M 2% /run tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup /dev/mapper/centos-root xfs 17G 1.6G 16G 10% / /dev/sda1 xfs 1014M 226M 789M 23% /boot tmpfs tmpfs 182M 0 182M 0% /run/user/0 //192.168.139.150/DATA cifs 20G 15G 4.1G 79% /applis
Et voilà notre partage est bien monté. Comme vous pouvez voir ci-dessous, je vos bien le fichier « exemple.txt » que j’ai créé précédemment :
[root@smb-client ~]# ls exemple.txt
Sur une machine Windows :
Pour Windows suivez les étapes suivante :
1- Ouvrez l’explorateur Windows et cliquez sur « Ce PC » :
2- Cliquer droit et choisissez « Ajouter un emplacement réseau » :
3- Cliquer sur « Choisissez un emplacement réseau personnalisé » :
4- Indiquez l’emplacement du partage samba comme ci-dessous :
5- Donnez un nom à votre partage :
6- Enfin le partage smb sera visible une fois authentifié avec l’utilsateur smb :
Félicitation, vous êtes maintenant capable de configurer un partage réseau avec samba de comment y accéder depuis une machine Linux et Windows.
Pour voir comment créer un partage NFS cliquez ici.
7zip: 9 Commandes utiles de les plus utilisés
How to check the lock status of a user account in Linux
Kill – Arrêter les processus sous linux
17 Protocoles qu’un admin réseau et système doit maitriser
Fail2Ban : How to protect Linux services