Restructure the Samba tutorial with steps components
This commit is contained in:
@@ -12,22 +12,23 @@ There are many tutorials for setting up Samba on Windows or on NAS systems like
|
||||
|
||||

|
||||
|
||||
## Sharing a Network Folder
|
||||
## Create and configure a Shared Network Folder
|
||||
::note
|
||||
|
||||
In this example, we will share the `/video` folder from a remote machine called `remote-machine`. We will access this folder from a machine called `local-machine`. The user connecting to the network drive will be `sambauser`.
|
||||
::
|
||||
|
||||
::steps{level="3"}
|
||||
### Install Samba Server
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo apt update && sudo apt upgrade
|
||||
sudo apt install samba smbclient cifs-utils
|
||||
```
|
||||
|
||||
### Create the `/video` Folder
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo mkdir /video
|
||||
```
|
||||
|
||||
@@ -35,14 +36,14 @@ sudo mkdir /video
|
||||
|
||||
Now, edit the file `/etc/samba/smb.conf`.
|
||||
|
||||
::tip
|
||||
✨ __Tip:__ You can use [File Browser](/serveex/files/file-browser) to navigate and edit your files instead of using terminal commands.
|
||||
::
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo nano /etc/samba/smb.conf
|
||||
```
|
||||
|
||||
::tip{icon=""}
|
||||
✨ __Tip:__ You can use [File Browser](/serveex/files/file-browser) to navigate and edit your files instead of using terminal commands.
|
||||
::
|
||||
|
||||
Find the `workgroup` variable and name your workgroup (e.g., `workgroup = WORKGROUP`).
|
||||
|
||||
Then scroll to the end of the file and add the following configuration:
|
||||
@@ -60,66 +61,65 @@ Then scroll to the end of the file and add the following configuration:
|
||||
```
|
||||
|
||||
Press :kbd{value="Ctrl+O"}, then :kbd{value="Enter"} to save, and :kbd{value="Ctrl+X"} to exit.
|
||||
### Done !
|
||||
::
|
||||
|
||||
### Create a Samba User and Group
|
||||
|
||||
Since we're using a secured share, we need to create a user and group to access it remotely.
|
||||
|
||||
Create the group:
|
||||
::steps{level="3"}
|
||||
### Create the group
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo groupadd smbshare
|
||||
```
|
||||
|
||||
Give the group control over the `/video` folder:
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo chgrp -R smbshare /video
|
||||
```
|
||||
|
||||
Set inherited permissions:
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo chmod 2775 /video
|
||||
```
|
||||
### Create the user
|
||||
|
||||
Now add a no-login user — this user cannot log into the server but can access Samba.
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo useradd -M -s /sbin/nologin sambauser
|
||||
```
|
||||
|
||||
Add the user to the `smbshare` group:
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo usermod -aG smbshare sambauser
|
||||
```
|
||||
|
||||
Set a Samba password:
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo smbpasswd -a sambauser
|
||||
```
|
||||
|
||||
Enable the Samba account:
|
||||
### Enable the Samba account
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo smbpasswd -e sambauser
|
||||
```
|
||||
|
||||
```sh
|
||||
sudo ufw allow from remote-ip to any app Samba
|
||||
```
|
||||
### Done !
|
||||
::
|
||||
|
||||
## Accessing a Shared Folder
|
||||
|
||||
---
|
||||
|
||||
\::
|
||||
|
||||
::steps{level="3"}
|
||||
### Install Required Packages
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo apt update && sudo apt upgrade
|
||||
sudo apt install cifs-utils
|
||||
```
|
||||
@@ -128,7 +128,7 @@ sudo apt install cifs-utils
|
||||
|
||||
We will create a folder on our local machine where the remote `/video` folder will be mounted — e.g., `/mnt/video`.
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo mkdir /mnt/video
|
||||
```
|
||||
|
||||
@@ -138,7 +138,7 @@ To avoid typing our username and password every time, create a `.credentials` fi
|
||||
|
||||
Create it in the `/smb` folder:
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo mkdir /smb
|
||||
sudo nano /smb/.credentials
|
||||
```
|
||||
@@ -157,15 +157,20 @@ Press :kbd{value="Ctrl+O"}, then :kbd{value="Enter"} to save, and :kbd{value="Ct
|
||||
|
||||
Set proper file permissions:
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo chmod 600 /smb/.credentials
|
||||
```
|
||||
|
||||
### Mount the Shared Folder
|
||||
|
||||
::warning
|
||||
__Warning:__ If you're using ufw as firewall, you need to add a rule to allow your remote server to access to your share.
|
||||
```bash [Terminal]
|
||||
sudo ufw allow from <your-remote-ip> to any app Samba
|
||||
```
|
||||
::
|
||||
Now mount the folder:
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo mount -t cifs -o credentials=/smb/.credentials //remote-ip/video /mnt/video
|
||||
```
|
||||
|
||||
@@ -173,7 +178,7 @@ Replace `remote-ip` with your `remote-machine`'s IP address.
|
||||
|
||||
Verify the mount:
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo mount -t cifs
|
||||
```
|
||||
|
||||
@@ -181,38 +186,40 @@ You’ll see details confirming the mount is successful.
|
||||
|
||||
Now you can access the `/video` folder of the `remote-machine` from your `local-machine`!
|
||||
|
||||
### Auto-mount on Boot
|
||||
### (Optional) Auto-mount on Boot
|
||||
|
||||
By default, shares aren't auto-mounted after reboot. To automate this, edit the `/etc/fstab` file.
|
||||
|
||||
First, back it up:
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo cp /etc/fstab /etc/fstab.bak
|
||||
```
|
||||
|
||||
Then add the mount configuration line:
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo echo //remote-ip/video /mnt/video cifs _netdev,nofail,credentials=/smb/.credentials,x-systemd.automount,x-systemd.device-timeout=15 0 0 >> /etc/fstab
|
||||
```
|
||||
|
||||
Reboot the machine:
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo reboot
|
||||
```
|
||||
|
||||
After rebooting, verify the mount:
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo mount -t cifs
|
||||
```
|
||||
### And done!
|
||||
::
|
||||
|
||||
And done!
|
||||
::tip
|
||||
__Unmount the Shared Folder__
|
||||
|
||||
### Unmount the Shared Folder
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo umount -t cifs /mnt/video
|
||||
```
|
||||
::
|
||||
@@ -4,37 +4,30 @@ description: Configurer Samba sur Debian pour partager des dossiers sur votre r
|
||||
---
|
||||
|
||||
:ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60}
|
||||
# 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.
|
||||
|
||||
::note
|
||||
🎯 __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
|
||||
## 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
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo apt update && sudo apt upgrade
|
||||
sudo apt install samba smbclient cifs-utils
|
||||
```
|
||||
|
||||
### Créer le dossier `/video`
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo mkdir /video
|
||||
```
|
||||
|
||||
@@ -42,14 +35,14 @@ sudo mkdir /video
|
||||
|
||||
Ensuite nous allons éditer le fichier `/etc/samba/smb.conf`
|
||||
|
||||
::tip
|
||||
✨ __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.
|
||||
::
|
||||
|
||||
```sh
|
||||
```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
|
||||
@@ -65,88 +58,90 @@ Puis allez à la fin du fichier et collez la configuration suivante
|
||||
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 configfuré un partage sécurisé, nous allons devoir créer un utilisateur et un groupe pour pouvoir y accéder à distance.
|
||||
Comme nous avons configuré un partage sécurisé, nous allons devoir créer un utilisateur et un groupe pour pouvoir y accéder à distance.
|
||||
|
||||
Creez le groupe.
|
||||
```sh
|
||||
::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`.
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo chgrp -R smbshare /video
|
||||
```
|
||||
|
||||
Et maintenant nous allons donner les permissions nécessaires aux dossiers et fichier hérités.
|
||||
|
||||
```sh
|
||||
```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.
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo useradd -M -s /sbin/nologin sambauser
|
||||
```
|
||||
|
||||
Puis nous ajoutons l'utilisateur au groupe `sambashare` que nous avons créé précédemment.
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo usermod -aG smbshare sambauser
|
||||
```
|
||||
|
||||
Et nous allons configurer un mot de passe.
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo smbpasswd -a sambauser
|
||||
```
|
||||
Et enfin nous allons activer le compte que nous venons de créer.
|
||||
|
||||
```sh
|
||||
### Activer le compte Samba
|
||||
|
||||
```bash [Terminal]
|
||||
sudo smbpasswd -e sambauser
|
||||
```
|
||||
::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
|
||||
```
|
||||
### Terminé !
|
||||
::
|
||||
|
||||
## Accéder à un dossier partagé
|
||||
::note
|
||||
|
||||
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`.
|
||||
::
|
||||
::steps{level="3"}
|
||||
### Installer les paquets nécessaires
|
||||
|
||||
### Installer les package nécessaires
|
||||
|
||||
```sh
|
||||
```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`.
|
||||
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
|
||||
```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.
|
||||
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
|
||||
```bash [Terminal]
|
||||
sudo mkdir /smb
|
||||
sudo nano /smb/.credentials
|
||||
```
|
||||
|
||||
Configurez comme suit :
|
||||
|
||||
```properties
|
||||
@@ -154,22 +149,28 @@ 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`
|
||||
* `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.
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo chmod 600 /smb/.credentials
|
||||
```
|
||||
|
||||
### Monter le dossier partager
|
||||
### 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.
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo mount -t cifs -o credentials=/smb/.credentials //ip-machine-distante/video /mnt/video
|
||||
```
|
||||
|
||||
@@ -177,45 +178,48 @@ Remplacez `ip-machine-distante` par l'adresse IP de votre `machine-distante`
|
||||
|
||||
Vérifiez que cela a fonctionné en tapant :
|
||||
|
||||
```sh
|
||||
```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` !
|
||||
|
||||
### Automatiser le montage au boot
|
||||
### (Optionnel) Automatiser le montage au démarrage
|
||||
|
||||
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`.
|
||||
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`.
|
||||
|
||||
```sh
|
||||
```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`.
|
||||
|
||||
```sh
|
||||
```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.
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo reboot
|
||||
```
|
||||
|
||||
Une fois redémarré, vérifiez que le montage est correct
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo mount -t cifs
|
||||
```
|
||||
### Et voilà !
|
||||
::
|
||||
|
||||
Et voilà !
|
||||
::tip
|
||||
__Démonter le dossier partagé__
|
||||
|
||||
### Démonter le dossier partagé
|
||||
|
||||
```sh
|
||||
```bash [Terminal]
|
||||
sudo umount -t cifs /mnt/video
|
||||
```
|
||||
::
|
||||
|
||||
Reference in New Issue
Block a user