From: Pavel Emelyanov <xemul-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
To: sukadev-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org
Cc: Linux Containers
<containers-qjLDD68F18O7TbgM5vRIOg@public.gmane.org>,
Paul Menage <menage-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
Subject: Re: [PATCH 0/4] Devices accessibility control group (v2)
Date: Mon, 14 Jan 2008 10:52:59 +0300 [thread overview]
Message-ID: <478B14DB.4000106@openvz.org> (raw)
In-Reply-To: <20080112212014.GA12085-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
sukadev-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org wrote:
> Pavel Emelianov [xemul-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org] wrote:
> | The first version was posted long ago
> | (http://openvz.org/pipermail/devel/2007-September/007647.html)
> | and since then there are many (good I hope) changes:
> |
> | * Added the block devices support :) It turned out to
> | be a bit simpler than the char one (or I missed
> | something significant);
> | * Now we can enable/disable not just individual devices,
> | but the whole major with all its minors (see the TODO
> | list beyond as well);
> | * Added the ability to restrict the read/write permissions
> | to devices, not just visible/invisible state.
> |
> | That is - the main features I wished to implement right
> | after the v1 was sent. Some minor changes are:
> |
> | * I merged the devices.char and devices.block files into
> | one - devices.permissions;
> | * As the result of the change above - the strings passed
> | to this file has changed. Now they are
> | [bc] <major>:{<minor>|*} [r-][w-]
> | E.g. b 5:2 r- will grant the read permissions to the
> | block 5:2 device and c 3:* -w will grant the write-only
> | access to all the character devices with the major 5.
> |
> | However, there are some things to be done:
> |
> | * Make the /proc/devices show relevant info depending on
> | who is reading it. This seems to be easy to do, since
> | I already have the support to dump similar info into the
> | devices.permissions file, but I haven't tried to use
> | this in /proc/devices yet;
> | * Add the support for devices ranges. I.e. someone might
> | wish to tell smth like b 5:[0-10] r- to this subsystem.
> | Currently this is not supported and I'm afraid that if we
> | start support minor ranges we'll have smth similar to
> | VMA-s or FLOCK-s ranges management in one more place in the
> | kernel.
> | * One more question is - are there any other permissions to
> | work with? E.g. in OpenVZ we have a separate bit for
> | quota management, maybe we can invent some more...
> |
> | Currently I didn't pay much attention to split this set well,
> | so this will most likely won't work with git-bisect, but I
> | think this is OK for now. I will sure split it better when I
> | send the v3 and further.
> |
> | The set is prepared against the 2.6.24-rc5-mm1.
> |
> | All this is minimally tested and seems to work. Hope to hear
> | you comments, wishes and patches soon :)
> |
> | To play with it - run a standard procedure:
> |
> | # mount -t container none /cont/devs -o devices
>
> This should be '-t cgroup'
Right :)
Thank you for the feedback. Serge, Oren, do you have smth
to tell about this set? I planned to show it to Andrew this
week, hope he will find time to look at it :)
> | # mkdir /cont/devs/0
> | # echo -n $$ > /cont/devs/0/tasks
> |
> | and tune device permissions.
>
> I started playing with this and noticed that even if I try to
> enable read access to device [c, 1:3] it also grants access
> to device [c, 1:5].
Hm... I can't reproduce this:
# /bin/echo 'c 1:3 r-' > /cnt/dev/0/devices.permissions
# /bin/echo -n $$ > /cnt/dev/0/tasks
# cat /cnt/dev/0/devices.permissions
c 1:3 r-
# hexdump /dev/null
# hexdump /dev/zero
hexdump: /dev/zero: No such device or address
hexdump: /dev/zero: Bad file descriptor
Maybe you have played with devs cgroups before getting this?
Can you show what's the contents of the devices.permissions file
in your case?
> i.e the access restrictions seem to apply to all devices with
> a given major number. Is that really the intent ?
>
> Both devices accessible here:
> # hexdump /dev/null
> # hexdump /dev/zero
> 0000000 0000 0000 0000 0000 0000 0000 0000 0000
> *
> ^C
>
> Neither device accessible:
>
> # echo $$ > /container/devs/0/tasks
> # hexdump /dev/zero
> hexdump: /dev/zero: No such device or address
> hexdump: /dev/zero: Bad file descriptor
> # hexdump /dev/null
> hexdump: /dev/null: No such device or address
> hexdump: /dev/null: Bad file descriptor
>
> Grant read access to /dev/null, but /dev/zero is also readable
>
> # echo c 1:3 r- > /container/devs/0/devices.permissions
> # hexdump /dev/null
> # hexdump /dev/zero
> 0000000 0000 0000 0000 0000 0000 0000 0000 0000
> *
> ^C
>
> Remove read access to /dev/null, but /dev/zero is also not
> readable.
>
> # echo c 1:3 -- > /container/devs/0/devices.permissions
> # hexdump /dev/zero
> hexdump: /dev/zero: No such device or address
> hexdump: /dev/zero: Bad file descriptor
>
> BTW, a question about cgroups: If we 'echo $$ > /container/devs/0/tasks'
> is there a way to remove/undo it later (so that the process has access
> as before) ?
I've always thought that it's to move the task to top cgrop, i.e.
echo $$ > /container/devs/tasks
Thanks,
Pavel
>
next prev parent reply other threads:[~2008-01-14 7:52 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-08 9:02 [PATCH 0/4] Devices accessibility control group (v2) Pavel Emelyanov
[not found] ` <47833C3A.8090106-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
2008-01-08 9:07 ` [PATCH 1/4] Some changes in the kobject mapper Pavel Emelyanov
[not found] ` <47833D43.3090703-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
2008-01-08 18:36 ` Daniel Hokka Zakrisson
[not found] ` <4783C2B4.7000501-nym3zxDgnZcAvxtiuMwx3w@public.gmane.org>
2008-01-08 19:17 ` Dave Hansen
2008-01-08 9:12 ` [PATCH 2/4] The character devices layer changes Pavel Emelyanov
[not found] ` <47833E93.6010108-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
2008-01-14 17:03 ` Serge E. Hallyn
[not found] ` <20080114170333.GA15077-6s5zFf/epYLPQpwDFJZrxKsjOiXwFzmk@public.gmane.org>
2008-01-15 8:05 ` Pavel Emelyanov
[not found] ` <478C6942.4050903-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
2008-01-15 14:54 ` Serge E. Hallyn
2008-01-08 9:15 ` [PATCH 3/4] The block " Pavel Emelyanov
2008-01-08 9:18 ` [PATCH 4/4] The control group itself Pavel Emelyanov
[not found] ` <47833FF6.6060901-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
2008-01-14 17:40 ` Serge E. Hallyn
[not found] ` <20080114174056.GB15077-6s5zFf/epYLPQpwDFJZrxKsjOiXwFzmk@public.gmane.org>
2008-01-15 7:53 ` Pavel Emelyanov
[not found] ` <478C6669.7070705-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
2008-01-15 14:44 ` Serge E. Hallyn
[not found] ` <20080115144440.GE4453-6s5zFf/epYLPQpwDFJZrxKsjOiXwFzmk@public.gmane.org>
2008-01-15 16:13 ` Paul Menage
[not found] ` <6599ad830801150813s6a5a7374qd25b6d6206d5896a-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-01-15 17:49 ` Serge E. Hallyn
[not found] ` <20080115174941.GA11638-6s5zFf/epYLPQpwDFJZrxKsjOiXwFzmk@public.gmane.org>
2008-01-15 17:54 ` Paul Menage
[not found] ` <6599ad830801150954w7e1b6db0p4dd737730f407348-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-01-15 18:17 ` Serge E. Hallyn
2008-01-14 21:54 ` Paul Menage
[not found] ` <6599ad830801141354p5b165cdao8d6184adb9ab61b6-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-01-15 7:58 ` Pavel Emelyanov
2008-01-12 21:20 ` [PATCH 0/4] Devices accessibility control group (v2) sukadev-r/Jw6+rmf7HQT0dZR+AlfA
[not found] ` <20080112212014.GA12085-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-01-14 7:52 ` Pavel Emelyanov [this message]
[not found] ` <478B14DB.4000106-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
2008-01-14 17:42 ` sukadev-r/Jw6+rmf7HQT0dZR+AlfA
[not found] ` <20080114174220.GA17825-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-01-15 8:22 ` Pavel Emelyanov
[not found] ` <478C6D2B.6020904-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
2008-01-17 6:26 ` sukadev-r/Jw6+rmf7HQT0dZR+AlfA
[not found] ` <20080117062605.GA24475-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-01-21 8:31 ` Pavel Emelyanov
2008-01-14 21:18 ` Paul Menage
[not found] ` <6599ad830801141318h121a6a80h9af68c52431c48b8-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-01-15 8:06 ` 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=478B14DB.4000106@openvz.org \
--to=xemul-gefaqzzx7r8dnm+yrofe0a@public.gmane.org \
--cc=containers-qjLDD68F18O7TbgM5vRIOg@public.gmane.org \
--cc=menage-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=sukadev-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org \
/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