Recherche de site Web

Comment monter un répertoire partagé Samba au démarrage


Samba est une suite de programmes d’interopérabilité gratuits et open source qui nous permet de partager des fichiers et des imprimantes entre des machines fonctionnant sous Linux ou Windows. Un partage Samba est assez facile à configurer et est facilement accessible sur les clients, car la grande majorité des explorateurs de fichiers Linux prennent en charge samba. Dans certaines situations, cependant, nous pouvons vouloir monter un partage Samba au démarrage, tout comme un système de fichiers normal sur un point de montage spécifié.

Dans ce tutoriel, nous allons voir comment utiliser cifs-utils pour monter un répertoire partagé Samba sous Linux.

Dans ce tutoriel, vous allez apprendre :

  • Comment installer cifs-utils sur certaines des distributions Linux les plus utilisées
  • Comment monter un Samba protégé par des informations d’identification partagé au démarrage
  • Comment monter un partage Samba accessible aux invités au démarrage

Configuration logicielle requise et conventions utilisées

Introduction

Au cours de ce tutoriel, je supposerai qu’un partage Samba existe déjà et est accessible sur le réseau local. Je supposerai que l’adresse IP du serveur Samba est 192.168.0.39, et que le nom du partage Samba est shared_data. La mise en place d’un partage Samba n’est pas une tâche difficile, mais au cas où vous auriez besoin d’aide, vous pouvez jeter un coup d’œil à ce tutoriel, et dans peu de temps, vous devriez être prêt à partir. Bien que la majorité des gestionnaires de fichiers graphiques sous Linux prennent en charge Samba par défaut, et qu’il soit facile d’accéder et de mettre en signet un répertoire partagé, dans certains cas, nous pouvons vouloir monter le partage automatiquement lorsque le système démarre, afin qu’il soit traité comme une partie du système de fichiers local. Voyons comment nous pouvons le faire en quelques étapes faciles.

Installation de cifs-utils

Le paquet cifs-utils, qui est disponible dans les dépôts de toutes les distributions Linux les plus utilisées, contient une série d’outils pour gérer les répertoires partagés via Samba, comme s’il s’agissait de systèmes de fichiers Linux standard. Pour installer le logiciel sur Fedora, tout ce que nous avons à faire est d’exécuter la commande suivante :

sudo dnf install cifs-utils

Sur Debian et ses nombreux dérivés comme Ubuntu et Linux Mint, en revanche, la manière « moderne » d’installer des paquets est d’utiliser le wrapper apt qui simplifie l’utilisation d’outils de niveau inférieur comme apt-get :

sudo apt install cifs-utils

Si Archlinux est notre distribution préférée, nous pouvons effectuer l’installation en utilisant le gestionnaire de paquets pacman. Le paquet cifs-utils est disponible dans le dépôt Extra :

sudo pacman -Sy cifs-utils

Une fois le paquet cifs-utils installé sur notre système, nous pouvons l’utiliser pour monter automatiquement le partage samba au démarrage. Voyons comment.

Étape 1 – Création d’un point de montage

Pour pouvoir monter le partage Samba au démarrage, nous devons d’abord créer un point de montage sur notre système de fichiers local. Pour les besoins de cet article, nous allons créer et utiliser le répertoire /mnt/samba à cet effet. Pour créer le répertoire, nous pouvons exécuter :

sudo mkdir /mnt/samba

Notre point de montage est maintenant prêt. Ce que nous devons faire maintenant, c’est de créer une entrée dans le fichier /etc/fstab pour le partage Samba.

Étape 2 - Création d’une entrée /etc/fstab

Sur n’importe quel système Linux, le fichier /etc/fstab contient les instructions nécessaires pour monter les systèmes de fichiers au démarrage. Nous avons examiné en détail la syntaxe fstab dans un article précédent, que vous pouvez consulter si vous ne la connaissez pas. Selon la façon dont il est défini côté serveur, un partage Samba peut être soit protégé par des informations d’identification de nom d’utilisateur/mot de passe, soit accessible en tant qu’utilisateur invité. Les options de montage que nous devons utiliser dans /etc/fstab dépendent de ce facteur.

Création d’une entrée pour un partage Samba protégé par mot de passe

Dans la grande majorité des cas, les partages Samba sont protégés, et pour y accéder, un nom d’utilisateur et un mot de passe doivent être fournis. Étant donné que nous devons monter automatiquement le partage Samba au démarrage, nous ne voulons pas que ces informations d’identification soient demandées de manière interactive. Il existe deux façons de fournir des informations d’identification sans interaction, l’une légèrement plus « sécurisée » que l’autre.

La première, et la moins sûre des deux, consiste à spécifier le nom d’utilisateur et le mot de passe nécessaires pour accéder au partage Samba en tant que valeurs des options de montage cifs dédiées directement dans le fichier /etc/fstab. Voyons un exemple. Voici à quoi pourrait ressembler notre entrée fstab :

//192.168.0.39/shared_data /mnt/samba cifs username=myusername,password=mypassword 0 0

Dans le premier champ de saisie, nous faisons référence au système de fichiers que nous voulons monter. Normalement, lorsqu’il s’agit de systèmes de fichiers standard, nous les référenceons en utilisant leur UUID, LABEL ou chemin. Dans ce cas, cependant, nous devons fournir l’adresse IP du serveur samba ainsi que le nom du partage Samba.

Dans le deuxième champ de l’entrée, nous spécifions le point de montage du système de fichiers. Le troisième champ, à la place, est utilisé pour spécifier le type de système de fichiers : nous devons utiliser « cifs » comme valeur ici.

Le quatrième champ est l’endroit où nous spécifions les options de montage : ici, comme nous l’avons dit ci-dessus, nous avons utilisé les options de nom d’utilisateur et de mot de passe pour transmettre nos identifiants de partage Samba. Cette façon de spécifier les informations d’identification a ses défauts évidents, car tout le monde dans le système peut lire le fichier. Même si le fichier avait des permissions plus strictes, les options de montage seraient visibles dans la sortie de la commande de montage, qui, lorsqu’elle est appelée sans options, renvoie une liste des systèmes de fichiers montés et des options de montage associées.

Les deux derniers champs de l’entrée fstab sont utilisés pour spécifier si le système de fichiers doit être vidé (valeur booléenne) et dans quel ordre le système de fichiers doit être vérifié (une valeur de 0 désactive complètement la vérification).

La deuxième option, légèrement plus sécurisée, consiste à stocker les informations d’identification Samba pour le répertoire partagé dans un fichier dédié, puis à utiliser son chemin d’accès comme valeur de l’option de montage des informations d’identification. Pour les besoins de ce tutoriel, nous allons créer le fichier sous le nom /root/smbcredentials. Voici ce que nous écrivons à l’intérieur :

user=mysambauser
password=mysambapassword

Après avoir enregistré le fichier, nous pouvons définir ses autorisations afin qu’il ne soit lisible que par son propriétaire, qui à ce stade est l’utilisateur root (cela pourrait être superflu, car dans ce cas, le fichier se trouve dans le répertoire /root, qui par défaut appartient lui-même à l’utilisateur root et au groupe racine, et a des autorisations définies sur 550, donc seul root peut y accéder et lister son contenu). Avec le fichier en place, voici comment nous modifions notre entrée fstab :

//192.168.0.39/shared_data /mnt/samba cifs credentials=/root/smbcredentials 0 0

Après avoir sauvegardé l’entrée dans le fichier fstab, pour vérifier que le partage Samba est monteur sans problème, nous pouvons simplement exécuter :

sudo mount -a

Après avoir lancé la commande ci-dessus, le partage Samba doit être monté sur/mnt/samba, cependant, il semble que nous ne puissions lire que le contenu du répertoire, et si nous essayons de créer, modifier ou supprimer un fichier à l’intérieur de celui-ci en tant qu’utilisateur non privilégié, nous recevons un message d’erreur (même si le « vrai » système de fichiers où se trouvent les fichiers exportés ne prend pas en charge les permissions UNIX, comme NTFS) ; Pourquoi cela se produit-il ? Si vous listez le contenu du répertoire et examinez les permissions du répertoire lui-même, vous verrez qu’elles appartiennent à l’utilisateur root ! Cela se produit à cause des options de montage cifs uid et gid.

