在过去的两天里,我尝试在主机和客户虚拟机之间共享一个文件夹,两者都运行最新的 Debian Stretch。
我希望共享的文件夹归主机硬盘上的myuser
, 组所有 ( )。由于客户机是运行 Nextcloud 的 LAMP 服务器,因此我希望以 的身份访问和写入此共享文件夹。mygroup
/srv/sharedfolder
www-data:www-data
Default
因此我使用驱动程序和模式创建了一个 libvirt 的文件系统Mapped
:
<filesystem type='mount' accessmode='mapped'>
<source dir='/srv/sharedfolder'/>
<target dir='sharedfolder'/>
<alias name='fs0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</filesystem>
Mapped
似乎是个不错的选择,正如suse.com:
用户凭据和客户端用户的凭据保存在扩展属性中。当主机和来宾域应保持完全隔离时,建议使用此模型。
在主机端:
- 用户和组
/etc/libvirt/qemu.conf
设置myuser
为mygroup
- 共享文件夹已被“chmode”
chmod 775
客人方面:
- 共享文件夹的挂载点属于
www-data:www-data
fstab(以 kernel.org 为参考):
共享文件夹 /srv/sharedfolder 9p trans=virtio,version=9p2000.L,rw,nofail 0 0
迄今为止,我可以读写共享文件夹这样www-data
一来,任务看上去就完成了。
但是,当在共享文件夹内创建新文件时,myuser
新文件被视为属于myuser:myuser
客人(而我预计它将由 拥有www-data:www-data
)。
那我该怎么办?提前谢谢。