226 lines
6.1 KiB
Markdown
226 lines
6.1 KiB
Markdown
---
|
|
title: Samba
|
|
description: Configurer Samba sur Debian pour partager des dossiers sur votre réseau local et y accéder depuis Windows, macOS ou Linux.
|
|
---
|
|
|
|
:ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60}
|
|
|
|
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.
|
|
|
|

|
|
|
|
## Créer et configurer un dossier réseau partagé
|
|
::note
|
|
|
|
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`.
|
|
::
|
|
|
|
::steps{level="3"}
|
|
### Installer le serveur samba
|
|
|
|
```bash [Terminal]
|
|
sudo apt update && sudo apt upgrade
|
|
sudo apt install samba smbclient cifs-utils
|
|
```
|
|
|
|
### Créer le dossier `/video`
|
|
|
|
```bash [Terminal]
|
|
sudo mkdir /video
|
|
```
|
|
|
|
### Configuration du partage
|
|
|
|
Ensuite nous allons éditer le fichier `/etc/samba/smb.conf`
|
|
|
|
```bash [Terminal]
|
|
sudo nano /etc/samba/smb.conf
|
|
```
|
|
|
|
::tip{icon=""}
|
|
✨ __Astuce :__ vous pouvez utiliser [File Browser](/fr/serveex/files/file-browser) pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal.
|
|
::
|
|
|
|
Localisez la variable `workgroup` et nommez votre workgroup, par exemple `workgroup = WORKGROUP`
|
|
|
|
Puis allez à la fin du fichier et collez la configuration suivante
|
|
|
|
```properties [smb.conf]
|
|
[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
|
|
```
|
|
|
|
Enregistrez avec :kbd{value="Ctrl+O"} puis :kbd{value="Entrée"}, puis quittez avec :kbd{value="Ctrl+X"}.
|
|
### Terminé !
|
|
::
|
|
|
|
### Créer un utilisateur et un groupe pour Samba
|
|
|
|
Comme nous avons configuré un partage sécurisé, nous allons devoir créer un utilisateur et un groupe pour pouvoir y accéder à distance.
|
|
|
|
::steps{level="3"}
|
|
### Créer le groupe
|
|
|
|
```bash [Terminal]
|
|
sudo groupadd smbshare
|
|
```
|
|
|
|
Nous allons maintenant permettre au groupe d'avoir le controle sur le dossier `/video`.
|
|
|
|
```bash [Terminal]
|
|
sudo chgrp -R smbshare /video
|
|
```
|
|
|
|
Et maintenant nous allons donner les permissions nécessaires aux dossiers et fichier hérités.
|
|
|
|
```bash [Terminal]
|
|
sudo chmod 2775 /video
|
|
```
|
|
### Créer l'utilisateur
|
|
|
|
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.
|
|
|
|
```bash [Terminal]
|
|
sudo useradd -M -s /sbin/nologin sambauser
|
|
```
|
|
|
|
Puis nous ajoutons l'utilisateur au groupe `sambashare` que nous avons créé précédemment.
|
|
|
|
```bash [Terminal]
|
|
sudo usermod -aG smbshare sambauser
|
|
```
|
|
|
|
Et nous allons configurer un mot de passe.
|
|
|
|
```bash [Terminal]
|
|
sudo smbpasswd -a sambauser
|
|
```
|
|
|
|
### Activer le compte Samba
|
|
|
|
```bash [Terminal]
|
|
sudo smbpasswd -e sambauser
|
|
```
|
|
### Terminé !
|
|
::
|
|
|
|
## Accéder à un dossier partagé
|
|
|
|
::steps{level="3"}
|
|
### Installer les paquets nécessaires
|
|
|
|
```bash [Terminal]
|
|
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`.
|
|
|
|
```bash [Terminal]
|
|
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`.
|
|
|
|
```bash [Terminal]
|
|
sudo mkdir /smb
|
|
sudo nano /smb/.credentials
|
|
```
|
|
|
|
Configurez comme suit :
|
|
|
|
```properties [.credentials]
|
|
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`
|
|
|
|
Enregistrez avec :kbd{value="Ctrl+O"} puis :kbd{value="Entrée"}, puis quittez avec :kbd{value="Ctrl+X"}.
|
|
|
|
Nous allons modifier les permissions du dossier afin que seul le propriétaire puis lire et écrire dans ce fichier.
|
|
|
|
```bash [Terminal]
|
|
sudo chmod 600 /smb/.credentials
|
|
```
|
|
|
|
### Monter le dossier partagé
|
|
|
|
::warning
|
|
__Attention :__ Si vous utilisez un pare-feu comme ufw, vous devez ajouter une règle pour autoriser votre machine distante à accéder à votre partage.
|
|
```bash [Terminal]
|
|
sudo ufw allow from <ip-de-la-machine-distante> to any app Samba
|
|
```
|
|
::
|
|
A présent nous allons monter le dossier.
|
|
|
|
```bash [Terminal]
|
|
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 :
|
|
|
|
```bash [Terminal]
|
|
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` !
|
|
|
|
### (Optionnel) Automatiser le montage au démarrage
|
|
|
|
Par défaut, les dossiers partagés ne sont pas connectés automatiquement au redémarrage. Pour automatiser cet aspect, nous allons modifier le fichier `/etc/fstab`.
|
|
|
|
D'abord, sauvegardons notre fichier `fstab`.
|
|
|
|
```bash [Terminal]
|
|
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`.
|
|
|
|
```bash [Terminal]
|
|
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.
|
|
|
|
```bash [Terminal]
|
|
sudo reboot
|
|
```
|
|
|
|
Une fois redémarré, vérifiez que le montage est correct
|
|
|
|
```bash [Terminal]
|
|
sudo mount -t cifs
|
|
```
|
|
### Et voilà !
|
|
::
|
|
|
|
::tip
|
|
__Démonter le dossier partagé__
|
|
|
|
```bash [Terminal]
|
|
sudo umount -t cifs /mnt/video
|
|
```
|
|
::
|