Je vise à configurer un accès en écriture complet à un partage 9p pour un invité KVM. L'hôte et l'invité ont les mêmes utilisateurs / groupes avec les mêmes ID. L'hôte et l'invité devraient pouvoir écrire sur le partage en utilisant les mêmes noms d'utilisateur et je ne veux pas distinguer si un fichier a été écrit par l'hôte ou l'invité. Le processus de kvm est en cours d' exécution en tant que root - ensemble I user
et group
à root
en /etc/libvirt/qemu.conf.
Dans la définition d'invité sur l'hôte, le partage est défini comme suit:
<filesystem type='mount' accessmode='passthrough'>
<source dir='/mnt/storage/data'/>
<target dir='data'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</filesystem>
Dans l'invité, le partage est monté comme:
mount -t 9p -o rw,trans=virtio,version=9p2000.L,msize=262144 data /mnt/data
Le problème est que l'utilisateur root de l'invité ne peut pas écrire dans des fichiers / dossiers appartenant à un utilisateur non root sur l'hôte. Plus étrange encore, la racine de l'invité peut renommer et supprimer de tels fichiers. Autrement dit, lorsque sur la machine hôte je crée un fichier en tant qu'utilisateur non root, je ne peux tout simplement pas le modifier en tant que root de l'invité, même si je peux le renommer et le supprimer!
J'ai également constaté que lorsqu'un dossier créé sur l'hôte sous un utilisateur non root a ses autorisations définies sur 777, la racine de l'invité peut y écrire (c'est-à-dire créer des fichiers). Cependant, cela ne s'applique pas aux fichiers - ils ne peuvent toujours pas être modifiés indépendamment des autorisations.
L'hôte et l'invité exécutent le serveur Linux 3.2.0-4-amd64 # 1 SMP Debian 3.2.51-1 x86_64 GNU / Linux. Dans Debian, SELinux est désactivé par défaut et je ne l'ai pas activé. J'ai essayé les trois modes d'accès 9p disponibles ( passthrough
, mapped
et squash
) - aucune différence.
Je me demande simplement s'il y a quelque chose que je peux modifier pour le faire fonctionner, ou est-ce juste un bug?
Notez qu'un problème similaire est signalé ici: accès en lecture / écriture pour les systèmes de fichiers passthrough (9p) avec libvirt / qemu? mais contrairement à ce cas, j'ai un accès en écriture à 100% dans les fichiers appartenant à root, ce ne sont que des fichiers utilisateur non root que je ne peux pas écrire, même en étant root sur l'invité.