J'ai donc commencé par envoyer mes fichiers de façon classique avec sftp, dans le home de mon utilisateur xakan. J'ai monté le système de fichier du conteneur avec pct mount <id du conteneur>, et simplement déplacé les fichiers avec mv <mondossier> /var/lib/lxc/<id>/rootfs/var/www/zdx. Un petit lxc-attach <id du conteneur> plus tard, me voici dans le dossier /var/www/ à vérifier les droits sur les fichiers avec ls -al :

drwxr-xr-x 11 nobody   nogroup  4096 Apr 24 19:20 zdx

Qu'à cela ne tienne, toujours depuis le conteneur, on met www-data:www-data comme propriétaires du dossier :

chown -R www-data: zdx
chown: changing ownership of 'zdx/terms/index.html': Operation not permitted

Ah. C'est même pas un accès refusé, c'est une opération non autorisée. lsattr m'indique que l'attribut i n'est pas présent, ce n'est donc pas le problème. En réalité, cela vient du fait que mon conteneur est un conteneur sans privilèges, sans correspondance entre l'utilisateur xakan et les utilisateurs du conteneur. Le dossier est donc assigné à nobody et nogroup.

La solution consiste donc à aller chercher le pid du processus init tel que vu par l'hôte. Il est bien entendu à 1 du côté du conteneur.

lxc-info -p 200
PID:            1204

Du côté de l'hôte, le processus init de mon conteneur est donc 1024. Je peux à partir de là aller chercher l'uid de l'utilisateur qui exécute ce processus, toujours tel que vu depuis l'hôte :

cat /proc/1204/uid_map
         0     100000      65536

De retour sur le conteneur après un nouvel lxc-attach 200, je vérifie l'id de l'utilisateur www-data qui doit posséder le dossier :

id -u www-data
33

D'un point de vue hôte, l'utilisateur qui doit être propriétaire du dossier zdx a donc pour id 100000 + 33 (id de l'utilisateur depuis le conteneur). Il n'y a donc plus qu'à définir les droits depuis l'hôte, en passant par le montage du système de fichier :

chown -R 100033:100033 /var/lib/lxc/200/rootfs/var/www/public

On démonte le système de fichier du conteneur :

pct unmount 200

Et on va sur le conteneur vérifier que les droits sont bons, toujours avec ls -al :

drwxr-xr-x 11 www-data www-data 4096 Apr 24 19:20 zdx

That's it!