public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Pavel Emelyanov <xemul@openvz.org>
To: Greg KH <greg@kroah.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel@vger.kernel.org, menage@google.com,
	sukadev@us.ibm.com, serue@us.ibm.com
Subject: Re: [PATCH 5/9] Make use of permissions, returned by kobj_lookup
Date: Fri, 07 Mar 2008 19:38:51 +0300	[thread overview]
Message-ID: <47D16F9B.6050008@openvz.org> (raw)
In-Reply-To: <20080307155921.GB28439@kroah.com>

Greg KH wrote:
> On Fri, Mar 07, 2008 at 12:52:40PM +0300, Pavel Emelyanov wrote:
>> Andrew Morton wrote:
>>> On Fri, 07 Mar 2008 12:22:01 +0300 Pavel Emelyanov <xemul@openvz.org> wrote:
>>>
>>>>> This doesn't include sufficient headers to be compileable.
>>>>>
>>>>> I'm sure there are lots of headers like this.  But we regularly need
>>>>> to fix them.
>>>>>
>>>> Not sure, whether this is still relevant after Greg's comments, but that's
>>>> the -fix patch for this one. (It will cause a conflict with the 9th patch.)
>>> Well.  Where do we stand with this?  afaict the state of play is:
>>>
>>> Greg: do it in udev
>>> Pavel: but people want to run old distros in containers
>> Actually no.
>>
>> Greg: Use LSM for this
> 
> Yes, that is my recommendation.
> 
>> Pavel: My approach just makes maps per-group, while LSM will
>>        bring a new level of filtering/lookup on device open path
> 
> Huh?  You are still doing that same "filtering/lookup" by modifying the
> maps code.  The result should be exactly the same.

No - this lookup was there before to get struct kobject from the dev_t, 
I just make it look up in another map.

> Why do you not want to use the LSM interface?  That is exactly what it
> is there for, don't go creating new hooks into the kernel for the exact
> same functionality.

_No_new_hooks_ - just the map is get from task, not from a static variable.

I have basically three objections against LSM.

1. LSM is not stackable, so loading this tiny module with devices
   access rights will block other security modules;

2. Turning CONFIG_SECURITY on immediately causes all the other hooks
   to get called. This affects performance on critical paths, like
   process creation/destruction, network flow and so on. This impact
   is small, but noticeable;

3. With LSM turned on we'll have to "virtualize" it, i.e. make its
   work safe in a container. I don't presume to judge how much work
   will have to be done in this area, so the result patch would be
   even larger and maybe will duplicate functionality, which is currently
   in cgroups. OTOH, cgroups already provide the ways to correctly 
   delegate proper rights to containers.

> Opening a dev node is not on any "fast path" that you need to be
> concerned about a few extra calls within the kernel.
> 
> And, I think in the end your patch would be much smaller and easier to
> understand and review and maintain overall.

Hardly - the largest part of my patch is cgroup manipulations. The part
that makes the char and block layers switch to new map ac check the 
permissions is 10-20 lines of new code.

But with LSM I will still need this API.

>>> Realistically, when is the mainline kernel likely to have sufficient
>>> container functionality which is sufficiently well-tested for people to
>>> actually be able to do that?  And how much longer will it take for that
>>> kernel.org functionality to propagate out into non-bleeding-edge distros?
>> The fact is that we have users of OpenVZ and even Virtuozzo, that still use 
>> redhat-9 as in containers. So even if this is ready in 5 years, there will 
>> always be someone who sets the outdated (by that time) fedora-core-8 and find
>> out, that his udev refuses to work.
> 
> That's fine, use the LSM interface, no need to change userspace at all.
> 
> Although I think your requirement of using new kernels on very old
> distros is going to cause you more problems than you realize in the
> end...
> 
> thanks,
> 
> greg k-h
> 


  reply	other threads:[~2008-03-07 16:41 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-05 17:23 [PATCH 0/9] Devices accessibility control group (v4) Pavel Emelyanov
2008-03-05 17:25 ` [PATCH 1/9] Avoid magic constants in drivers/base/map.c Pavel Emelyanov
2008-03-05 17:28 ` [PATCH 2/9] Cleanup the get_gendisk() a bit Pavel Emelyanov
2008-03-05 17:32 ` [PATCH 3/9] Add a mode on the struct probe Pavel Emelyanov
2008-03-05 17:34 ` [PATCH 4/9] Make kobj_lookup() return the mapping's permissions Pavel Emelyanov
2008-03-05 17:37 ` [PATCH 5/9] Make use of permissions, returned by kobj_lookup Pavel Emelyanov
2008-03-06  1:13   ` Andrew Morton
2008-03-06  8:48     ` Pavel Emelyanov
2008-03-07  9:22     ` Pavel Emelyanov
2008-03-07  9:35       ` Andrew Morton
2008-03-07  9:52         ` Pavel Emelyanov
2008-03-07 15:59           ` Greg KH
2008-03-07 16:38             ` Pavel Emelyanov [this message]
2008-03-07 17:01               ` Greg KH
2008-03-07 17:08                 ` Al Viro
2008-03-07 17:35                 ` Serge E. Hallyn
2008-03-07 17:57                   ` Casey Schaufler
2008-03-07 18:30                     ` Serge E. Hallyn
2008-03-07 19:46                       ` Stephen Smalley
2008-03-07 20:57                         ` Casey Schaufler
2008-03-07 21:32                           ` Serge E. Hallyn
2008-03-07 18:14                   ` Greg KH
2008-03-07 18:50                     ` Serge E. Hallyn
2008-03-08  6:04                       ` Greg KH
2008-03-08 21:47                         ` Serge E. Hallyn
2008-03-09  3:15                           ` Greg KH
2008-03-10 20:35                             ` Serge E. Hallyn
2008-03-11  9:57                 ` Pavel Emelyanov
2008-03-11 17:36                   ` Greg KH
2008-03-12  8:26                     ` Pavel Emelyanov
2008-03-12 13:09                       ` Serge E. Hallyn
2008-03-12 13:18                         ` Stephen Smalley
2008-03-12 13:27                           ` Stephen Smalley
2008-03-12 14:18                             ` Serge E. Hallyn
2008-03-12 14:15                           ` Serge E. Hallyn
2008-03-12 16:21                           ` Casey Schaufler
2008-03-12 13:36                         ` Pavel Emelyanov
2008-03-05 17:40 ` [PATCH 6/9] Extend the drivers/base/map.c functionality Pavel Emelyanov
2008-03-05 17:43 ` [PATCH 7/9] Provide functions to manipulate char device mappings Pavel Emelyanov
2008-03-05 17:46 ` [PATCH 8/9] Provide functions to manipulate block " Pavel Emelyanov
2008-03-05 17:47 ` [PATCH 9/9] Devices accessibility control group itself Pavel Emelyanov
2008-03-06  2:02   ` Greg KH
2008-03-06  1:55 ` [PATCH 0/9] Devices accessibility control group (v4) Greg KH
2008-03-06  3:15   ` Serge E. Hallyn
2008-03-06  4:34     ` Greg KH
2008-03-06  8:36       ` Pavel Emelyanov
2008-03-07  4:58         ` Greg KH
2008-03-07  8:42         ` Pavel Machek
2008-03-07  8:54           ` Pavel Emelyanov

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=47D16F9B.6050008@openvz.org \
    --to=xemul@openvz.org \
    --cc=akpm@linux-foundation.org \
    --cc=greg@kroah.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=menage@google.com \
    --cc=serue@us.ibm.com \
    --cc=sukadev@us.ibm.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox