From: Josh Triplett <josh@joshtriplett.org>
To: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Christoph Hellwig <hch@infradead.org>,
Amir Goldstein <amir73il@gmail.com>,
Djalal Harouni <tixxdz@gmail.com>, Chris Mason <clm@fb.com>,
Theodore Tso <tytso@mit.edu>,
"Eric W. Biederman" <ebiederm@xmission.com>,
Andy Lutomirski <luto@kernel.org>,
Seth Forshee <seth.forshee@canonical.com>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>,
linux-kernel <linux-kernel@vger.kernel.org>,
LSM List <linux-security-module@vger.kernel.org>,
Dongsu Park <dongsu@endocode.com>,
David Herrmann <dh.herrmann@googlemail.com>,
Miklos Szeredi <mszeredi@redhat.com>,
Alban Crequy <alban.crequy@gmail.com>,
Al Viro <viro@zeniv.linux.org.uk>,
"Serge E. Hallyn" <serge@hallyn.com>,
Phil Estes <estesp@gmail.com>
Subject: Re: [RFC 1/1] shiftfs: uid/gid shifting bind mount
Date: Thu, 9 Feb 2017 02:36:40 -0800 [thread overview]
Message-ID: <20170209103640.myuysvawpj55z4fi@x> (raw)
In-Reply-To: <1486567365.2484.28.camel@HansenPartnership.com>
On Wed, Feb 08, 2017 at 07:22:45AM -0800, James Bottomley wrote:
> On Tue, 2017-02-07 at 17:54 -0800, Josh Triplett wrote:
> > On Tue, Feb 07, 2017 at 11:49:33AM -0800, Christoph Hellwig wrote:
> > > On Tue, Feb 07, 2017 at 11:02:03AM -0800, James Bottomley wrote:
> > > > > Another option would be to require something like a project
> > > > > as used
> > > > > for project quotas as the root. This would also be conveniant
> > > > > as it
> > > > > could storge the used remapping tables.
> > > >
> > > > So this would be like the current project quota except set on a
> > > > subtree? I could see it being done that way but I don't see what
> > > > advantage it has over using flags in the subtree itself (the
> > > > mapping is
> > > > known based on the mount namespace, so there's really only a
> > > > single bit
> > > > of information to store).
> > >
> > > projects (which are the underling concept for project quotas) are
> > > per-subtree in practice - the flag is set on an inode and then
> > > all directories and files underneath inherit the project ID,
> > > hardlinking outside a project is prohinited.
> >
> > I'm interested in having a VFS-level way to do more than just a
> > shift; I'd like to be able to arbitrarily remap IDs between what's on
> > disk and the system IDs.
>
> OK, so the shift is effectively an arbitrary remap because it allows
> multiple ranges to be mapped (althought the userns currently imposes a
> maximum number of five extents but that limit is a bit arbitrary just
> to try to limit the amount of space the parametrisation takes). See
> kernel/user_namespace.c:map_id_up/down()
>
> > If we're talking about developing a VFS-level solution for this,
> > I'd like to avoid limiting it to just a shift. (A shift/range
> > would definitely be the simplest solution for many common container
> > cases, but not all.)
>
> I assume the above satisfies you on this point, but raises the
> question: do you want an arbitrary shift not parametrised by a user
> namespace? If so how many such shifts do you want ... giving some
> details of the use case would be helpful.
The limit of five extents means this may not work in the most general
case, no.
One use case: given an on-disk filesystem, its name-to-number mapping,
and your host name-to-number mapping, mount the filesystem with all the
UIDs bidirectionally mapped to those on your host system.
Another use case: given an on-disk filesystem with potentially arbitrary
UIDs (not necessarily in a clean contiguous block), and a pile of
unprivileged UIDs, mount the filesystem such that every on-disk UID gets
a unique unprivileged UID.
(I have some additional use cases, but they would require the ability to
extend the mapping on the fly without remounting.)
next prev parent reply other threads:[~2017-02-09 10:36 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-04 19:18 [RFC 0/1] shiftfs: uid/gid shifting filesystem (s_user_ns version) James Bottomley
2017-02-04 19:19 ` [RFC 1/1] shiftfs: uid/gid shifting bind mount James Bottomley
2017-02-05 7:51 ` Amir Goldstein
2017-02-06 1:18 ` James Bottomley
2017-02-06 6:59 ` Amir Goldstein
2017-02-06 14:41 ` James Bottomley
2017-02-14 23:03 ` Vivek Goyal
2017-02-14 23:45 ` James Bottomley
2017-02-15 14:17 ` Vivek Goyal
2017-02-16 15:51 ` James Bottomley
2017-02-16 16:42 ` Vivek Goyal
2017-02-16 16:58 ` James Bottomley
2017-02-17 1:57 ` Eric W. Biederman
2017-02-17 8:39 ` Djalal Harouni
2017-02-17 17:19 ` James Bottomley
2017-02-20 4:24 ` Eric W. Biederman
2017-02-22 12:01 ` James Bottomley
2017-02-06 3:25 ` J. R. Okajima
2017-02-06 6:38 ` Amir Goldstein
2017-02-06 16:29 ` James Bottomley
2017-02-06 6:46 ` James Bottomley
2017-02-06 14:50 ` Theodore Ts'o
2017-02-06 15:18 ` James Bottomley
2017-02-06 15:38 ` lkml
2017-02-06 17:32 ` James Bottomley
2017-02-06 21:52 ` J. Bruce Fields
2017-02-07 0:10 ` James Bottomley
2017-02-07 1:35 ` J. Bruce Fields
2017-02-07 19:01 ` James Bottomley
2017-02-07 19:47 ` Christoph Hellwig
2017-02-06 16:24 ` J. R. Okajima
2017-02-21 0:48 ` James Bottomley
2017-02-21 2:57 ` J. R. Okajima
2017-02-21 4:07 ` James Bottomley
2017-02-21 4:34 ` J. R. Okajima
2017-02-07 9:19 ` Christoph Hellwig
2017-02-07 9:39 ` Djalal Harouni
2017-02-07 9:53 ` Christoph Hellwig
2017-02-07 16:37 ` James Bottomley
2017-02-07 17:59 ` Amir Goldstein
2017-02-07 18:10 ` Christoph Hellwig
2017-02-07 19:02 ` James Bottomley
2017-02-07 19:49 ` Christoph Hellwig
2017-02-07 20:05 ` James Bottomley
2017-02-07 21:01 ` Amir Goldstein
2017-02-07 22:25 ` Christoph Hellwig
2017-02-07 23:42 ` James Bottomley
2017-02-08 6:44 ` Amir Goldstein
2017-02-08 11:45 ` Konstantin Khlebnikov
2017-02-08 14:57 ` James Bottomley
2017-02-08 15:15 ` James Bottomley
2017-02-08 1:54 ` Josh Triplett
2017-02-08 15:22 ` James Bottomley
2017-02-09 10:36 ` Josh Triplett [this message]
2017-02-09 15:34 ` James Bottomley
2017-02-13 10:15 ` Eric W. Biederman
2017-02-15 9:33 ` Djalal Harouni
2017-02-15 9:37 ` Eric W. Biederman
2017-02-15 10:04 ` Djalal Harouni
2017-02-07 18:20 ` James Bottomley
2017-02-07 19:48 ` Djalal Harouni
2017-02-15 20:34 ` Vivek Goyal
2017-02-16 15:56 ` James Bottomley
2017-02-17 2:55 ` Al Viro
2017-02-17 17:34 ` James Bottomley
2017-02-17 20:35 ` Vivek Goyal
2017-02-19 3:24 ` James Bottomley
2017-02-20 19:26 ` Vivek Goyal
2017-02-21 0:38 ` James Bottomley
2017-02-17 2:29 ` Al Viro
2017-02-17 17:24 ` James Bottomley
2017-02-17 17:51 ` Al Viro
2017-02-17 20:27 ` Vivek Goyal
2017-02-17 20:50 ` James Bottomley
-- strict thread matches above, loose matches on Subject: below --
2016-05-12 19:06 [RFC 0/1] shiftfs: uid/gid shifting filesystem James Bottomley
2016-05-12 19:07 ` [RFC 1/1] shiftfs: uid/gid shifting bind mount James Bottomley
2016-05-16 19:41 ` Serge Hallyn
2016-05-17 2:28 ` James Bottomley
2016-05-17 3:47 ` Serge E. Hallyn
2016-05-17 10:23 ` James Bottomley
2016-05-17 20:59 ` James Bottomley
2016-05-19 2:28 ` Serge E. Hallyn
2016-05-19 10:53 ` James Bottomley
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=20170209103640.myuysvawpj55z4fi@x \
--to=josh@joshtriplett.org \
--cc=James.Bottomley@HansenPartnership.com \
--cc=alban.crequy@gmail.com \
--cc=amir73il@gmail.com \
--cc=clm@fb.com \
--cc=dh.herrmann@googlemail.com \
--cc=dongsu@endocode.com \
--cc=ebiederm@xmission.com \
--cc=estesp@gmail.com \
--cc=hch@infradead.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=luto@kernel.org \
--cc=mszeredi@redhat.com \
--cc=serge@hallyn.com \
--cc=seth.forshee@canonical.com \
--cc=tixxdz@gmail.com \
--cc=tytso@mit.edu \
--cc=viro@zeniv.linux.org.uk \
/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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).