Mettre en place un NAS avec Samba

Un NAS, késako ? C’est un serveur de stockage en réseau. Il permet à plusieurs personnes de partager des contenus communs sur différents terminaux via le réseau. Vous pourrez déposer des photos, des vidéos, des documents sur votre NAS, et ils seront accessibles simultanément à l’ensemble des personnes qui y auront accès.

C’est la première chose que j’ai mise en place sur mon Raspberry pour en partager le contenu avec mes filles lorsque je me suis retrouvé loin d’elles. L’objectif était qu’elles puissent consulter mes photographies à tout moment. J’avoue que ce n’était pas la solution la plus efficace en la matière et je vous accompagnerai dans ce blog vers d’autres solutions plus performantes. Par contre, c’est un excellent moyen pour s’accoutumer à Linux et pour apprendre ce qui servira de base à l’administration de votre système. Et c’est dans ce sens que je vous invite à faire l’exercice.

Nous allons mettre en place notre NAS avec Samba. Il s’agit d’un logiciel qui permettra à des utilisateurs définis d’accéder à des documents stockés sur un répertoire donné de notre serveur, sécurisé par un système d’identification/authentification. Cet accès n’est pas directement lié au système SSH que nous avons configuré auparavant : les utilisateurs pourront accéder au partage Samba sans avoir procédé à l’échange des clés.

Dans un premier temps (à l’issue du présent article), l’accès sera restreint aux utilisateurs désignés lorsqu’ils sont présents sur notre réseau local. Cela permettra, par exemple, aux membres d’une famille de partager un répertoire de photos, ou aux membres d’une association de partager les documents lorsqu’ils sont réunis sur le site. L’article suivant permettra de bénéficier de cet accès en itinérance en garantissant la sécurité d’accès via un VPN.

La préparation du système

Maintenant, il est temps de nous mettre au boulot. Nous avons installé le système de notre Raspberry Pi, qui est totalement opérationnel. Nous allons donc ouvrir la console (Powershell pour Windows ou le terminal pour Linux) et accéder à notre Raspberry Pi.

ssh k-sper.fr@raspberrypi.local

La première chose que nous devons faire à chaque fois que nous allons installer un nouveau logiciel sur notre Raspberry Pi est de mettre à jour le système.

sudo apt update

sudo apt upgrade

Nous allons ensuite créer un répertoire partagé sur notre Raspberry Pi. Généralement, les données sont installées sur le disque dur. Et nous avons monté le disque dur sur /mnt/données.

Nous allons maintenant créer sur notre disque dur des répertoires auxquels nous souhaitons accéder via notre NAS.

sudo mkdir /mnt/donnees/perso /mnt/donnees/famille

Vous aurez remarqué que nous avons, par une seule commande, créé deux répertoires distincts, /mnt/donnees/perso et /mnt/donnees/public. Certaines commandes permettent en effet d’agir sur deux objets simultanément.

Le répertoire /mnt/donnees/perso sera limité à l’utilisation par k-sper.fr, alors que /mnt/donnees/public sera utilisé par k-sper.fr et les membres de sa famille.

Nous allons donc créer un groupe famille

sudo addgroup famille

Nous allons rattacher l’utilisateur k-sper.fr au groupe famille grâce à la commande usermod.

sudo usermod -a -G famille -g famille k-sper.fr

Cette opération modifie (mod) les propriétés de l’utilisateur (user) k-sper.fr pour lui ajouter (-a) le groupe (-G) famille et indiquer que le groupe (-g) famille est désormais son groupe principal. Cette dernière option est importante car jusqu’à présent, le groupe principal de k-sper.fr était le groupe k-sper.fr. En indiquant que son groupe principal est famille, les fichiers nouvellement créés par k-sper.fr auront famille comme groupe.

Nous allons maintenant nous approprier ces deux répertoires, en indiquant que le propriétaire est k-sper.fr et que le groupe est famille.

sudo chown k-sper.fr:famille /mnt/donnees/perso

sudo chown k-sper.fr:famille /mnt/donnees/famille

