linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] cgroups: devices: add Documentation/ file
@ 2008-03-27 15:12 Serge E. Hallyn
  2008-03-27 15:58 ` Randy Dunlap
  0 siblings, 1 reply; 3+ messages in thread
From: Serge E. Hallyn @ 2008-03-27 15:12 UTC (permalink / raw)
  To: Andrew Morton; +Cc: lkml

Fill a Documentation/controllers/devices.txt file with a
modified text from the patch description.

Signed-off-by: Serge E. Hallyn <serue@us.ibm.com>
---
 Documentation/controllers/devices.txt |   48 +++++++++++++++++++++++++++++++++
 1 files changed, 48 insertions(+), 0 deletions(-)
 create mode 100644 Documentation/controllers/devices.txt

diff --git a/Documentation/controllers/devices.txt b/Documentation/controllers/devices.txt
new file mode 100644
index 0000000..a157f53
--- /dev/null
+++ b/Documentation/controllers/devices.txt
@@ -0,0 +1,48 @@
+Device Whitelist Controller
+
+1. Description:
+
+Implement a cgroup to track and enforce open and mknod restrictions
+on device files.  A device cgroup associates a device access
+whitelist with each cgroup.  A whitelist entry has 4 fields.
+'type' is a (all), c (char), or b (block).  'all' means it applies
+to all types and all major and minor numbers.  Major and minor are
+either an integer or * for all.  Access is a composition of r
+(read), w (write), and m (mknod).
+
+The root device cgroup starts with rwm to 'all'.  A child devices
+cgroup gets a copy of the parent.  Administrators can then remove
+devices from the whitelist or add new entries.  A child cgroup can
+never receive a device access which is denied its parent.  However
+when a device access is removed from a parent it will not also be
+removed from the child(ren).
+
+2. User Interface
+
+An entry is added using devices.allow, and removed using
+devices.deny.  For instance
+
+	echo 'c 1:3 mr' > /cgroups/1/devices.allow
+
+allows cgroup 1 to read and mknod the device usually known as
+/dev/null.  Doing
+
+	echo a > /cgroups/1/devices.deny
+
+will remove the default 'a *:* mrw' entry.
+
+3. Security
+
+Any task can move itself between cgroups.  This of clearly won't
+suffice, but we can decide the best way to adequately restrict
+movement as people get some experience with this.  We may just want
+to require CAP_SYS_ADMIN, which at least is a separate bit from
+CAP_MKNOD.  We may want to just refuse moving to a cgroup which
+isn't a descendent of the current one.  Or we may want to use
+CAP_MAC_ADMIN, since we really are trying to lock down root.
+
+CAP_SYS_ADMIN is needed to modify the whitelist or move another
+task to a new cgroup.  (Again we'll probably want to change that).
+
+A cgroup may not be granted more permissions than the cgroup's
+parent has.  
-- 
1.5.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] cgroups: devices: add Documentation/ file
  2008-03-27 15:12 [PATCH] cgroups: devices: add Documentation/ file Serge E. Hallyn
@ 2008-03-27 15:58 ` Randy Dunlap
  2008-03-27 17:36   ` Serge E. Hallyn
  0 siblings, 1 reply; 3+ messages in thread
From: Randy Dunlap @ 2008-03-27 15:58 UTC (permalink / raw)
  To: Serge E. Hallyn; +Cc: Andrew Morton, lkml

On Thu, 27 Mar 2008 10:12:27 -0500 Serge E. Hallyn wrote:

> Fill a Documentation/controllers/devices.txt file with a
> modified text from the patch description.
> 
> Signed-off-by: Serge E. Hallyn <serue@us.ibm.com>
> ---
>  Documentation/controllers/devices.txt |   48 +++++++++++++++++++++++++++++++++
>  1 files changed, 48 insertions(+), 0 deletions(-)
>  create mode 100644 Documentation/controllers/devices.txt
> 
> diff --git a/Documentation/controllers/devices.txt b/Documentation/controllers/devices.txt
> new file mode 100644
> index 0000000..a157f53
> --- /dev/null
> +++ b/Documentation/controllers/devices.txt
> @@ -0,0 +1,48 @@
> +Device Whitelist Controller
> +
> +1. Description:
> +

...

> +The root device cgroup starts with rwm to 'all'.  A child devices

                                                             device's

> +cgroup gets a copy of the parent.  Administrators can then remove
> +devices from the whitelist or add new entries.  A child cgroup can
> +never receive a device access which is denied its parent.  However
> +when a device access is removed from a parent it will not also be
> +removed from the child(ren).
> +
> +2. User Interface
> +
...
> +
> +3. Security
> +
> +Any task can move itself between cgroups.  This of clearly won't

s/of//

> +suffice, but we can decide the best way to adequately restrict
> +movement as people get some experience with this.  We may just want
> +to require CAP_SYS_ADMIN, which at least is a separate bit from
> +CAP_MKNOD.  We may want to just refuse moving to a cgroup which
> +isn't a descendent of the current one.  Or we may want to use
> +CAP_MAC_ADMIN, since we really are trying to lock down root.
> +
> +CAP_SYS_ADMIN is needed to modify the whitelist or move another
> +task to a new cgroup.  (Again we'll probably want to change that).
> +
> +A cgroup may not be granted more permissions than the cgroup's
> +parent has.  
> -- 

---
~Randy

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] cgroups: devices: add Documentation/ file
  2008-03-27 15:58 ` Randy Dunlap
