From: Christian Brauner <christian.brauner@ubuntu.com> To: "J. Bruce Fields" <bfields@fieldses.org> Cc: Lennart Poettering <lennart@poettering.net>, Mimi Zohar <zohar@linux.ibm.com>, James Bottomley <James.Bottomley@hansenpartnership.com>, Andreas Dilger <adilger.kernel@dilger.ca>, containers@lists.linux-foundation.org, Christoph Hellwig <hch@lst.de>, Tycho Andersen <tycho@tycho.ws>, Paul Moore <paul@paul-moore.com>, Jonathan Corbet <corbet@lwn.net>, smbarber@chromium.org, Alban Crequy <alban@kinvolk.io>, linux-ext4@vger.kernel.org, Mrunal Patel <mpatel@redhat.com>, Kees Cook <keescook@chromium.org>, Arnd Bergmann <arnd@arndb.de>, selinux@vger.kernel.org, Josh Triplett <josh@joshtriplett.org>, Seth Forshee <seth.forshee@canonical.com>, Aleksa Sarai <cyphar@cyphar.com>, Alexander Viro <viro@zeniv.linux.org.uk>, Andy Lutomirski <luto@kernel.org>, OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>, Geoffrey Thomas <geofft@ldpreload.com>, David Howells <dhowells@redhat.com>, John Johansen <john.johansen@canonical.com>, Theodore Tso <tytso@mit.edu>, Dmitry Kasatkin <dmitry.kasatkin@gmail.com>, Stephen Smalley <stephen.smalley.work@gmail.com>, linux-xfs@vger.kernel.org, linux-security-module@vger.kernel.org, "Eric W. Biederman" <ebiederm@xmission.com>, linux-api@vger.kernel.org, Casey Schaufler <casey@schaufler-ca.com>, linux-fsdevel@vger.kernel.org, linux-integrity@vger.kernel.org, Linus Torvalds <torvalds@linux-foundation.org>, Todd Kjos <tkjos@google.com> Subject: Re: [PATCH v6 05/39] namei: make permission helpers idmapped mount aware Date: Sun, 24 Jan 2021 23:44:50 +0100 [thread overview] Message-ID: <20210124224450.3dtdgvwxpdf5niuz@wittgenstein> (raw) In-Reply-To: <20210124221854.GA1487@fieldses.org> On Sun, Jan 24, 2021 at 05:18:54PM -0500, J. Bruce Fields wrote: > On Sat, Jan 23, 2021 at 02:09:58PM +0100, Christian Brauner wrote: > > On Fri, Jan 22, 2021 at 05:26:32PM -0500, J. Bruce Fields wrote: > > > If I NFS-exported an idmapped mount, I think I'd expect idmapped clients > > > to see the mapped IDs. > > > > > > Looks like that means taking the user namespace from the struct > > > svc_export everwhere, for example: > > > > > > On Thu, Jan 21, 2021 at 02:19:24PM +0100, Christian Brauner wrote: > > > > index 66f2ef67792a..8d90796e236a 100644 > > > > --- a/fs/nfsd/nfsfh.c > > > > +++ b/fs/nfsd/nfsfh.c > > > > @@ -40,7 +40,8 @@ static int nfsd_acceptable(void *expv, struct dentry *dentry) > > > > /* make sure parents give x permission to user */ > > > > int err; > > > > parent = dget_parent(tdentry); > > > > - err = inode_permission(d_inode(parent), MAY_EXEC); > > > > + err = inode_permission(&init_user_ns, > > > > + d_inode(parent), MAY_EXEC); > > > > > > err = inode_permission(exp->ex_path.mnt->mnt_userns, > > > d_inode(parent, MAY_EXEC); > > > > Hey Bruce, thanks! Imho, the clean approach for now is to not export > > idmapped mounts until we have ported that part of nfs similar to what we > > do for stacking filesystems for now. I've tested and taken this patch > > into my tree: > > Oh good, thanks. My real fear was that we'd fix this up later and leave > users in a situation where the server exposes different IDs depending on > kernel version, which would be a mess. Looks like this should avoid > that. > > As for making idmapped mounts actually work with nfsd--are you planning > to do that, or do you need me to? I hope the patch is straightforward; I'm happy to do it or help and there's other people I know who are also interested in that and would likely be happy to do the work too. > I'm more worried testing it. This whole series has a large xfstest patch associated with it that tests regular vfs behavior and vfs behavior with idmapped mounts. Iirc, xfstests also has infrastructure to test nfs. So I'd expect we expand the idmapped mounts testsuite to test nfs behavior as well. So far it has proven pretty helpful and has already unconvered an unrelated setgid-inheritance xfs bug that Christoph fixed a short time ago. _______________________________________________ Containers mailing list Containers@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/containers
WARNING: multiple messages have this Message-ID (diff)
From: Christian Brauner <christian.brauner@ubuntu.com> To: "J. Bruce Fields" <bfields@fieldses.org> Cc: "Alexander Viro" <viro@zeniv.linux.org.uk>, "Christoph Hellwig" <hch@lst.de>, linux-fsdevel@vger.kernel.org, "John Johansen" <john.johansen@canonical.com>, "James Morris" <jmorris@namei.org>, "Mimi Zohar" <zohar@linux.ibm.com>, "Dmitry Kasatkin" <dmitry.kasatkin@gmail.com>, "Stephen Smalley" <stephen.smalley.work@gmail.com>, "Casey Schaufler" <casey@schaufler-ca.com>, "Arnd Bergmann" <arnd@arndb.de>, "Andreas Dilger" <adilger.kernel@dilger.ca>, "OGAWA Hirofumi" <hirofumi@mail.parknet.co.jp>, "Geoffrey Thomas" <geofft@ldpreload.com>, "Mrunal Patel" <mpatel@redhat.com>, "Josh Triplett" <josh@joshtriplett.org>, "Andy Lutomirski" <luto@kernel.org>, "Theodore Tso" <tytso@mit.edu>, "Alban Crequy" <alban@kinvolk.io>, "Tycho Andersen" <tycho@tycho.ws>, "David Howells" <dhowells@redhat.com>, "James Bottomley" <James.Bottomley@hansenpartnership.com>, "Seth Forshee" <seth.forshee@canonical.com>, "Stéphane Graber" <stgraber@ubuntu.com>, "Linus Torvalds" <torvalds@linux-foundation.org>, "Aleksa Sarai" <cyphar@cyphar.com>, "Lennart Poettering" <lennart@poettering.net>, "Eric W. Biederman" <ebiederm@xmission.com>, smbarber@chromium.org, "Phil Estes" <estesp@gmail.com>, "Serge Hallyn" <serge@hallyn.com>, "Kees Cook" <keescook@chromium.org>, "Todd Kjos" <tkjos@google.com>, "Paul Moore" <paul@paul-moore.com>, "Jonathan Corbet" <corbet@lwn.net>, containers@lists.linux-foundation.org, linux-security-module@vger.kernel.org, linux-api@vger.kernel.org, linux-ext4@vger.kernel.org, linux-xfs@vger.kernel.org, linux-integrity@vger.kernel.org, selinux@vger.kernel.org Subject: Re: [PATCH v6 05/39] namei: make permission helpers idmapped mount aware Date: Sun, 24 Jan 2021 23:44:50 +0100 [thread overview] Message-ID: <20210124224450.3dtdgvwxpdf5niuz@wittgenstein> (raw) In-Reply-To: <20210124221854.GA1487@fieldses.org> On Sun, Jan 24, 2021 at 05:18:54PM -0500, J. Bruce Fields wrote: > On Sat, Jan 23, 2021 at 02:09:58PM +0100, Christian Brauner wrote: > > On Fri, Jan 22, 2021 at 05:26:32PM -0500, J. Bruce Fields wrote: > > > If I NFS-exported an idmapped mount, I think I'd expect idmapped clients > > > to see the mapped IDs. > > > > > > Looks like that means taking the user namespace from the struct > > > svc_export everwhere, for example: > > > > > > On Thu, Jan 21, 2021 at 02:19:24PM +0100, Christian Brauner wrote: > > > > index 66f2ef67792a..8d90796e236a 100644 > > > > --- a/fs/nfsd/nfsfh.c > > > > +++ b/fs/nfsd/nfsfh.c > > > > @@ -40,7 +40,8 @@ static int nfsd_acceptable(void *expv, struct dentry *dentry) > > > > /* make sure parents give x permission to user */ > > > > int err; > > > > parent = dget_parent(tdentry); > > > > - err = inode_permission(d_inode(parent), MAY_EXEC); > > > > + err = inode_permission(&init_user_ns, > > > > + d_inode(parent), MAY_EXEC); > > > > > > err = inode_permission(exp->ex_path.mnt->mnt_userns, > > > d_inode(parent, MAY_EXEC); > > > > Hey Bruce, thanks! Imho, the clean approach for now is to not export > > idmapped mounts until we have ported that part of nfs similar to what we > > do for stacking filesystems for now. I've tested and taken this patch > > into my tree: > > Oh good, thanks. My real fear was that we'd fix this up later and leave > users in a situation where the server exposes different IDs depending on > kernel version, which would be a mess. Looks like this should avoid > that. > > As for making idmapped mounts actually work with nfsd--are you planning > to do that, or do you need me to? I hope the patch is straightforward; I'm happy to do it or help and there's other people I know who are also interested in that and would likely be happy to do the work too. > I'm more worried testing it. This whole series has a large xfstest patch associated with it that tests regular vfs behavior and vfs behavior with idmapped mounts. Iirc, xfstests also has infrastructure to test nfs. So I'd expect we expand the idmapped mounts testsuite to test nfs behavior as well. So far it has proven pretty helpful and has already unconvered an unrelated setgid-inheritance xfs bug that Christoph fixed a short time ago.
next prev parent reply other threads:[~2021-01-24 22:46 UTC|newest] Thread overview: 163+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-01-21 13:19 [PATCH v6 00/40] idmapped mounts Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-21 13:19 ` [PATCH v6 01/40] mount: attach mappings to mounts Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-21 13:19 ` [PATCH v6 02/40] fs: add id translation helpers Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-03-13 0:05 ` Vivek Goyal 2021-03-13 0:05 ` Vivek Goyal 2021-03-13 14:31 ` Christian Brauner 2021-03-14 22:02 ` Vivek Goyal 2021-03-15 8:40 ` Christoph Hellwig 2021-01-21 13:19 ` [PATCH v6 03/40] fs: add file and path permissions helpers Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-22 2:55 ` James Morris 2021-01-22 2:55 ` James Morris 2021-01-21 13:19 ` [PATCH v6 04/40] capability: handle idmapped mounts Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-22 2:57 ` James Morris 2021-01-22 2:57 ` James Morris 2021-01-21 13:19 ` [PATCH v6 05/39] namei: make permission helpers idmapped mount aware Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-22 3:02 ` James Morris 2021-01-22 3:02 ` James Morris 2021-01-22 22:26 ` J. Bruce Fields 2021-01-22 22:26 ` J. Bruce Fields 2021-01-23 13:09 ` Christian Brauner 2021-01-23 13:09 ` Christian Brauner 2021-01-24 22:18 ` J. Bruce Fields 2021-01-24 22:18 ` J. Bruce Fields 2021-01-24 22:44 ` Christian Brauner [this message] 2021-01-24 22:44 ` Christian Brauner 2021-01-21 13:19 ` [PATCH v6 06/40] inode: make init and " Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-22 3:10 ` James Morris 2021-01-22 3:10 ` James Morris 2021-01-21 13:19 ` [PATCH v6 07/40] attr: handle idmapped mounts Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-21 13:19 ` [PATCH v6 08/40] acl: " Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-21 13:19 ` [PATCH v6 09/40] xattr: " Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-22 3:21 ` James Morris 2021-01-22 3:21 ` James Morris 2021-01-21 13:19 ` [PATCH v6 10/40] commoncap: " Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-22 3:27 ` James Morris 2021-01-22 3:27 ` James Morris 2021-01-21 13:19 ` [PATCH v6 11/40] stat: " Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-22 3:28 ` James Morris 2021-01-22 3:28 ` James Morris 2021-01-21 13:19 ` [PATCH v6 12/40] namei: handle idmapped mounts in may_*() helpers Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-22 3:47 ` James Morris 2021-01-22 3:47 ` James Morris 2021-01-21 13:19 ` [PATCH v6 13/40] namei: introduce struct renamedata Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-21 13:19 ` [PATCH v6 14/40] namei: prepare for idmapped mounts Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-21 13:19 ` [PATCH v6 15/40] open: handle idmapped mounts in do_truncate() Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-22 17:20 ` Christoph Hellwig 2021-01-22 17:20 ` Christoph Hellwig 2021-01-21 13:19 ` [PATCH v6 16/40] open: handle idmapped mounts Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-22 4:14 ` James Morris 2021-01-22 4:14 ` James Morris 2021-01-22 17:21 ` Christoph Hellwig 2021-01-22 17:21 ` Christoph Hellwig 2021-01-21 13:19 ` [PATCH v6 17/40] af_unix: " Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-22 4:14 ` James Morris 2021-01-22 4:14 ` James Morris 2021-01-21 13:19 ` [PATCH v6 18/40] utimes: " Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-22 4:15 ` James Morris 2021-01-22 4:15 ` James Morris 2021-01-21 13:19 ` [PATCH v6 19/40] fcntl: " Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-22 4:17 ` James Morris 2021-01-22 4:17 ` James Morris 2021-01-21 13:19 ` [PATCH v6 20/40] init: " Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-22 17:23 ` Christoph Hellwig 2021-01-22 17:23 ` Christoph Hellwig 2021-01-21 13:19 ` [PATCH v6 21/40] ioctl: " Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-22 4:33 ` James Morris 2021-01-22 4:33 ` James Morris 2021-01-21 13:19 ` [PATCH v6 22/40] would_dump: " Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-21 13:19 ` [PATCH v6 23/40] exec: " Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-22 4:35 ` James Morris 2021-01-22 4:35 ` James Morris 2021-01-25 16:39 ` Eric W. Biederman 2021-01-25 16:39 ` Eric W. Biederman 2021-01-25 16:44 ` Christian Brauner 2021-01-25 16:44 ` Christian Brauner 2021-01-25 17:03 ` Serge E. Hallyn 2021-01-25 17:03 ` Serge E. Hallyn 2021-01-25 17:06 ` Christian Brauner 2021-01-25 17:06 ` Christian Brauner 2021-01-27 5:50 ` Serge E. Hallyn 2021-01-27 5:50 ` Serge E. Hallyn 2021-01-21 13:19 ` [PATCH v6 24/40] fs: make helpers idmap mount aware Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-21 13:19 ` [PATCH v6 25/40] apparmor: handle idmapped mounts Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-21 13:19 ` [PATCH v6 26/39] ima: " Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-21 13:19 ` [PATCH v6 27/40] ecryptfs: do not mount on top of " Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-22 4:37 ` James Morris 2021-01-22 4:37 ` James Morris 2021-01-21 13:19 ` [PATCH v6 28/40] overlayfs: " Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-22 4:38 ` James Morris 2021-01-22 4:38 ` James Morris 2021-01-21 13:19 ` [PATCH v6 29/40] namespace: take lock_mount_hash() directly when changing flags Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-21 13:19 ` [PATCH v6 30/40] mount: make {lock,unlock}_mount_hash() static Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-21 13:19 ` [PATCH v6 31/40] namespace: only take read lock in do_reconfigure_mnt() Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-21 13:19 ` [PATCH v6 32/40] fs: split out functions to hold writers Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-21 13:19 ` [PATCH v6 33/40] fs: add attr_flags_to_mnt_flags helper Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-21 13:19 ` [PATCH v6 34/40] fs: add mount_setattr() Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-21 13:19 ` [PATCH v6 35/40] fs: introduce MOUNT_ATTR_IDMAP Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-22 17:33 ` Christoph Hellwig 2021-01-22 17:33 ` Christoph Hellwig 2021-01-22 17:34 ` Christoph Hellwig 2021-01-22 17:34 ` Christoph Hellwig 2021-01-21 13:19 ` [PATCH v6 36/40] tests: add mount_setattr() selftests Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-21 13:19 ` [PATCH v6 37/40] fat: handle idmapped mounts Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-21 13:19 ` [PATCH v6 38/40] ext4: support " Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-21 13:19 ` [PATCH v6 39/40] xfs: " Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-03-01 20:05 ` Darrick J. Wong 2021-03-01 20:05 ` Darrick J. Wong 2021-03-01 20:46 ` Christian Brauner 2021-03-01 20:46 ` Christian Brauner 2021-03-03 7:01 ` Christoph Hellwig 2021-03-03 7:01 ` Christoph Hellwig 2021-01-21 13:19 ` [PATCH v6 40/40] generic/622: add fstests for " Christian Brauner 2021-01-21 13:19 ` Christian Brauner 2021-01-27 5:40 ` [PATCH v6 00/40] " Serge E. Hallyn 2021-01-27 5:40 ` Serge E. Hallyn 2021-03-03 13:24 ` [PATCH v6 09/40] xattr: handle " David Howells 2021-03-03 13:24 ` David Howells 2021-03-03 14:05 ` Christian Brauner 2021-03-03 14:05 ` Christian Brauner 2021-03-03 14:45 ` David Howells 2021-03-03 14:45 ` David Howells 2021-03-03 16:15 ` Christian Brauner 2021-03-03 16:15 ` Christian Brauner
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210124224450.3dtdgvwxpdf5niuz@wittgenstein \ --to=christian.brauner@ubuntu.com \ --cc=James.Bottomley@hansenpartnership.com \ --cc=adilger.kernel@dilger.ca \ --cc=alban@kinvolk.io \ --cc=arnd@arndb.de \ --cc=bfields@fieldses.org \ --cc=casey@schaufler-ca.com \ --cc=containers@lists.linux-foundation.org \ --cc=corbet@lwn.net \ --cc=cyphar@cyphar.com \ --cc=dhowells@redhat.com \ --cc=dmitry.kasatkin@gmail.com \ --cc=ebiederm@xmission.com \ --cc=geofft@ldpreload.com \ --cc=hch@lst.de \ --cc=hirofumi@mail.parknet.co.jp \ --cc=john.johansen@canonical.com \ --cc=josh@joshtriplett.org \ --cc=keescook@chromium.org \ --cc=lennart@poettering.net \ --cc=linux-api@vger.kernel.org \ --cc=linux-ext4@vger.kernel.org \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-integrity@vger.kernel.org \ --cc=linux-security-module@vger.kernel.org \ --cc=linux-xfs@vger.kernel.org \ --cc=luto@kernel.org \ --cc=mpatel@redhat.com \ --cc=paul@paul-moore.com \ --cc=selinux@vger.kernel.org \ --cc=seth.forshee@canonical.com \ --cc=smbarber@chromium.org \ --cc=stephen.smalley.work@gmail.com \ --cc=tkjos@google.com \ --cc=torvalds@linux-foundation.org \ --cc=tycho@tycho.ws \ --cc=tytso@mit.edu \ --cc=viro@zeniv.linux.org.uk \ --cc=zohar@linux.ibm.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.