From: ebiederm@xmission.com (Eric W. Biederman)
To: Richard Weinberger <richard@nod.at>
Cc: linux-security-module@vger.kernel.org,
linux-kernel@vger.kernel.org, Serge Hallyn <serge@hallyn.com>,
Linux Containers <containers@lists.linux-foundation.org>,
Jeff Dike <jdike@addtoit.com>
Subject: Re: [PATCH 05/14] userns: Convert hostfs to use kuid and kgid where appropriate
Date: Sun, 23 Sep 2012 19:39:02 -0700 [thread overview]
Message-ID: <87obkwxhyx.fsf@xmission.com> (raw)
In-Reply-To: <505F864C.2000103@nod.at> (Richard Weinberger's message of "Sun, 23 Sep 2012 23:59:40 +0200")
Richard Weinberger <richard@nod.at> writes:
> Am 21.09.2012 02:28, schrieb Eric W. Biederman:
>> From: "Eric W. Biederman" <ebiederm@xmission.com>
>>
>> Cc: Jeff Dike <jdike@addtoit.com>
>> Cc: Richard Weinberger <richard@nod.at>
>> Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
>> Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
>> ---
>
> Looks sane to me.
>
> Acked-by: Richard Weinberger <richard@nod.at>
>
> BTW: How you do test your user namespace patches?
> Is there a generic way to compare/verify uids within a namespace
> vs. the initial namespace?
I start with a well tested set of primites, and a simple design.
Ultimately the goal is to get the conversion functions make_kuid and
from_kuid inserted into the proper locations.
When user namespaces are enabled kuid_t and uid_t are not assignment
compatible so in most places where something needs to be done I get
a compile error.
If the other value is an internal kernel value I change it's type.
If the other value is a userspace or on disk value I insert a conversion
function.
So as a first approximation I can test just by enabling usernamespace
support and compiling the code.
My second line of defense is to keep my patches simple and easily
reviewable.
I impose upon myself the discipline of letting my patches set for a
while so that I review them with a fresh mind before sending them
out to the list.
I am careful when making my patches to actually read the code and
understand what is going on, so hopefully I catch the tricky cases.
With the user namespace support disabled the code performs the same with
except for the conversion functions so things like my conversion of the
core kernel in 3.5 continue to be tested for correctness in general.
Right now for filesystems I am converting them so they will work when
all of the user space interfaces have values coming to the filesystem in
kuid_t and kgid_t, but the values in the filesystem are stored in
the initial user namespace. So it is trivial to know that I have
useful the correct conversions.
Since my big question is do I have the conversions in all of the
locations needed, compile errors and the discipline of pushing kuid_t
and kgid_t as deep as possible into the kernel data structures as
possible are my primary means of where conversions need to go.
Beyond that I actually run a kernel with all of my patches applied and I
do some spot testing, and I have had my development tree with everything
patched out for a while so that other people can play with it as well.
I also compile test each patch with allyesconfig and with as much
enabled as I can and still leave the usernamespace support enabled,
ensuring each patch is good and safe on it's own (at least compilewise).
So that is how I test.
As to a generic way to compare/verify uids within a namespace vs the
initial namespace hmm. I don't know that there is a generic tool. The
mappings are available in /proc/<pid>/uid_maps, and /proc/<pid>/gid_maps
so it isn't hard to look to see if the expected conversion is happening
by looking from outside the namespace. But there isn't a generic tool
that I know of at this point.
Eric
next prev parent reply other threads:[~2012-09-24 2:39 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-21 0:26 [REVIEW][PATCH 00/14] userns: Miscelanous conversions Eric W. Biederman
2012-09-21 0:28 ` [PATCH 01/14] userns: Convert loop to use kuid_t instead of uid_t Eric W. Biederman
2012-09-21 0:28 ` [PATCH 02/14] userns: Convert apparmor to use kuid and kgid where appropriate Eric W. Biederman
2012-09-21 0:28 ` [PATCH 03/14] userns: Convert tomoyo " Eric W. Biederman
2012-09-21 0:28 ` [PATCH 04/14] userns: Convert selinux " Eric W. Biederman
2012-09-26 17:51 ` Serge Hallyn
2012-09-21 0:28 ` [PATCH 05/14] userns: Convert hostfs " Eric W. Biederman
2012-09-23 21:59 ` Richard Weinberger
2012-09-24 2:39 ` Eric W. Biederman [this message]
2012-09-24 14:55 ` Serge Hallyn
2012-09-21 0:28 ` [PATCH 06/14] userns: Convert EVM to deal with kuids and kgids in it's hmac computation Eric W. Biederman
2012-09-21 0:28 ` [PATCH 07/14] userns: Add user namespace support to IMA Eric W. Biederman
2012-09-21 0:28 ` [PATCH 08/14] userns: Teach security_path_chown to take kuids and kgids Eric W. Biederman
2012-09-21 0:28 ` [PATCH 09/14] userns: Convert binder ipc to use kuids Eric W. Biederman
2012-09-21 6:44 ` Greg Kroah-Hartman
2012-09-21 0:28 ` [PATCH 10/14] userns: Convert s390 hypfs to use kuid and kgid where appropriate Eric W. Biederman
2012-09-26 17:52 ` Serge Hallyn
2012-09-21 0:28 ` [PATCH 11/14] userns: Convert s390 getting uid and gid system calls to use kuid and kgid Eric W. Biederman
2012-09-26 17:59 ` Serge Hallyn
2012-09-21 0:28 ` [PATCH 12/14] userns: On ppc convert current_uid from a kuid before printing Eric W. Biederman
2012-09-26 17:56 ` Serge Hallyn
2012-09-21 0:28 ` [PATCH 13/14] userns: On ia64 deal with current_uid and current_gid being kuid and kgid Eric W. Biederman
2012-09-26 17:55 ` Serge Hallyn
2012-09-21 0:28 ` [PATCH 14/14] userns: On alpha modify linux_to_osf_stat to use convert from kuids and kgids Eric W. Biederman
2012-09-21 6:07 ` [PATCH 01/14] userns: Convert loop to use kuid_t instead of uid_t Jens Axboe
2012-09-21 7:07 ` Eric W. Biederman
2012-09-21 7:11 ` Jens Axboe
2012-09-21 7:19 ` Eric W. Biederman
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=87obkwxhyx.fsf@xmission.com \
--to=ebiederm@xmission.com \
--cc=containers@lists.linux-foundation.org \
--cc=jdike@addtoit.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=richard@nod.at \
--cc=serge@hallyn.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