From: Simo Sorce <ssorce@redhat.com>
To: Andy Lutomirski <luto@amacapital.net>
Cc: Vivek Goyal <vgoyal@redhat.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
cgroups@vger.kernel.org,
Network Development <netdev@vger.kernel.org>,
"David S. Miller" <davem@davemloft.net>,
Tejun Heo <tj@kernel.org>,
jkaluza@redhat.com, lpoetter@redhat.com, kay@redhat.com
Subject: Re: [PATCH 2/2] net: Implement SO_PEERCGROUP
Date: Thu, 13 Mar 2014 13:55:32 -0400 [thread overview]
Message-ID: <1394733332.32465.248.camel@willson.li.ssimo.org> (raw)
In-Reply-To: <CALCETrWqoc8nxbRQWpRKBu23N3ZXd98Cbk7xvvtZ6crKKR6mng@mail.gmail.com>
On Thu, 2014-03-13 at 10:25 -0700, Andy Lutomirski wrote:
> On Thu, Mar 13, 2014 at 9:33 AM, Simo Sorce <ssorce@redhat.com> wrote:
> > On Thu, 2014-03-13 at 11:00 -0400, Vivek Goyal wrote:
> >> On Thu, Mar 13, 2014 at 10:55:34AM -0400, Simo Sorce wrote:
> >>
> >> [..]
> >> > > > This might not be quite as awful as I thought. At least you're
> >> > > > looking up the cgroup at connection time instead of at send time.
> >> > > >
> >> > > > OTOH, this is still racy -- the socket could easily outlive the cgroup
> >> > > > that created it.
> >> > >
> >> > > That's a good point. What guarantees that previous cgroup was not
> >> > > reassigned to a different container.
> >> > >
> >> > > What if a process A opens the connection with sssd. Process A passes the
> >> > > file descriptor to a different process B in a differnt container.
> >> >
> >> > Stop right here.
> >> > If the process passes the fd it is not my problem anymore.
> >> > The process can as well just 'proxy' all the information to another
> >> > process.
> >> >
> >> > We just care to properly identify the 'original' container, we are not
> >> > in the business of detecting malicious behavior. That's something other
> >> > mechanism need to protect against (SELinux or other LSMs, normal
> >> > permissions, capabilities, etc...).
> >> >
> >> > > Process A exits. Container gets removed from system and new one gets
> >> > > launched which uses same cgroup as old one. Now process B sends a new
> >> > > request and SSSD will serve it based on policy of newly launched
> >> > > container.
> >> > >
> >> > > This sounds very similar to pid race where socket/connection will outlive
> >> > > the pid.
> >> >
> >> > Nope, completely different.
> >> >
> >>
> >> I think you missed my point. Passing file descriptor is not the problem.
> >> Problem is reuse of same cgroup name for a different container while
> >> socket lives on. And it is same race as reuse of a pid for a different
> >> process.
> >
> > The cgroup name should not be reused of course, if userspace does that,
> > it is userspace's issue. cgroup names are not a constrained namespace
> > like pids which force the kernel to reuse them for processes of a
> > different nature.
> >
>
> You're proposing a feature that will enshrine cgroups into the API use
> by non-cgroup-controlling applications. I don't think that anyone
> thinks that cgroups are pretty, so this is an unfortunate thing to
> have to do.
>
> I've suggested three different ways that your goal could be achieved
> without using cgroups at all. You haven't really addressed any of
> them.
I replied now, none of them strike me as practical or something that can
be enforced.
> In order for something like this to go into the kernel, I would expect
> a real use case and a justification for why this is the right way to
> do it.
I think my justification is quite real, the fact you do not like it does
not really make it any less real.
I am open to suggestions on alternative methods of course, I do not care
which way as long as it is practical and does not cause unreasonable
restrictions on the containerization. As far as I could see all of the
container stuff uses cgroups already for various reasons, so using
cgroups seem natural.
> "Docker containers can be identified by cgroup path" is completely
> unconvincing to me.
Provide an alternative, so far there is a cgroup with a unique name
associated to every container, I haven't found any other way to derive
that information in a race free way so far.
Simo.
next prev parent reply other threads:[~2014-03-13 17:55 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-12 20:46 [PATCH 0/2][V2] net: Implement SO_PEERCGROUP to get cgroup of peer Vivek Goyal
2014-03-12 20:46 ` [PATCH 1/2] cgroup: Provide empty definition of task_cgroup_path() Vivek Goyal
2014-03-12 20:46 ` [PATCH 2/2] net: Implement SO_PEERCGROUP Vivek Goyal
2014-03-12 20:58 ` Cong Wang
[not found] ` <CAHA+R7OrNoa7_J-rOskxgdvkM5gAnQyoFBeCXSziY7XMd-yLNA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-03-13 13:48 ` Vivek Goyal
2014-03-13 13:48 ` Vivek Goyal
[not found] ` <1394657163-7472-3-git-send-email-vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-03-12 21:00 ` Andy Lutomirski
2014-03-12 21:00 ` Andy Lutomirski
2014-03-12 21:12 ` Andy Lutomirski
[not found] ` <CALCETrUTjN=XKwnO62P9roZtLLuk7_9Oi17Mj_Aa2ZFtZc1gVA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-03-12 21:16 ` Simo Sorce
2014-03-12 21:16 ` Simo Sorce
[not found] ` <1394658983.32465.203.camel-Hs+ccMQdwurzDu64bZtGtWD2FQJk+8+b@public.gmane.org>
2014-03-12 21:19 ` Andy Lutomirski
2014-03-12 21:19 ` Andy Lutomirski
[not found] ` <CALCETrU29CpcK4dVRD45BGOD7AVEudADiFxOgFgKWkpFzw07eg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-03-13 1:17 ` Simo Sorce
2014-03-13 1:17 ` Simo Sorce
[not found] ` <1394673476.32465.215.camel-Hs+ccMQdwurzDu64bZtGtWD2FQJk+8+b@public.gmane.org>
2014-03-13 1:21 ` Andy Lutomirski
2014-03-13 1:21 ` Andy Lutomirski
[not found] ` <CALCETrWbCuKfV4zMkZajDOGhGkKduW0C2L7uHv=vtvqhVeAc6w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-03-13 1:43 ` Simo Sorce
2014-03-13 1:43 ` Simo Sorce
[not found] ` <1394675038.32465.223.camel-Hs+ccMQdwurzDu64bZtGtWD2FQJk+8+b@public.gmane.org>
2014-03-13 2:12 ` Andy Lutomirski
2014-03-13 2:12 ` Andy Lutomirski
2014-03-13 14:27 ` Vivek Goyal
[not found] ` <20140313142755.GC18914-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-03-14 23:54 ` Eric W. Biederman
2014-03-14 23:54 ` Eric W. Biederman
2014-03-14 23:54 ` Eric W. Biederman
[not found] ` <CALCETrV7GE0YL1sDDqTUV81rWL9zk2vTR1-VLkR7CfTA-FSrgw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-03-13 17:51 ` Simo Sorce
2014-03-13 17:51 ` Simo Sorce
2014-03-13 17:55 ` Andy Lutomirski
[not found] ` <CALCETrXWzja6W6y=p9MrtynGZMsrD5KQu0KBK6Bs1dQxnesv2A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-03-13 17:57 ` Simo Sorce
2014-03-13 17:57 ` Simo Sorce
[not found] ` <1394733448.32465.249.camel-Hs+ccMQdwurzDu64bZtGtWD2FQJk+8+b@public.gmane.org>
2014-03-13 18:03 ` Andy Lutomirski
2014-03-13 18:03 ` Andy Lutomirski
2014-03-13 17:58 ` Simo Sorce
2014-03-13 17:58 ` Simo Sorce
2014-03-13 18:01 ` Andy Lutomirski
2014-03-13 18:05 ` Tim Hockin
2014-03-13 19:53 ` Vivek Goyal
2014-03-13 19:58 ` Andy Lutomirski
2014-03-13 20:06 ` Vivek Goyal
[not found] ` <20140313200649.GN18914-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-03-13 20:17 ` Vivek Goyal
2014-03-13 20:17 ` Vivek Goyal
[not found] ` <20140313201755.GO18914-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-03-13 20:19 ` Vivek Goyal
2014-03-13 20:19 ` Vivek Goyal
2014-03-13 21:21 ` Andy Lutomirski
2014-03-13 21:21 ` Andy Lutomirski
2014-03-14 23:49 ` Eric W. Biederman
2014-03-14 23:49 ` Eric W. Biederman
2014-03-14 23:49 ` Eric W. Biederman
2014-03-13 18:02 ` Vivek Goyal
2014-03-13 14:14 ` Vivek Goyal
[not found] ` <20140313141422.GB18914-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-03-13 14:55 ` Simo Sorce
2014-03-13 14:55 ` Simo Sorce
[not found] ` <1394722534.32465.227.camel-Hs+ccMQdwurzDu64bZtGtWD2FQJk+8+b@public.gmane.org>
2014-03-13 15:00 ` Vivek Goyal
2014-03-13 15:00 ` Vivek Goyal
[not found] ` <20140313150034.GG18914-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-03-13 16:33 ` Simo Sorce
2014-03-13 16:33 ` Simo Sorce
2014-03-13 17:25 ` Andy Lutomirski
2014-03-13 17:55 ` Simo Sorce [this message]
2014-03-13 17:56 ` Tim Hockin
[not found] ` <1394657163-7472-1-git-send-email-vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-03-12 20:56 ` [PATCH 0/2][V2] net: Implement SO_PEERCGROUP to get cgroup of peer Andy Lutomirski
2014-03-12 20:56 ` Andy Lutomirski
2014-03-12 20:59 ` Simo Sorce
[not found] ` <1394657970.32465.200.camel-Hs+ccMQdwurzDu64bZtGtWD2FQJk+8+b@public.gmane.org>
2014-03-12 21:09 ` Andy Lutomirski
2014-03-12 21:09 ` Andy Lutomirski
-- strict thread matches above, loose matches on Subject: below --
2014-03-12 18:45 [PATCH 0/2] " Vivek Goyal
2014-03-12 18:45 ` [PATCH 2/2] net: Implement SO_PEERCGROUP Vivek Goyal
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=1394733332.32465.248.camel@willson.li.ssimo.org \
--to=ssorce@redhat.com \
--cc=cgroups@vger.kernel.org \
--cc=davem@davemloft.net \
--cc=jkaluza@redhat.com \
--cc=kay@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lpoetter@redhat.com \
--cc=luto@amacapital.net \
--cc=netdev@vger.kernel.org \
--cc=tj@kernel.org \
--cc=vgoyal@redhat.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: 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.