El invitado KVM no puede escribir en un recurso compartido de 9p propiedad de no root

14

Mi objetivo es configurar el acceso de escritura completo a un recurso compartido de 9p para un invitado KVM. Tanto el anfitrión como el invitado tienen los mismos usuarios / grupos con las mismas ID. Tanto el host como el invitado deberían poder escribir en el recurso compartido utilizando los mismos nombres de usuario y no quiero distinguir si un archivo fue escrito por el host o el invitado. El proceso de KVM se está ejecutando como root - conjunto I usery groupque rooten /etc/libvirt/qemu.conf.

En la definición de invitado en el host, el recurso compartido se define de la siguiente manera:

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

En el invitado, el recurso compartido se monta como:

mount -t 9p -o rw,trans=virtio,version=9p2000.L,msize=262144 data /mnt/data

El problema es que el usuario raíz en el invitado no puede escribir en archivos / carpetas propiedad de un usuario no root en el host. Aún más extraño, la raíz del invitado puede cambiar el nombre y eliminar dichos archivos. Es decir, cuando en la máquina host creo un archivo como usuario no root, simplemente no puedo editarlo como root del invitado, ¡aunque puedo renombrarlo y eliminarlo!

También descubrí que cuando una carpeta creada en el host con un usuario no root tiene sus permisos establecidos en 777, la raíz del invitado puede escribir en ella (es decir, crear archivos en ella). Sin embargo, esto no se aplica a los archivos: aún no se pueden editar independientemente de los permisos.

Tanto el host como el invitado ejecutan el servidor Linux 3.2.0-4-amd64 # 1 SMP Debian 3.2.51-1 x86_64 GNU / Linux. En Debian, SELinux está deshabilitado por defecto y no lo habilité. Probé los tres modos de acceso disponibles (9p passthrough, mappedy squash) - no hay diferencia.

Solo me pregunto si hay algo que pueda modificar para que funcione, ¿o es solo un error?

Tenga en cuenta que aquí se informa un problema similar: ¿ Acceso de lectura / escritura para sistemas de archivos passthrough (9p) con libvirt / qemu? pero a diferencia de ese caso, tengo un acceso de escritura del 100% a los archivos propiedad de root, solo son archivos de usuario no root en los que no puedo escribir, incluso siendo root en el invitado.

Garra Verde
fuente
2
Solo para información, nunca he conseguido que esto funcione correctamente, y me he encontrado con todos estos mismos problemas. En consecuencia, las implementaciones de paso del sistema de archivos p9 han quedado en desuso en las últimas versiones de qemu / libvirt.
Spooler
2
De manera similar aquí. Red Hat parece pensar que 9p no está listo para el horario estelar .
Diagon

Respuestas:

0

¿Puede verificar los atributos adicionales del sistema de archivos como acl en el directorio compartido? Sospecho de un problema de permiso.

asktyagi
fuente