All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Serge E. Hallyn" <serge-A9i7LUbDfNHQT0dZR+AlfA@public.gmane.org>
To: "Michael Kerrisk (man-pages)"
	<mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Linux API <linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Containers
	<containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>,
	lkml <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Andy Lutomirski <luto-kltTT9wpgjJwATOyAt5JVQ@public.gmane.org>,
	criu-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org,
	"Eric W. Biederman"
	<ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>
Subject: Re: Introspecting userns relationships to other namespaces?
Date: Thu, 7 Jul 2016 08:36:31 -0500	[thread overview]
Message-ID: <20160707133631.GA2994@mail.hallyn.com> (raw)
In-Reply-To: <CAKgNAkhtQNg0mVv6ei_JigNz3njo_G3opE+rzd4OtKpa2hQe9g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

Quoting Michael Kerrisk (man-pages) (mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org):
> Hi Serge,
> 
> On 6 July 2016 at 16:13, Serge E. Hallyn <serge-A9i7LUbDfNHQT0dZR+AlfA@public.gmane.org> wrote:
> > On Wed, Jul 06, 2016 at 10:41:48AM +0200, Michael Kerrisk (man-pages) wrote:
> >> [Rats! Doing now what I should have down to start with. Looping some
> >> lists and CRIU and other possibly relevant people into this
> >> conversation]
> >>
> >> Hi Eric,
> >>
> >> On 5 July 2016 at 23:47, Eric W. Biederman <ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org> wrote:
> >> > "Michael Kerrisk (man-pages)" <mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> writes:
> >> >
> >> >> Hi Eric,
> >> >>
> >> >> I have a question. Is there any way currently to discover which
> >> >> user namespace a particular nonuser namespace is governed by?
> >> >> Maybe I am missing something, but there does not seem to be a
> >> >> way to do this. Also, can one discover which userns is the
> >> >> parent of a given userns? Again, I can't see a way to do this.
> >> >>
> >> >> The point here is introspecting so that a process might determine
> >> >> what its capabilities are when operating on some resource governed
> >> >> by a (nonuser) namespace.
> >> >
> >> > To the best of my knowledge that there is not an interface to get that
> >> > information.  It would be good to have such an interface for no other
> >> > reason than the CRIU folks are going to need it at some point.  I am a
> >> > bit surprised they have not complained yet.
> >
> > I don't think they need it.  They do in fact have what they need.  Assume
> > you have tasks T1, T2, T1_1 and T2_1;  T1 and T2 are in init_user_ns;  T1
> > spawned T1_1 in a new userns;  T2 spawned T2_1 which setns()d to T1_1's ns.
> > There's some {handwave} uid mapping, does not matter.
> >
> > At restart, it doesn't matter which task originally created the new userns.
> > criu knows T1_1 and T2_1 are in the same userns;  it creates the userns, sets
> > up the mapping, and T1_1 and T2_1 setns() to it.
> 
> I'm missing something here. How does the parental relationships
> between the user namespaces get reconstructed? Those relationships
> will govern what capabilities a process will have in various user
> namespaces.

Hm.  Probably best-effort based on the process hierarchy.  So yeah you
could probably get a tree into a state that would be wrongly recreated.
Create a new netns, bind mount it, exit;  Have another task create a
new user_ns, bind mount it, exit;  Third task setns()s first to the new
netns then to the new user_ns.  I suspect criu will recreate that
wrongly.

WARNING: multiple messages have this Message-ID (diff)
From: "Serge E. Hallyn" <serge@hallyn.com>
To: "Michael Kerrisk (man-pages)" <mtk.manpages@gmail.com>
Cc: "Serge E. Hallyn" <serge@hallyn.com>,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	criu@openvz.org, Linux API <linux-api@vger.kernel.org>,
	lkml <linux-kernel@vger.kernel.org>,
	Containers <containers@lists.linux-foundation.org>,
	Andy Lutomirski <luto@amacapital.net>,
	Tycho Andersen <tycho.andersen@canonical.com>
Subject: Re: Introspecting userns relationships to other namespaces?
Date: Thu, 7 Jul 2016 08:36:31 -0500	[thread overview]
Message-ID: <20160707133631.GA2994@mail.hallyn.com> (raw)
In-Reply-To: <CAKgNAkhtQNg0mVv6ei_JigNz3njo_G3opE+rzd4OtKpa2hQe9g@mail.gmail.com>

