Outils pour utilisateurs

Outils du site


lxc_smb

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
lxc_smb [2024/08/13 19:15] – créée luclxc_smb [2024/08/13 19:24] (Version actuelle) luc
Ligne 1: Ligne 1:
 +====== Accéder à un partage SMB dans un container LXC unprivileged ======
  
 +Il est recommandé -pour des raisons de sécurité- de faire tourner ses containers LXC en mode unprivileged. C'est d'ailleurs la config par défaut de [[proxmox]].
 +
 +Mais parfois, on souhaite accéder à un dossier partagé, que ce soit via SMB ou NFS.\\
 +Or, un container LXC unprivileged ne peut pas monter de dossier partagés via SMB / NFS.
 +
 +Dans Proxmox, une solution consiste à monter le dossier partagé dans l'hôte, et d'y donner accès au container par un [[proxmox#bindmount_pour_un_ct_lxc|bindmount]]. voici la procédure
 +
 +===== Etape 1 : dans le container LXC =====
 +
 +Sur le CT LXC, on crée un groupe avec un gid connu, 10000, et on attribue l'utilisateur qui doit avoir accès en lecture/écriture à ce groupe
 +
 +<code bash>
 +## sur LXC
 +# création d'un groupe LXC avec le gid=10000
 +addgroup -g 10000 lxc_share
 +
 +# ajouter le user dans le group
 +addgroup <username> lxc_share
 +</code>
 +
 +===== Etape 2 : sur l'hôte =====
 +
 +Sur l'hôte, on va :
 +  * faire le montage du dossier SMB
 +  * Donner accès à ce dossier au container
 +
 +NOTE : sur proxmox, les users et group des containers sont accessibles à l'hôte, il y a un offset de 100000 sur l'uid/gid.\\
 +En utilisant ce gid, on pourra donner accès en écriture à l'utilisateur/groupe du container sur le dossier monté
 +
 +<code bash>
 +## sur le host 
 +# créer un répertoire pour monter le dossier partagé
 +mkdir /mnt/syncthing_SMB
 +
 +# configurer fstab
 +//IP/shared_folder /mount/point cifs credentials=/root/credentials_SMB,_netdev,x-systemd.automount,noatime,uid=100000,gid=110000,dir_mode=0770,file_mode=0770 0 0
 +# NOTE : on choisit les uid/gid pour permettre au CT d'avoir les droits en écriture
 +# NOTE : les x-systemd.automount : le mount a lieu automatiquement lors de l'accès
 +#        (et pas avant, ce qui laisse le temps à truenas de démarrer et partager ce dossier SMB
 +</code>
 +
 +Pour rappel, le format du fichier d'identification doit être
 +<code>
 +username=<name user SMB>
 +password=<mdp-ultra-secret>
 +</code>
 +
 +Ensuite, on va créer le bindmount
 +<code bash>
 +# dans /etc/pve/lxc/
 +# éditer le fichier xxx.conf qui correspond à l'ID du container et rajouter
 +mp0: /mnt/shared_bindmount,mp=/shared
 +
 +# NOTE : /mnt/shared_bindmount correspond au dossier sur l'hôte
 +# NOTE : mp=/shared correspond au point de montage sur le CT
 +</code>
 +
 +Enfin, on reboot le CT LXC