On Fri, May 20, 2011 at 6:22 AM, Jan Stancek <[email protected]> wrote:
>
>
> ----- Original Message -----
>> From: "Garrett Cooper" <[email protected]>
>> To: "Caspar Zhang" <[email protected]>
>> Cc: "LTP List" <[email protected]>
>> Sent: Friday, May 20, 2011 3:04:20 PM
>> Subject: Re: [LTP] [PATCH] [syscalls] chown03: fix EPERM issue
>> On Wed, May 11, 2011 at 2:39 AM, Caspar Zhang <[email protected]>
>> wrote:
>> >
>> > in setup phase of chown03 testcase, it set effective gid/uid before
>> > create tmpdir, this might cause EPERM error under some circumstance:
>> >
>> > chown03 1 TBROK : chown(/tmp/ltp-1FYYTiULQl/chos2UBh3, -1, 0)
>> > failed: errno=EPERM(1): Operation not permitted
>> > chown03 2 TBROK : Remaining cases broken
>> > chown03 0 TWARN : tst_brk: Invalid Type: 4. Using TBROK
>
> What happens is:
> --running as root--
> setegid(99);
> seteuid(99);
> mkdir(mydir, 0700);
> chown(mydir, -1, 0);
>
> So nobody wants to chown created dir to root, which seems odd at first look.
> But this actually works thanks to check in fs/attr.c:inode_change_ok(),
> which checks not only for uid but also for supplementary groups.
>
> Normally /bin/login will set these for you (initgroups(2)) and testcase works.
> The conditions under which I saw this test to fail was when it is
> run in automated environment (bypassing /bin/login),
> leaving sup. groups empty.
Makes sense, but it's unfortunate that this isn't handled properly
when a login shell isn't allocated (and that seems like a potential
bug due to premature optimization(s), because of the fact that it's
incomplete user environment initialization).
Thanks!
-Garrett
------------------------------------------------------------------------------
What Every C/C++ and Fortran developer Should Know!
Read this article and learn how Intel has extended the reach of its
next-generation tools to help Windows* and Linux* C/C++ and Fortran
developers boost performance applications - including clusters.
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list