Installation samba sous docker

Bonjour,
Voici un petit appels à l’aide pour ceux qui utilisent docker et pas forcément hassio.

J’ai une machine (micro-pc) dédiée sous debian 11 ou je fais fonctionner sous docker des applications trop lourdes pour être installées sur mon Home Assistant de production. C’est tout particulièrement le cas pour frigate.
Frigate pointe sur le répertoire /opt/docker/frigate et je souhaite mettre en place samba pour (en tout cas) accéder à ce répertoire. Or voici près de 1 journée que je sèche sur le sujet.

J’ai essayé sans succès l’implémentation de dperson/samba pour finalement implémenter celle de elswork/samba.
Or je vois depuis un PC distant windows la machine debian et, aprés avoir rentré le login/password le répertoire frigate, mais impossible d’y accéder.

Sous debian, un « ls -la /opt/docker/frigate » me confirme pourtant que je suis owner du répertoire frigate et de ses sous-répertoires, avec donc tous les droits de lecture/écriture (-rw-r–r-- owner=argonaute group=argonaute).
L’id de l’utilisateur argonaute est 1000 et celui du groupe argonaute est 1000.

Voici mon fichier docker-compose (utilisé dans une stack de portainer).

version: '3.3'
services:
  samba:
    container_name: samba
    command: '-s "frigate:/opt/docker/frigate:rw:argonaute" -u "1000:1000:argonaute:argonaute:mon-pwd"' 
    image: elswork/samba
    ports:
      - "139:139"
      - "445:445"
    environment:
      - USERID=1000
      - GROUPID=1000
      - TZ="Europe/Paris"
    restart: unless-stopped
    volumes:
      - /opt/docker/frigate:/frigate

J’imagine que c’est à priori un pb de sécurité, mais je sèche.
Quelqu’un aurait une idée ?
Est ce que mon-pwd est le password de l’utilisateur argonaute sous debian ou dois je en mettre un autre pour le partage ? ( pas trop propre au passage de mettre le mdp dans le fichier de config… ).

Pour finir, quelle implémentation de samba utilisez vous ?

C’est (je pense) le -s qui ne va pas.
En fait, le 1er frigate c’est le nom du partage (comment sera vu le répertoire sur le réseau).
Et le deuxième, c’est le répertoire depuis le container. Donc /frigate et pas ce que tu as mis.

Et, oui, il faut le password dans -u… En tout cas, la doc ne donne pas d’autre option.

Salut.

Personnellement je suis pas certain qu’un service bas niveau ce soit bien de le mettre en tant que container… Tu rajoute un niveau de dépendance (pas de dockerd = pas de partage) et ça oblige à monter des volumes pour les ressortir…
Après samba versus nfs c’est un autre débat

Un immense merci @golfvert :pray: J’étais complètement passé à travers le fait que le path à mettre dans la commande -s était celui du volume exposé (vu par docker donc) et non le path complet. C’est pourtant très logique :upside_down_face:
J’avais déjà passé beaucoup de temps avant pour trouver que le $ dans mon mdp était non supporté par la config samba, et, fatigué de la chose, j’étais près à laisser tomber.

Du coup, j’ai aussi exposé mon répertoire sous home, qui contiendra peut être à terme les data (actuellement sous /opt), et je remet la configuration stack qui fonctionne, pour d’éventuels lecteurs de ce post.

version: '3.3'
services:
  samba:
    container_name: samba
    command: '-s "frigate:/frigate:rw:argonaute" -s "argonaute:/argonaute:rw:argonaute" -u "1000:1000:argonaute:argonaute:mon-pwd"' 
    image: elswork/samba
    ports:
      - "139:139"
      - "445:445"
    environment:
      - USERID=1000
      - GROUPID=1000
      - TZ="Europe/Paris"
    restart: unless-stopped
    volumes:
      - /opt/docker/frigate:/frigate
      - /home/argonaute:/argonaute

Hello @Pulpy,

Remarques intéressantes.

Concernant docker, j’aime bien pouvoir configurer dans portainer via les stacks (ici les volumes exposés), arrêter facilement si pas utile, mettre à mettre à jour facilement, isoler pour des questions de sécurité. Je n’utilise pas assez linux pour gérer rapidement sous ssh tous les services, leurs dépendances, éditer les configs avec nano, gérer les versions, etc. Je limite donc aux fonctions de base de l’OS.

NFS ou non : l’avantage de samba est qu’il apporte la compatibilité avec windows et les protocoles SMB/CIFS. C’est aussi ce qu’implémente synology sur ses NAS par exemple.

Mais oui le débat pourrait être ouvert sur lequel est le plus sûr. Déjà le mdp en clair dans la config de samba est très choquant… Je n’ai pas encore trouvé comment l’éviter. Une faille importante permettant d’exécuter du code root avait aussi été découverte sur samba en début d’année.
Faire marcher est une chose, mais c’est décidément très dur de monter un serveur sécurisé et fiable quand on n’est pas ingénieur système.

Même quand on est ingénieur système, ça l’est :slight_smile:
Là, il ne faut pas oublier que c’est du « loisir » et que tu peux faire confiance aux utilisateurs de ton LAN. Faut juste éviter de mettre 123456 comme mot de passe du wifi :wink:

1 « J'aime »

Hello,

Dockerd parfois ne se lance pas correctement, donc autant dire que si le partage de fichiers en dépends ça coince

En fait sans forcement parler des aspects sécurité je n’utilise pas samba parce que c’est pas indispensable à mon niveau :

  • Portainer c’est bien, mais je trouve que ça remplace pas un docker-compose
  • Associé à un partage NFS, tu montes ça n’importe où (y compris dans kub si besoin) et pas forcement besoin de version. Aujourd’hui des NAS qui font pas NFS c’est rare
  • Pour l’édition l’addon visualstudio est vraiment pratique (la version 4.1 est pourrie en ce moment) en alternative avec mobaxterm (https://mobaxterm.mobatek.net/) on a un terminal/sftp/éditeur intégré (couplé avec un VStudio local)