Les options de montage uid et gid sont utilisées pour définir, respectivement, l’uid et le gid des fichiers à l’intérieur du répertoire partagé dans le système client lorsque le serveur Samba ne fournit pas d’informations de propriété. La valeur par défaut utilisée pour ces options est 0, qui, comme nous le savons, est l’uid et le gid de l’utilisateur root. Comment résoudre ce problème ? Une solution consiste à définir la valeur de ces options sur l’uid et le gid de l’utilisateur local qui doit être autorisé à écrire sur le partage (il va de soi que l’écriture doit être autorisée dans la configuration du partage sur le serveur en premier lieu, avec l’option en lecture seule définie sur « no »). En supposant que l’uid et le gid primaire de l’utilisateur qui devrait être autorisé à écrire sur le répertoire partagé soient tous deux de 1000, on écrirait :

//192.168.0.39/shared_data /mnt/samba cifs credentials=/root/smbcredentials,uid=1000,gid=1000 0 0

Une autre solution consiste à utiliser l’option noperm cifs à la place. Lorsque cette option est utilisée, le client (donc notre système local) n’effectue pas de vérifications d’autorisation sur le partage Samba (les autorisations ne sont appliquées que côté serveur). Cela résout le problème, mais présente l’inconvénient de permettre à tous les utilisateurs du système local d’écrire dans le partage une fois qu’il est monté :

//192.168.0.39/shared_data /mnt/samba cifs credentials=/root/smbcredentials,noperm 0 0

Création d’une entrée pour un partage Samba autorisé par un invité

Dans certains cas, le serveur samba peut être configuré pour autoriser l’accès invité à un partage, c’est ce qu’on appelle l’accès anonyme. Comment pouvons-nous monter un tel partage au démarrage ? Avant de voir cela, nous devrions prendre le temps de dire que lorsqu’un partage Samba est configuré pour autoriser l’accès en tant qu’utilisateurs non authentifiés, c’est une bonne habitude de n’autoriser l’accès qu’à ceux-ci, et de ne pas utiliser le partage avec authentification, comme indiqué dans la documentation officielle de Samba. Une telle configuration peut être réalisée en définissant l’option invité uniquement sur « oui » dans la configuration du partage : cela forcera tous les utilisateurs à accéder au partage avec le compte invité, qui par défaut est mappé à l’utilisateur UNIX « nobody ». Voici un exemple de partage accessible par l’invité, comme indiqué dans la documentation susmentionnée :

[shared_data]
        # This share allows anonymous (guest) access
        # without authentication!
        path = /srv/samba/data
        read only = no
        guest ok = yes
        guest only = yes

En supposant que nous ayons cette configuration en place sur le serveur, et que notre utilisateur sur le client est toujours identifié par uid et gid 1000, notre ligne fstab devient :

//192.168.0.39/shared_data /mnt/samba cifs uid=1000,gid=1000,guest 0 0

Comme vous pouvez le constater, nous avons utilisé une nouvelle option : invité. Lorsque cette option est utilisée, un mot de passe ne nous sera pas demandé de manière interactive. Cela devrait suffire pour monter un partage Samba accessible en tant qu’utilisateur anonyme.

Conclusions

Dans ce tutoriel, nous avons vu comment monter un répertoire partagé via Samba au démarrage, tout comme il s’agissait d’un système de fichiers Linux standard. Pour atteindre notre objectif, nous avons utilisé le logiciel fourni par le paquet cifs-utils et nous avons vu comment l’installer dans certaines des distributions Linux les plus utilisées. Dans le tutoriel, nous avons appris à monter à la fois un partage Samba protégé par des informations d’identification et un partage Samba accessible par l’invité, et nous avons discuté de certaines options de montage cifs.

Articles connexes: