From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com ([209.132.183.28]:37978 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726263AbeLLVZ5 (ORCPT ); Wed, 12 Dec 2018 16:25:57 -0500 Date: Wed, 12 Dec 2018 16:25:53 -0500 From: Vivek Goyal To: Piotr Jurkiewicz Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, kvm@vger.kernel.org, miklos@szeredi.hu, stefanha@redhat.com, dgilbert@redhat.com, sweil@redhat.com, swhiteho@redhat.com Subject: Re: [PATCH 00/52] [RFC] virtio-fs: shared file system for virtual machines Message-ID: <20181212212553.GB23229@redhat.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Wed, Dec 12, 2018 at 06:07:40PM +0100, Piotr Jurkiewicz wrote: > Currently, virtio-9p cannot be used with overlayfs in order to obtain > Docker-like experience (but with separate kernel) because of file attributes > problems. I wrote an email about that to qemu-devel almost year ago, but it > received no attention (I attach its contents below.). > > Will virtio-fs avoid these problems? I assume it will be transparent from > the point of view of file attributes, and not enforce any kind of security > filtering? Hi Piotr, So you want to use virtio-fs as upper/ layer of a overlay filesystem inside guest? Interesting. I have not tried that. As of now I think we are not doing any filtering of file attributes and it might just work. Give it a try. Having said that, I suspect that security model of virtio-fs most likely will evolve. Thanks Vivek > > Piotr Jurkiewicz > > ---- > > 1. Upper filesystem must support the creation of trusted.* extended > attributes. > > 9pfs has support for getting/setting xattrs, but calls operating on > attributes other than user.* and system.posix_acl_* are dropped. > > 2. Upper filesystem must provide valid d_type in readdir responses. > > This works, but only in case of 'passtrough' and 'none' security models. In > the case of 'mapped-xattr' and 'mapped-file' models, d_type is being zeroed > to DT_UNKNOWN during readdir() call. > > All these limitations can be resolved pretty easily, but requires some > design decisions. I can prepare appropriate patches. > > Ad. 1. > > Why are operations on attributes other than than user.* and > system.posix_acl_* forbidden? Is this due to security reasons? > > If so, can we map all of them to user.virtfs namespace, similarly as > system.posix_acl_* are being mapped to user.virtfs.system.posix_acl_* in > 'mapping' mode already? This way any trusted/security/system attributes will > be effective only when mounted via virtfs inside VM. > > Ad. 2. > > local_readdir() can fill entry->d_type with the right DT_* value by > obtaining file type from mapping and translating it with IFTODT() macro. > This would, however, require reading 'user.virtfs.mode' for each direntry > during readdir() call, what can affect performance. If so, this behavior > would probably need to be controlled with some runtime option. > > 'mapped-xattr' and 'mapped-file' models are essential for running qemu with > overlayfs as non-root, because overlayfs creates device nodes, what is > possible for unprivileged user only with these models.