====== 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