Quoting Michael Kerrisk (man-pages) (mtk.manpages@gmail.com):
> Hi Serge,
> 
> On 6 July 2016 at 16:13, Serge E. Hallyn <serge@hallyn.com> wrote:
> > On Wed, Jul 06, 2016 at 10:41:48AM +0200, Michael Kerrisk (man-pages) wrote:
> >> [Rats! Doing now what I should have down to start with. Looping some
> >> lists and CRIU and other possibly relevant people into this
> >> conversation]
> >>
> >> Hi Eric,
> >>
> >> On 5 July 2016 at 23:47, Eric W. Biederman <ebiederm@xmission.com> wrote:
> >> > "Michael Kerrisk (man-pages)" <mtk.manpages@gmail.com> writes:
> >> >
> >> >> Hi Eric,
> >> >>
> >> >> I have a question. Is there any way currently to discover which
> >> >> user namespace a particular nonuser namespace is governed by?
> >> >> Maybe I am missing something, but there does not seem to be a
> >> >> way to do this. Also, can one discover which userns is the
> >> >> parent of a given userns? Again, I can't see a way to do this.
> >> >>
> >> >> The point here is introspecting so that a process might determine
> >> >> what its capabilities are when operating on some resource governed
> >> >> by a (nonuser) namespace.
> >> >
> >> > To the best of my knowledge that there is not an interface to get that
> >> > information.  It would be good to have such an interface for no other
> >> > reason than the CRIU folks are going to need it at some point.  I am a
> >> > bit surprised they have not complained yet.
> >
> > I don't think they need it.  They do in fact have what they need.  Assume
> > you have tasks T1, T2, T1_1 and T2_1;  T1 and T2 are in init_user_ns;  T1
> > spawned T1_1 in a new userns;  T2 spawned T2_1 which setns()d to T1_1's ns.
> > There's some {handwave} uid mapping, does not matter.
> >
> > At restart, it doesn't matter which task originally created the new userns.
> > criu knows T1_1 and T2_1 are in the same userns;  it creates the userns, sets
> > up the mapping, and T1_1 and T2_1 setns() to it.
> 
> I'm missing something here. How does the parental relationships
> between the user namespaces get reconstructed? Those relationships
> will govern what capabilities a process will have in various user
> namespaces.

Hm.  Probably best-effort based on the process hierarchy.  So yeah you
could probably get a tree into a state that would be wrongly recreated.
Create a new netns, bind mount it, exit;  Have another task create a
new user_ns, bind mount it, exit;  Third task setns()s first to the new
netns then to the new user_ns.  I suspect criu will recreate that
wrongly.

  parent reply	other threads:[~2016-07-07 13:36 UTC|newest]

Thread overview: 111+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <c2a26220-69f2-f2f5-491a-e43abd9a6f92@gmail.com>
     [not found] ` <87r3b7pxja.fsf@x220.int.ebiederm.org>
     [not found]   ` <87r3b7pxja.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2016-07-06  8:41     ` Introspecting userns relationships to other namespaces? Michael Kerrisk (man-pages)
2016-07-06  8:41       ` Michael Kerrisk (man-pages)
     [not found]       ` <CAKgNAkgQbxLH-B3N3Xti3LLis+1Y-SJD2h1DEaXao7zTDA7pug-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-07-06 14:13         ` Serge E. Hallyn
2016-07-06 14:13           ` Serge E. Hallyn
     [not found]           ` <20160706141348.GB20728-7LNsyQBKDXoIagZqoN9o3w@public.gmane.org>
2016-07-06 15:46             ` Eric W. Biederman
2016-07-06 15:46               ` Eric W. Biederman
     [not found]               ` <871t36kbvq.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2016-07-08  1:57                 ` [CRIU] " Andrew Vagin
2016-07-08  1:57                   ` Andrew Vagin
     [not found]                   ` <20160708015758.GA10512-1ViLX0X+lBJGNQ1M2rI3KwRV3xvJKrda@public.gmane.org>
2016-07-08  7:44                     ` Eric W. Biederman
2016-07-08  7:44                     ` Eric W. Biederman
2016-07-08  7:44                       ` Eric W. Biederman
     [not found]                       ` <87vb0gy3nr.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2016-07-08 14:35                         ` James Bottomley
2016-07-08 14:35                           ` James Bottomley
     [not found]                           ` <1467988533.2322.118.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2016-07-08 20:38                             ` Andrew Vagin
2016-07-08 20:38                               ` Andrew Vagin
     [not found]                               ` <20160708203818.GA2602-1ViLX0X+lBJGNQ1M2rI3KwRV3xvJKrda@public.gmane.org>
