Samba

Samba est un protocole permettant d'accèder à un dossier situé sur un disque réseau. Il peut être configuré sous Mac, Windows ou Linux.

De nombreux tutorials existent pour configurer Samba sous windows ou sur un NAS type Synology, ici nous nous concentrons sur Debian.

🎯 Objectifs :
  • Créer un dossier réseau sur une machine distante
  • Accéder au dossier réseau sur notre serveur

samba

Partager un dossier réseau


  • Ici, nous allons partager le dossier /video d'une machine distant que nous appelerons machine-distante. Nous accéderons à ce dossier par la machine nommée machine-locale. L'utilisateur de connexion au disque réseau sera sambauser.

Installer le serveur samba

sudo apt update && sudo apt upgrade
sudo apt install samba smbclient cifs-utils

Créer le dossier /video

sudo mkdir /video

Configuration du partage

Ensuite nous allons éditer le fichier /etc/samba/smb.conf

Astuce : vous pouvez utiliser File Browser pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal.
sudo vim /etc/samba/smb.conf

Localisez la variable workgroup puis passez en mode modification en appuyant sur i et nommez votre worgroup, par exemple ::::properties workgroup = WORKGROUP

Puis allez à la fin du fichier et collez la configuration suivante

[video]
   comment = Dossier video
   path = /video
   writable = yes
   guest ok = no
   valid users = @smbshare
   force create mode = 770
   force directory mode = 770
   inherit permissions = yes

Appuyez sur Echap pour quitter le mode notification puis tapez :x et appuyez sur Entrée pour sauvegarder et quitter.

Créer un utilisateur et un groupe pour Samba

Comme nous avons configfuré un partage sécurisé, nous allons devoir créer un utilisateur et un groupe pour pouvoir y accéder à distance.

Creez le groupe.

sudo groupadd smbshare

Nous allons maintenant permettre au groupe d'avoir le controle sur le dossier /video.

sudo chgrp -R smbshare /video

Et maintenant nous allons donner les permissions nécessaires aux dossiers et fichier hérités.

sudo chmod 2775 /video

A présent nous allons ajouter un utilisateur nologin c'est à dire que cet utilisateur ne pourra pas se connecter sur le serveur pour faire des opérations, mais pourra tout de meme se connecter au service samba.

sudo useradd -M -s /sbin/nologin sambauser

Puis nous ajoutons l'utilisateur au groupe sambashare que nous avons créé précédemment.

sudo usermod -aG smbshare sambauser

Et nous allons configurer un mot de passe.

sudo smbpasswd -a sambauser

Et enfin nous allons activer le compte que nous venons de créer.

sudo smbpasswd -e sambauser
  • Attention : Si vous utilisez un pare-feu, comme ufw, n'oubliez pas d'autoriser les IP des machines qui accéderont à votre dossier partagé :
sudo ufw allow from ipdelamachine to any app Samba

Accéder à un dossier partagé


  • A présent, nous sommes sur votre machine-locale qui nécessite d'accéder au dossier partagé /video présent sur la machine-distante.

Installer les package nécessaires

sudo apt update && sudo apt upgrade
sudo apt install cifs-utils

Créer le dossier de destination

Nous allons créer un dossier sur notre serveur sur lequel sera monté le dossier partagé de notre machine-distante. C'est à dire que dans ce dossier nous retrouverons le contenu du dossier partagé de notre machine-distante. Ici nous appellerons ce dossier /mnt/video`.

sudo mkdir /mnt/video

Préparer le fichier .credentials

Afin de ne pas avoir systématiquement à rentrer notre utilisateur et mot de passe, nous allons créer un fichier .credentials` stockant ces informations.

Nous allons le créer dans le dossier /smb.

sudo mkdir /smb
sudo vi /smb/.credentials

Passez en mode modification en appuyant sur i et configurez comme suit :

username=smbuser
password=motdepasse
  • smbuser : L'utilisateur que nous avons configuré sur la machine-distante
  • motdepasse : Le mot de passe que nous avons configuré sur la machine-distante

Appuyez sur Echap afin de quitter le mode modification, puis tapez :x et appuyez sur Entrée pour sauvegarder et quitter.

Nous allons modifier les permissions du dossier afin que seul le propriétaire puis lire et écrire dans ce fichier.

sudo chmod 600 /smb/.credentials

Monter le dossier partager

A présent nous allons monter le dossier.

sudo mount -t cifs -o credentials=/smb/.credentials //ip-machine-distante/video /mnt/video

Remplacez ip-machine-distante par l'adresse IP de votre machine-distante

Vérifiez que cela a fonctionné en tapant :

sudo mount -t cifs

Vous verrez différentes informations qui confirmerons le succès du montage.

Et voilà, à présent vous accédez au dossier /video de votre machine-distante, depuis votre machine-locale !

Automatiser le montage au boot

Par défaut, les dossiers pattagés ne sont pas connectés automatiquement au redémarrage. Pour autoamtiser cet aspect, nous allons modifier le fichier /etc/fstab.

D'abord, sauvegardons notre fichier fstab.

sudo cp /etc/fstab /etc/fstab.bak

Puis nous allons ajouter une ligne à la fin du fichier comportant les informations de montages dans le fichier fstab.

sudo echo //ip-machine-distante/video    /mnt/video  cifs   _netdev,nofail,credentials=/smb/.credentials,x-systemd.automount,x-systemd.device-timeout=15 0 0 >> /etc/fstab

Redémarrez.

sudo reboot

Une fois redémarré, vérifiez que le montage est correct

sudo mount -t cifs

Et voilà !

Démonter le dossier partagé

sudo umount -t cifs /mnt/video