@ 2008-03-27 17:36   ` Serge E. Hallyn
  0 siblings, 0 replies; 3+ messages in thread
From: Serge E. Hallyn @ 2008-03-27 17:36 UTC (permalink / raw)
  To: Randy Dunlap; +Cc: Serge E. Hallyn, Andrew Morton, lkml

Quoting Randy Dunlap (randy.dunlap@oracle.com):
> On Thu, 27 Mar 2008 10:12:27 -0500 Serge E. Hallyn wrote:
> 
> > Fill a Documentation/controllers/devices.txt file with a
> > modified text from the patch description.
> > 
> > Signed-off-by: Serge E. Hallyn <serue@us.ibm.com>
> > ---
> >  Documentation/controllers/devices.txt |   48 +++++++++++++++++++++++++++++++++
> >  1 files changed, 48 insertions(+), 0 deletions(-)
> >  create mode 100644 Documentation/controllers/devices.txt
> > 
> > diff --git a/Documentation/controllers/devices.txt b/Documentation/controllers/devices.txt
> > new file mode 100644
> > index 0000000..a157f53
> > --- /dev/null
> > +++ b/Documentation/controllers/devices.txt
> > @@ -0,0 +1,48 @@
> > +Device Whitelist Controller
> > +
> > +1. Description:
> > +
> 
> ...
> 
> > +The root device cgroup starts with rwm to 'all'.  A child devices
> 
>                                                              device's

That's actually not right, but 'child device cgroup' does sound better.

> 
> > +cgroup gets a copy of the parent.  Administrators can then remove
> > +devices from the whitelist or add new entries.  A child cgroup can
> > +never receive a device access which is denied its parent.  However
> > +when a device access is removed from a parent it will not also be
> > +removed from the child(ren).
> > +
> > +2. User Interface
> > +
> ...
> > +
> > +3. Security
> > +
> > +Any task can move itself between cgroups.  This of clearly won't
> 
> s/of//

Yup, oops.

New patch attached.  Thanks, Randy.

-serge

> > +suffice, but we can decide the best way to adequately restrict
> > +movement as people get some experience with this.  We may just want
> > +to require CAP_SYS_ADMIN, which at least is a separate bit from
> > +CAP_MKNOD.  We may want to just refuse moving to a cgroup which
> > +isn't a descendent of the current one.  Or we may want to use
> > +CAP_MAC_ADMIN, since we really are trying to lock down root.
> > +
> > +CAP_SYS_ADMIN is needed to modify the whitelist or move another
> > +task to a new cgroup.  (Again we'll probably want to change that).
> > +
> > +A cgroup may not be granted more permissions than the cgroup's
> > +parent has.  
> > -- 
> 
> ---
> ~Randy


>From c5a7bd6599ebe47b8711ba66b1c41a81935a12af Mon Sep 17 00:00:00 2001
From: Serge E. Hallyn <serue@us.ibm.com>
Date: Thu, 27 Mar 2008 08:11:10 -0700
Subject: [PATCH 1/1] cgroups: devices: add Documentation/ file

Fill a Documentation/controllers/devices.txt file with a
modified text from the patch description.

Signed-off-by: Serge E. Hallyn <serue@us.ibm.com>
---
 Documentation/controllers/devices.txt |   48 +++++++++++++++++++++++++++++++++
 1 files changed, 48 insertions(+), 0 deletions(-)
 create mode 100644 Documentation/controllers/devices.txt

diff --git a/Documentation/controllers/devices.txt b/Documentation/controllers/devices.txt
new file mode 100644
index 0000000..a157f53
--- /dev/null
+++ b/Documentation/controllers/devices.txt
@@ -0,0 +1,48 @@
+Device Whitelist Controller
+
+1. Description:
+
+Implement a cgroup to track and enforce open and mknod restrictions
+on device files.  A device cgroup associates a device access
+whitelist with each cgroup.  A whitelist entry has 4 fields.
+'type' is a (all), c (char), or b (block).  'all' means it applies
+to all types and all major and minor numbers.  Major and minor are
+either an integer or * for all.  Access is a composition of r
+(read), w (write), and m (mknod).
+
+The root device cgroup starts with rwm to 'all'.  A child device
+cgroup gets a copy of the parent.  Administrators can then remove
+devices from the whitelist or add new entries.  A child cgroup can
+never receive a device access which is denied its parent.  However
+when a device access is removed from a parent it will not also be
+removed from the child(ren).
+
+2. User Interface
+
+An entry is added using devices.allow, and removed using
+devices.deny.  For instance
+
+	echo 'c 1:3 mr' > /cgroups/1/devices.allow
+
+allows cgroup 1 to read and mknod the device usually known as
+/dev/null.  Doing
+
+	echo a > /cgroups/1/devices.deny
+
+will remove the default 'a *:* mrw' entry.
+
+3. Security
+
+Any task can move itself between cgroups.  This clearly won't
+suffice, but we can decide the best way to adequately restrict
+movement as people get some experience with this.  We may just want
+to require CAP_SYS_ADMIN, which at least is a separate bit from
+CAP_MKNOD.  We may want to just refuse moving to a cgroup which
+isn't a descendent of the current one.  Or we may want to use
+CAP_MAC_ADMIN, since we really are trying to lock down root.
+
+CAP_SYS_ADMIN is needed to modify the whitelist or move another
+task to a new cgroup.  (Again we'll probably want to change that).
+
+A cgroup may not be granted more permissions than the cgroup's
+parent has.  
-- 
1.5.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-03-27 17:37 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-03-27 15:12 [PATCH] cgroups: devices: add Documentation/ file Serge E. Hallyn
2008-03-27 15:58 ` Randy Dunlap
2008-03-27 17:36   ` Serge E. Hallyn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).