Et nous allons donner les droits comme nous le souhaitons pour ces deux répertoires. Disons que nous voulons donner tous les droits (écriture, lecture, exécution) aux membres de la famille sur le répertoire famille, et seulement les droits de lecture sur le répertoire perso (et aucun droit aux utilisateurs non-membres du groupe famille sur les deux répertoires.

sudo chmod 740 /mnt/donnees/perso

sudo chmod 770 /mnt/donnees/famille

Vérifions les résultats

ls -l /mnt/donnees

Maintenant, il nous faut créer les utilisateurs membre de notre famille. Nous allons donc créer bouffi, crado et teigneux. Dans le cadre de chacune de ces instructions, il nous sera nécessaire de créer un mot de passe pour chacun d’entre eux. Assurez-vous de bien les noter pour les leur transmettre, ou mieux, de les leur faire définir personnellement.

sudo adduser bouffi

sudo adduser crado

sudo adduser teigneux

Puis nous allons les affecter au groupe famille

sudo usermod -a -G famille -g famille bouffi

sudo usermod -a -G famille -g famille crado

sudo usermod -a -G famille -g famille teigneux

Notre système est prêt : il est temps d’installer Samba

L’installation et la configuration de Samba

Pour installer un logiciel nouveau, nous allons utiliser la commande apt que nous avons déjà vue. Elle nous a servi dans un premier temps pour mettre à jour notre système. Mais elle sert plus généralement à gérer les paquets (logiciels) disponibles pour notre système d’exploitation. Il est à noter que sur d’autres distribution, la gestion des paquets est assurée par d’autres outils.

Nous allons donc taper

sudo apt install samba

Après validation, l’installation devrait dure une à deux minutes. Elle va installer Samba ainsi que l’ensemble de ses dépendances.

Samba est installé. Il nous faut maintenant le configurer, en éditant le fichier /etc/samba/smb.conf.

sudo nano /etc/samba/smb.conf

Le fichier qui s’ouvre est assez imposant de prime abord, mais la plupart de ses éléments ne nous intéressent pas. Nous allons directement à la fin du fichier et ajoutons les lignes suivantes :

[Perso]
comment = « Serveur perso de k-sper.fr »
path = /mnt/donnees/perso
valid users = @famille
force group = famille
write list = k-sper.fr
create mask=0740
directory mask=0740
read only = yes
[Famille]
comment = « Serveur de la famille de k-sper.fr »
path = /mnt/donnees/famille
valid users = @famille
force group = famille
create mask=0770
directory mask=0770
read only = no

Nous refermons le fichier après l’avoir sauvegardé. Prenons maintenant quelques instants pour partager le sens de ce paramétrage :

  • le paramètre comment (commentaire) porte un message sur le nouveau partage,
  • path (chemin) indique le chemin d’accès vers les documents partagés dans le système de fichiers,
  • valid users dresse la liste des utilisateurs autorisés : ici, le symbole @ permet de désigner un groupe au sens Linux, le groupe famille,
  • force group indique que l’ensemble des documents créés via le partage le seront avec le groupe famille, de manière à pouvoir être lus par l’ensemble des membres du groupe conformément aux droits d’accès définis,
  • write list précise que dans le partage Perso, le seul utilisateur autorisé à créer et modifier des documents est k-sper.fr,
  • create mask précise les modalités de gestion des droits pour les fichiers créés dans le cadre du partage,
  • directory mask, à l’instar de point précédent, indique la gestion des droits pour les répertoires créés dans le cadre du partage,
  • enfin read only indique si le partage doit être en lecture seule (à l’exception des utilisateurs figurant dans la write list).

Nous relançons le processus Samba.

sudo service smbd restart

Nous allons maintenant créer nos utilisateurs au sein de Samba (de préférence avec les mêmes mots de passe que précédemment ; ce sont ces mots de passe qui seront utilisés pour accéder aux partages).

sudo smbpasswd -a k-sper.fr

sudo smbpasswd -a bouffi

sudo smbpasswd -a crado

sudo smbpasswd -a teigneux

Les membres de la famille peuvent maintenant se connecter, par exemple sur un poste Windows en allant sur l’explorateur de fichiers, via un clic droit sur « Ce PC » et en choisissant l’option « Ajouter un emplacement réseau » puis « Suivant », « Choisissez un emplacement réseau personnalisé ».

Et profitez bien de votre nouveau serveur fait maison : si vous êtes arrivé(e) jusqu’ici, vous l’avez bien mérité !


Si vous avez apprécié cet article, n’hésitez pas à laisser à son auteur un petit commentaire : il l’encouragera à le maintenir et à le développer.


Commentaires

2 réponses à “Mettre en place un NAS avec Samba”

  1. Avatar de Arslan

    Typo in commands:

    sudo smdpasswd -a k-sper.fr
    and onwards

    Must be
    sudo smbpasswd -a k-sper.fr

    1. Right ! It is smbpasswd. I correct it.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *