228 lines
6.2 KiB
Markdown
228 lines
6.2 KiB
Markdown
---
|
|
navigation: true
|
|
title: Samba
|
|
main:
|
|
fluid: false
|
|
---
|
|
:ellipsis{left=0px width=40rem top=10rem blur=140px}
|
|
# 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.
|
|
|
|
::alert{type="info"}
|
|
🎯 __Objectifs :__
|
|
- Créer un dossier réseau sur une machine distante
|
|
- Accéder au dossier réseau sur notre serveur
|
|
::
|
|
|
|

|
|
|
|
## Partager un dossier réseau
|
|
---
|
|
::alert{type="info"}
|
|
:::list{type="info"}
|
|
- 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
|
|
|
|
```shell
|
|
sudo apt update && sudo apt upgrade
|
|
sudo apt install samba smbclient cifs-utils
|
|
```
|
|
|
|
### Créer le dossier `/video`
|
|
|
|
```shell
|
|
sudo mkdir /video
|
|
```
|
|
|
|
### Configuration du partage
|
|
|
|
Ensuite nous allons éditer le fichier `/etc/samba/smb.conf`
|
|
|
|
::alert{type="success"}
|
|
✨ __Astuce :__ vous pouvez utiliser [File Browser](/serveex/apps/file-browser) pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal.
|
|
::
|
|
|
|
```shell
|
|
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
|
|
|
|
```properties
|
|
[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.
|
|
```shell
|
|
sudo groupadd smbshare
|
|
```
|
|
|
|
Nous allons maintenant permettre au groupe d'avoir le controle sur le dossier `/video`.
|
|
|
|
```shell
|
|
sudo chgrp -R smbshare /video
|
|
```
|
|
|
|
Et maintenant nous allons donner les permissions nécessaires aux dossiers et fichier hérités.
|
|
|
|
```shell
|
|
sudo chmod 2775 /public
|
|
```
|
|
|
|
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.
|
|
|
|
```shell
|
|
sudo useradd -M -s /sbin/nologin sambauser
|
|
```
|
|
|
|
Puis nous ajoutons l'utilisateur au groupe `sambashare` que nous avons créé précédemment.
|
|
|
|
|
|
```shell
|
|
sudo usermod -aG smbshare sambauser
|
|
```
|
|
Et nous allons configurer un mot de passe.
|
|
|
|
```shell
|
|
sudo smbpasswd -a sambauser
|
|
```
|
|
Et enfin nous allons activer le compte que nous venons de créer.
|
|
|
|
```shell
|
|
sudo smbpasswd -e sambauser
|
|
```
|
|
::alert{type="warning"}
|
|
:::list{type="warning"}
|
|
- __Attention :__ Si vous utilisez un pare-feu, comme ufw, n'oubliez pas d'autoriser les IP des machines qui accéderont à votre dossier partagé :
|
|
:::
|
|
```shell
|
|
sudo ufw allow from ipdelamachine to any app Samba
|
|
::
|
|
|
|
|
|
## Accéder à un dossier partagé
|
|
---
|
|
::alert{type="info"}
|
|
:::list{type="info"}
|
|
- 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
|
|
|
|
```shell
|
|
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`.
|
|
|
|
```shell
|
|
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`.
|
|
|
|
```shell
|
|
sudo mkdir /smb
|
|
sudo vi /smb/.credentials
|
|
```
|
|
Passez en mode modification en appuyant sur `i` et configurez comme suit :
|
|
|
|
```properties
|
|
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.
|
|
|
|
```shell
|
|
sudo chmod 600 /smb/.credentials
|
|
```
|
|
|
|
### Monter le dossier partager
|
|
|
|
A présent nous allons monter le dossier.
|
|
|
|
```shell
|
|
sudo mount -t cifs -a 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 :
|
|
|
|
```shell
|
|
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`.
|
|
|
|
```shell
|
|
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`.
|
|
|
|
```shell
|
|
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.
|
|
|
|
```shell
|
|
sudo reboot
|
|
```
|
|
|
|
Une fois redémarré, vérifiez que le montage est correct
|
|
|
|
```shell
|
|
sudo mount -t cifs
|
|
```
|
|
|
|
Et voilà !
|
|
|
|
### Démonter le dossier partagé
|
|
|
|
```shell
|
|
sudo umount -t cifs /mnt/video
|
|
``` |