From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932489AbaJWCUN (ORCPT ); Wed, 22 Oct 2014 22:20:13 -0400 Received: from mail-la0-f46.google.com ([209.85.215.46]:33810 "EHLO mail-la0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932184AbaJWCUI (ORCPT ); Wed, 22 Oct 2014 22:20:08 -0400 MIME-Version: 1.0 In-Reply-To: <20141023002200.GA138443@ubuntu-hedt> References: <1414013060-137148-1-git-send-email-seth.forshee@canonical.com> <1414013060-137148-5-git-send-email-seth.forshee@canonical.com> <20141023002200.GA138443@ubuntu-hedt> From: Andy Lutomirski Date: Wed, 22 Oct 2014 19:19:44 -0700 Message-ID: Subject: Re: [PATCH v5 4/4] fuse: Allow user namespace mounts To: Andy Lutomirski , Miklos Szeredi , "Eric W. Biederman" , "Serge H. Hallyn" , Michael j Theall , fuse-devel@lists.sourceforge.net, "linux-kernel@vger.kernel.org" , Linux FS Devel Cc: Seth Forshee Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Oct 22, 2014 at 5:22 PM, Seth Forshee wrote: > On Wed, Oct 22, 2014 at 02:51:56PM -0700, Andy Lutomirski wrote: >> On Wed, Oct 22, 2014 at 2:24 PM, Seth Forshee >> wrote: >> > Cc: Eric W. Biederman >> > Cc: Serge H. Hallyn >> > Cc: Andy Lutomirski >> > Signed-off-by: Seth Forshee >> > --- >> > fs/fuse/inode.c | 4 ++-- >> > 1 file changed, 2 insertions(+), 2 deletions(-) >> > >> > diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c >> > index b88b5a780228..7d0e73e36e7b 100644 >> > --- a/fs/fuse/inode.c >> > +++ b/fs/fuse/inode.c >> > @@ -1201,7 +1201,7 @@ static void fuse_kill_sb_anon(struct super_block *sb) >> > static struct file_system_type fuse_fs_type = { >> > .owner = THIS_MODULE, >> > .name = "fuse", >> > - .fs_flags = FS_HAS_SUBTYPE, >> > + .fs_flags = FS_HAS_SUBTYPE | FS_USERNS_MOUNT, >> > .mount = fuse_mount, >> > .kill_sb = fuse_kill_sb_anon, >> > }; >> > @@ -1233,7 +1233,7 @@ static struct file_system_type fuseblk_fs_type = { >> > .name = "fuseblk", >> > .mount = fuse_mount_blk, >> > .kill_sb = fuse_kill_sb_blk, >> > - .fs_flags = FS_REQUIRES_DEV | FS_HAS_SUBTYPE, >> > + .fs_flags = FS_REQUIRES_DEV | FS_HAS_SUBTYPE | FS_USERNS_MOUNT, >> > }; >> > MODULE_ALIAS_FS("fuseblk"); >> > >> > -- >> > 1.9.1 >> > >> >> This is mostly a sign of my ignorance, but how does this actually end >> up working? I assume that the mounter opens /dev/fuse and then passes >> the fd to the mount call. Which userns is captured? The opener of >> /dev/fuse or the mounter of the fs? > > You're correct that the mounter passes the fd to /dev/fuse to the mount > call. The namespace of the mounter is used, but there's also a check to > make sure that's the same as that of the opener of /dev/fuse, otherwise > the mount fails. As long as my nodev fix is either applied first or rejected, Acked-by: Andy Lutomirski Although the LSM situation is still a mess. Serge, any thoughts? --Andy > > Seth -- Andy Lutomirski AMA Capital Management, LLC