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 user
y group
que root
en /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
, mapped
y 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.