O convidado KVM não pode gravar no compartilhamento 9p de propriedade de não raiz


14

Meu objetivo é configurar o acesso total de gravação a um compartilhamento 9p para um convidado KVM. O host e o convidado têm os mesmos usuários / grupos com os mesmos IDs. O host e o convidado devem poder gravar no compartilhamento usando os mesmos nomes de usuário e não quero distinguir se um arquivo foi gravado pelo host ou convidado. O processo KVM está sendo executado como root - conjunto I usere grouppara rootem /etc/libvirt/qemu.conf.

Na definição de convidado no host, o compartilhamento é definido da seguinte maneira:

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

No convidado, o compartilhamento é montado como:

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

O problema é que o usuário root no convidado não pode gravar em arquivos / pastas pertencentes ao usuário não root no host. Ainda mais estranhamente, a raiz do convidado pode renomear e excluir esses arquivos. Ou seja, quando na máquina host eu crio um arquivo como um usuário não raiz, simplesmente não consigo editá-lo como raiz do convidado, mesmo que eu possa renomeá-lo e excluí-lo!

Também descobri que onde uma pasta criada no host com usuário não raiz tem suas permissões definidas para 777, a raiz do convidado pode gravar nele (ou seja, criar arquivos nela). Isso, no entanto, não se aplica aos arquivos - eles ainda não podem ser editados, independentemente das permissões.

Tanto o host quanto o convidado estão executando o servidor Linux 3.2.0-4-amd64 # 1 SMP Debian 3.2.51-1 x86_64 GNU / Linux. No Debian, o SELinux está desativado por padrão e eu não o habilitei. Eu tentei todos os três modos de acesso 9p disponíveis ( passthrough, mappede squash) - sem diferença.

Só me pergunto se há algo que eu possa ajustar para fazê-lo funcionar, ou é apenas um bug?

Observe que há um problema semelhante relatado aqui: Acesso de leitura / gravação para sistemas de arquivos passthrough (9p) com libvirt / qemu? mas, diferentemente desse caso, eu tenho 100% de acesso de gravação onde os arquivos pertencentes ao root são apenas arquivos de usuário não raiz que não consigo gravar, mesmo sendo root no convidado.


2
Apenas para obter informações, nunca consegui que isso funcionasse corretamente e me deparei com todos esses mesmos problemas. Consequentemente, as implementações de passagem do sistema de arquivos p9 foram descontinuadas nas versões recentes qemu / libvirt.
Spooler

2
Da mesma forma aqui. A Red Hat parece pensar que o 9p não está pronto para o horário nobre .
Diagon

Respostas:


0

Você pode verificar atributos adicionais do sistema de arquivos, como acl, no diretório compartilhado? Estou suspeitando de problema de permissão.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.