L'invité KVM ne peut pas écrire sur un partage 9p appartenant à des non-root

14

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 useret groupà rooten /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, mappedet 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é.

Greendrake
la source
2
Juste pour information, je n'ai jamais réussi à faire fonctionner cela correctement et j'ai rencontré tous ces mêmes problèmes. Par conséquent, les implémentations passthrough du système de fichiers p9 sont obsolètes dans les versions récentes de qemu / libvirt.
Spooler
2
De même ici. Le chapeau rouge semble penser que le 9p n'est pas prêt pour les heures de grande écoute .
Diagon

Réponses:

0

Pouvez-vous vérifier les attributs supplémentaires du système de fichiers tels que acl sur le répertoire partagé? Je soupçonne un problème d'autorisation.

asktyagi
la source