====== 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 ## sur LXC # création d'un groupe LXC avec le gid=10000 addgroup -g 10000 lxc_share # ajouter le user dans le group addgroup lxc_share ===== 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é ## 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 Pour rappel, le format du fichier d'identification doit être username= password= Ensuite, on va créer le bindmount # 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 Enfin, on reboot le CT LXC