Thread (1 message) 1 message, 1 author, 2014-03-14

Re: [PATCH 2/2] net: Implement SO_PEERCGROUP

From: Eric W. Biederman <hidden>
Date: 2014-03-14 23:49:52
Also in: cgroups, lkml

Vivek Goyal [off-list ref] writes:
On Thu, Mar 13, 2014 at 12:58:14PM -0700, Andy Lutomirski wrote:
quoted
On Thu, Mar 13, 2014 at 12:53 PM, Vivek Goyal [off-list ref] wrote:
quoted
On Thu, Mar 13, 2014 at 10:55:16AM -0700, Andy Lutomirski wrote:

[..]
quoted
quoted
quoted
2. Docker is a container system, so use the "container" (aka
namespace) APIs.  There are probably several clever things that could
be done with /proc/<pid>/ns.
pid is racy, if it weren't I would simply go straight
to /proc/<pid>/cgroups ...
How about:

open("/proc/self/ns/ipc", O_RDONLY);
send the result over SCM_RIGHTS?
As I don't know I will ask. So what will server now do with this file
descriptor of client's ipc namespace.

IOW, what information/identifier does it contain which can be
used to map to pre-configrued per container/per namespace policies.
Inode number, which will match that assigned to the container at runtime.
But what would I do with this inode number. I am assuming this is
generated dynamically when respective namespace was created. To me
this is like assigning a pid dynamically and one does not create
policies in user space based on pid. Similarly I will not be able
to create policies based on an inode number which is generated
dynamically.

For it to be useful, it should map to something more static which
user space understands.
But the mapping can be done in userspace.  stat all of the namespaces
you care about, get their inode numbers, and then do a lookup.

Hard coding string based names in the kernel the way cgroups does is
really pretty terrible and it seriously limits the flexibility of the
api, and so far breaks nested containers.

Eric
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help