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
 | 
						|
 | 
						|
```sh
 | 
						|
sudo apt update && sudo apt upgrade
 | 
						|
sudo apt install samba smbclient cifs-utils
 | 
						|
```
 | 
						|
 | 
						|
### Créer le dossier `/video`
 | 
						|
 | 
						|
```sh
 | 
						|
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/files/file-browser) pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal.
 | 
						|
::
 | 
						|
 | 
						|
```sh
 | 
						|
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.
 | 
						|
```sh
 | 
						|
sudo groupadd smbshare
 | 
						|
```
 | 
						|
 | 
						|
Nous allons maintenant permettre au groupe d'avoir le controle sur le dossier `/video`.
 | 
						|
 | 
						|
```sh
 | 
						|
sudo chgrp -R smbshare /video
 | 
						|
```
 | 
						|
 | 
						|
Et maintenant nous allons donner les permissions nécessaires aux dossiers et fichier hérités.
 | 
						|
 | 
						|
```sh
 | 
						|
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.
 | 
						|
 | 
						|
```sh
 | 
						|
sudo useradd -M -s /sbin/nologin sambauser
 | 
						|
```
 | 
						|
 | 
						|
Puis nous ajoutons l'utilisateur au groupe `sambashare` que nous avons créé précédemment.
 | 
						|
 | 
						|
 | 
						|
```sh
 | 
						|
sudo usermod -aG smbshare sambauser
 | 
						|
```
 | 
						|
Et nous allons configurer un mot de passe.
 | 
						|
 | 
						|
```sh
 | 
						|
sudo smbpasswd -a sambauser
 | 
						|
```
 | 
						|
Et enfin nous allons activer le compte que nous venons de créer.
 | 
						|
 | 
						|
```sh
 | 
						|
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é :
 | 
						|
:::
 | 
						|
    ```sh
 | 
						|
    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
 | 
						|
 | 
						|
```sh
 | 
						|
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`.
 | 
						|
 | 
						|
```sh
 | 
						|
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`.
 | 
						|
 | 
						|
```sh
 | 
						|
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.
 | 
						|
 | 
						|
```sh
 | 
						|
sudo chmod 600 /smb/.credentials
 | 
						|
```
 | 
						|
 | 
						|
### Monter le dossier partager
 | 
						|
 | 
						|
A présent nous allons monter le dossier.
 | 
						|
 | 
						|
```sh
 | 
						|
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 :
 | 
						|
 | 
						|
```sh
 | 
						|
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`.
 | 
						|
 | 
						|
```sh
 | 
						|
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`.
 | 
						|
 | 
						|
```sh
 | 
						|
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.
 | 
						|
 | 
						|
```sh
 | 
						|
sudo reboot
 | 
						|
```
 | 
						|
 | 
						|
Une fois redémarré, vérifiez que le montage est correct
 | 
						|
 | 
						|
```sh
 | 
						|
sudo mount -t cifs
 | 
						|
```
 | 
						|
 | 
						|
Et voilà !
 | 
						|
 | 
						|
### Démonter le dossier partagé
 | 
						|
 | 
						|
```sh
 | 
						|
sudo umount -t cifs /mnt/video
 | 
						|
``` |