Mi propongo di impostare l'accesso completo in scrittura a una condivisione 9p per un ospite KVM. Sia l'host che l'ospite hanno gli stessi utenti / gruppi con gli stessi ID. Sia l'host che l'ospite dovrebbero essere in grado di scrivere sulla condivisione utilizzando gli stessi nomi utente e non voglio distinguere se un file è stato scritto dall'host o dall'ospite. Il processo di KVM viene eseguito come root - insieme I user
e group
ad root
in /etc/libvirt/qemu.conf.
Nella definizione ospite sull'host, la condivisione è definita come segue:
<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>
Nell'ospite, la condivisione è montata come:
mount -t 9p -o rw,trans=virtio,version=9p2000.L,msize=262144 data /mnt/data
Il problema è che l'utente root nel guest non può scrivere su file / cartelle di proprietà di utenti non root sull'host. Ancora più stranamente, la radice dell'ospite può rinominare ed eliminare tali file. Cioè, quando sul computer host creo un file come utente non root, semplicemente non riesco a modificarlo come root del guest, anche se posso rinominarlo ed eliminarlo!
Ho anche scoperto che dove una cartella creata sull'host con un utente non root ha i suoi permessi impostati su 777, il root dell'ospite può scrivergli (cioè creare file in esso). Questo, tuttavia, non si applica ai file: non possono ancora essere modificati indipendentemente dalle autorizzazioni.
Sia l'host che il guest eseguono il server Linux 3.2.0-4-amd64 # 1 SMP Debian 3.2.51-1 x86_64 GNU / Linux. In Debian, SELinux è disabilitato di default e non l'ho abilitato. Ho provato tutte e tre le modalità di accesso 9p disponibili ( passthrough
, mapped
e squash
) - nessuna differenza.
Mi chiedo solo se c'è qualcosa che posso modificare per farlo funzionare, o è solo un bug?
Nota che c'è un problema simile riportato qui: accesso in lettura / scrittura per filesystem passthrough (9p) con libvirt / qemu? ma a differenza di quel caso, ho accesso in scrittura al 100% dove i file sono di proprietà di root, sono solo i file utente non root a cui non posso scrivere nemmeno essendo root sul guest.