2016-07-08 20:50                                 ` W. Trevor King
2016-07-08 20:50                                   ` W. Trevor King
2016-07-08 20:50                                 ` W. Trevor King
2016-07-08 22:19                                 ` James Bottomley
2016-07-08 22:19                                 ` James Bottomley
2016-07-08 22:19                                   ` James Bottomley
2016-07-08 22:19                                 ` James Bottomley
2016-07-08 22:19                                   ` James Bottomley
     [not found]                                   ` <5e4cc802-f0e0-4f4c-a2f7-585aaaa8feec-2ueSQiBKiTY7tOexoI0I+QC/G2K4zDHf@public.gmane.org>
2016-07-08 23:52                                     ` Eric W. Biederman
2016-07-08 23:52                                     ` Eric W. Biederman
2016-07-08 23:52                                       ` Eric W. Biederman
     [not found]                                       ` <87wpkvpu1i.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2016-07-09  0:15                                         ` James Bottomley
2016-07-09  0:15                                           ` James Bottomley
     [not found]                                           ` <1468023332.2390.10.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2016-07-09  3:05                                             ` Eric W. Biederman
2016-07-09  3:05                                               ` Eric W. Biederman
     [not found]                                               ` <87bn27o6j5.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2016-07-09  7:26                                                 ` Andrew Vagin
2016-07-09  7:26                                                   ` Andrew Vagin
     [not found]                                                   ` <20160709072627.GA7480-1ViLX0X+lBJGNQ1M2rI3KwRV3xvJKrda@public.gmane.org>
2016-07-09 10:31                                                     ` James Bottomley
2016-07-09 10:31                                                     ` James Bottomley
2016-07-09 10:31                                                       ` James Bottomley
2016-07-09 10:32                                                     ` James Bottomley
2016-07-09 10:32                                                       ` James Bottomley
2016-07-09 18:15                                                     ` Eric W. Biederman
2016-07-09 18:15                                                       ` Eric W. Biederman
     [not found]                                                       ` <87eg72llu0.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2016-07-09 18:29                                                         ` Eric W. Biederman
2016-07-09 18:29                                                           ` Eric W. Biederman
     [not found]                                                           ` <871t32ll6n.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2016-07-13  0:08                                                             ` Andrew Vagin
2016-07-13  0:08                                                               ` Andrew Vagin
     [not found]                                                               ` <20160713000842.GC5818-1ViLX0X+lBJGNQ1M2rI3KwRV3xvJKrda@public.gmane.org>
2016-07-13  3:59                                                                 ` W. Trevor King
2016-07-13  3:59                                                                   ` W. Trevor King
2016-07-09 18:15                                                     ` Eric W. Biederman
2016-07-09  0:15                                         ` James Bottomley
2016-07-08 22:19                                 ` James Bottomley
2016-07-07  8:15             ` Michael Kerrisk (man-pages)
2016-07-07  8:15               ` Michael Kerrisk (man-pages)
     [not found]               ` <CAKgNAkhtQNg0mVv6ei_JigNz3njo_G3opE+rzd4OtKpa2hQe9g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-07-07 13:36                 ` Serge E. Hallyn [this message]
2016-07-07 13:36                   ` Serge E. Hallyn
     [not found]                   ` <20160707133631.GA2994-7LNsyQBKDXoIagZqoN9o3w@public.gmane.org>
2016-07-07 15:01                     ` James Bottomley
2016-07-07 15:01                       ` James Bottomley
     [not found]                       ` <1467903712.2347.16.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2016-07-07 18:21                         ` Michael Kerrisk (man-pages)
2016-07-07 18:21                           ` Michael Kerrisk (man-pages)
     [not found]                           ` <CAKgNAkg+OiBngdFsdVR0gsSnVhMppuH2DxMBLCNAx8in5C0-zQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-07-07 18:24                             ` Serge E. Hallyn
2016-07-07 18:24                               ` Serge E. Hallyn
2016-07-07 18:24                             ` Serge E. Hallyn
2016-07-07 19:17                             ` James Bottomley
2016-07-07 19:17                             ` James Bottomley
2016-07-07 19:17                               ` James Bottomley
     [not found]                               ` <1467919055.2322.36.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2016-07-08  2:16                                 ` [CRIU] " Andrew Vagin
2016-07-08  2:16                                   ` Andrew Vagin
     [not found]                                   ` <20160708021617.GB10512-1ViLX0X+lBJGNQ1M2rI3KwRV3xvJKrda@public.gmane.org>
2016-07-08  3:00                                     ` Andrew Vagin
2016-07-08  3:00                                       ` Andrew Vagin
     [not found]                                       ` <20160708030055.GC10512-1ViLX0X+lBJGNQ1M2rI3KwRV3xvJKrda@public.gmane.org>
2016-07-08  3:26                                         ` James Bottomley
2016-07-08  3:26                                           ` James Bottomley
     [not found]                                           ` <1467948407.2322.88.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2016-07-08  5:26                                             ` W. Trevor King
2016-07-08  5:26                                             ` W. Trevor King
2016-07-08  5:26                                               ` W. Trevor King
     [not found]                                               ` <20160708052650.GM4916-q4NCUed9G3sTnwFZoN752g@public.gmane.org>
2016-07-08  6:16                                                 ` W. Trevor King
2016-07-08  6:16                                                 ` W. Trevor King
2016-07-08  6:16                                                   ` W. Trevor King
2016-07-08  6:54                                                 ` Andrew Vagin
2016-07-08  6:54                                                   ` Andrew Vagin
     [not found]                                                   ` <20160708065453.GB14391-1ViLX0X+lBJGNQ1M2rI3KwRV3xvJKrda@public.gmane.org>
2016-07-08  7:18                                                     ` W. Trevor King
2016-07-08  7:18                                                     ` W. Trevor King
2016-07-08  7:18                                                       ` W. Trevor King
2016-07-08  5:41                                             ` [CRIU] " Andrei Vagin
2016-07-08  5:41                                             ` Andrei Vagin
2016-07-08  5:41                                               ` Andrei Vagin
     [not found]                                               ` <CANaxB-wBkHrsQXcruEDXWwU-X8y4szW3dgVd+9JvgCGrrNeW4g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-07-08  5:47                                                 ` Andrei Vagin
2016-07-08  5:47                                                   ` Andrei Vagin
2016-07-08  6:07                                                 ` James Bottomley
2016-07-08  6:07                                                   ` James Bottomley
2016-07-08 11:17                                             ` Michael Kerrisk (man-pages)
2016-07-08 11:17                                               ` Michael Kerrisk (man-pages)
2016-07-08  3:26                                         ` James Bottomley
2016-07-08  3:20                                     ` James Bottomley
2016-07-08  3:20                                       ` James Bottomley
     [not found]                                       ` <1467948005.2322.84.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2016-07-08  6:09                                         ` Andrew Vagin
2016-07-08  6:09                                           ` Andrew Vagin
2016-07-08 11:11                                 ` Michael Kerrisk (man-pages)
2016-07-08 11:11                                   ` Michael Kerrisk (man-pages)
2016-07-09  3:15                         ` W. Trevor King
2016-07-09  3:15                         ` W. Trevor King
2016-07-09  3:15                           ` W. Trevor King
     [not found]                           ` <20160709031528.GA25507-q4NCUed9G3sTnwFZoN752g@public.gmane.org>
2016-07-09  3:13                             ` Eric W. Biederman
2016-07-09  3:13                               ` Eric W. Biederman
     [not found]                               ` <87ziprmrln.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2016-07-10  5:36                                 ` [CRIU] " Andrew Vagin
2016-07-10  5:36                                   ` Andrew Vagin
     [not found]                                   ` <20160710053609.GB4868-1ViLX0X+lBJGNQ1M2rI3KwRV3xvJKrda@public.gmane.org>
2016-07-10 20:29                                     ` Eric W. Biederman
2016-07-10 20:29                                     ` Eric W. Biederman
2016-07-10 20:29                                       ` Eric W. Biederman
     [not found]                                       ` <87furhjkxw.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2016-07-10 21:06                                         ` James Bottomley
2016-07-10 21:06                                           ` James Bottomley
     [not found]                                           ` <1468184808.19833.30.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2016-07-11 20:55                                             ` Andrew Vagin
2016-07-11 20:55                                               ` Andrew Vagin
2016-07-07 15:01                     ` James Bottomley
2016-07-06 14:13         ` Serge E. Hallyn

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=20160707133631.GA2994@mail.hallyn.com \
    --to=serge-a9i7lubdfnhqt0dzr+alfa@public.gmane.org \
    --cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    --cc=criu-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org \
    --cc=ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org \
    --cc=linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=luto-kltTT9wpgjJwATOyAt5JVQ@public.gmane.org \
    --cc=mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    /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 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.