Créer un partage de fichiers sous linux avec samba

Il est toujours pratique d’avoir la possibilité de partager des fichiers sur un réseau local, depuis sa machine, ou depuis un serveur dédié à cette tâche. Je vais vous présenter ma façon de faire afin de mettre en place un partage samba simple mais efficace. Je vais partir du principe que je partage un dossier dans mon répertoire utilisateur, mais la procédure reste la même pour un serveur qui ne ferait que ça, au final.

Dans un premier temps si ce n’est pas encore fait, il faudra installer le daemon samba :

apt-get install samba

Il nous faudra aussi un dossier à partager dans notre répertoire utilisateur, par exemple le dossier proposé de base sur debian : public. Ce dossier doit être en permissions 777 afin de laisser samba s’occuper des permissions et laisser les gens s’y connecter.

Petite optimisation des réglages généraux de base de notre serveur :

 interfaces = 192.168.1.0/24 eth0  # On déclare l'interface part son nom ou par le réseau sur lequel elle écoute
 hosts deny = ALL                  # On interdit tout le monde pour mieux les autoriser après
 hosts allow = 192.168.1.          # On autorise que notre réseau local (ou les machines, comme vous voulez)
 security = user
 map to guest = bad user           # Niveau de sécurité par défaut : mauvais mdp = rejeté, username inconnu = guest
 bind interfaces only = yes        # Permet de limiter le daemon aux interfaces précisées plus haut

Pour ce qui est de la directive security = user :

La sécurité au niveau de l'utilisateur est le choix par défaut pour Samba. Même si la directive security = user n'est pas présente dans le fichier smb.conf,
elle est utilisée par Samba. Si le serveur accepte le nom d'utilisateur/mot de passe du client, ce dernier peut alors monter des partages multiples sans devoir
saisir un mot de passe à chaque fois. Samba peut aussi accepter des requêtes nom d'utilisateur/mot de passe basées sur les sessions. Le client maintient
des contextes d'authentification multiples grâce à l'utilisation d'un identifiant utilisateur unique (ou UID) pour chaque connexion.

(source : site du mit)

Cette documentation est très complète, mais en html uniquement.

Quelques autres paramètres à prendre en compte pour débug plus facilement le service, les voici :

 log file = /var/log/samba/log.%m   # Le chemin + le nom du fichier de log
 max log size = 1000                # La taille max d'un fichier de log pour samba
 syslog = 0                         #  Indique si l'on veut tout mettre dans le fichier
                                    #+ de log de samba, ou en mettre un peu dans syslog
                                    #+ (avec une valeur plus haute que 0)

Suite à quoi nous pouvons définir les paramètres de notre dossier de partage :

[public]    # le nom donné à notre partage
   comment = public share     # Des commentaires sur notre partage qui peuvent être affichés suivant les outils utilisés pour y accèder
   browseable = yes           # On indique qu'on peut le parcourir pour fouiller dedans
   path = /home/$USER/public  # Le chemin vers notre dossier qui sera partagé
   guest ok = yes             # Les gens invités (sans compte) sont-ils les bienvenu ?
   read only = no             # Est-ce en lecture seule ?
   create mask = 0755         # Masque de création pour les utilisateurs authentifiés avec un compte
   directory mask = 0755      # Masque de création des dossiers pour les utilisateurs authentifiés avec un compte

Il ne nous reste plus qu’à relancer (restart ou reload) notre service samba :

service smbd restart && service nmbd restart
    Ou alors
systemctl restart smbd.service && systemctl restart nmbd.service
    Ou encore :
systemctl restart samba-ad-dc.service

Ce qui termine notre mise en place de notre partage via samba. N’oubliez pas de faire un tour sur le site de samba, celle de archlinux, ou encore lire la documentation du mit pour configurer d’avantage votre serveur de fichiers et répondre au mieux à vos attentes.

Lu 560 fois

Laisser un commentaire

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