Re: [PATCH] pidns: fix set/getpriority and ioprio_set/get in PRIO_USER mode

From: Andrew Morton
Date: Mon Sep 28 2015 - 19:00:17 EST


On Fri, 25 Sep 2015 00:32:28 -0500 ebiederm@xxxxxxxxxxxx (Eric W. Biederman) wrote:

> bsegall@xxxxxxxxxx writes:
>
> > ebiederm@xxxxxxxxxxxx (Eric W. Biederman) writes:
> >
> >> Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> writes:
> >>
> >>> On Wed, 16 Sep 2015 12:58:04 -0700 bsegall@xxxxxxxxxx wrote:
> >>>
> >>>> setpriority(PRIO_USER, 0, x) will change the priority of tasks outside
> >>>> of the current pid namespace. This is in contrast to both the other
> >>>> modes of setpriority and the example of kill(-1). Fix this. getpriority
> >>>> and ioprio have the same failure mode, fix them too.
> >>>
> >>> (cc Eric)
> >> (cc Containers)
> >>
> >> Interesting. Strictly speaking the current behavior is not wrong.
> >> Searching for all threads with a given uid has nothing to do with pids
> >> so the pid namespace not limiting them is natural.
> >>
> >> In practice I don't think anyone cares either way (except people with
> >> one color or another of security hat on) so this might be a change we
> >> can actually make.
> >>
> >> In general it is probably better not to share uids and gids between
> >> containers.
> >>
> >> Ben do you have a use case where this actually matters? Or was this a
> >> case of "That looks wrong..."?
> >>
> >> Eric
> >
> > I believe we generally want this for isolation of a process, without
> > requiring root initially (and a non-trivial uid_map, not to mention
> > creating the extra users, requires root). There are probably other holes
> > in using namespaces like this, but are they intended?
>
> After some more thinking about it this patch sounds justifiable.
>
> My goal with namespaces is not to build perfect isolation mechanisms
> as that can get into ill defined territory, but to build well defined
> mechanisms. And to handle the corner cases so you can use only
> a single namespace with well defined results.
>
> In this case you have found the two interfaces I am aware of that
> identify processes by uid instead of by pid. Which quite frankly is
> weird. Unfortunately the weird unexpected cases are hard to handle
> in the usual way.
>
> I was hoping for a little more information. Changes like this one we
> have to be careful of because someone might be depending on the current
> behavior. I don't think they are and I do think this make sense as part
> of the pid namespace.
>
> Acked-by: "Eric W. Biederman" <ebiederm@xxxxxxxxxxxx>

My copy of the getpriority/setpriority manpage doesn't mention
interaction with namespaces at all. Should it do so?

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/