Recent change in directory g+s behavior (bug?)

Ken Brownfield (brownfld@irridia.com)
Tue, 3 Jul 2001 03:43:35 -0500


Somewhere between 2.4.5-pre1 and 2.4.6-pre3, the behavior of the setgid
bit on directories has changed:

2.4.5-pre1:
# mkdir foo
# chgrp adm foo
# chmod 2775 foo
# cd foo
# ls -las
total 12
4 drwxrwsr-x 3 root adm 4096 Jul 3 01:11 .
4 drwxr-xr-x 6 root adm 4096 Jul 3 00:23 ..
# mkdir bar
# ls -las
total 12
4 drwxrwsr-x 3 root adm 4096 Jul 3 01:11 .
4 drwxrwxrwt 6 root root 4096 Jul 3 00:23 ..
4 drwxr-sr-x 2 root adm 4096 Jul 3 01:11 bar

2.4.6-pre3 and later, including pre9:
# mkdir foo
# chgrp adm foo
# chmod 2775 foo
# cd foo
# ls -las
total 12
4 drwxrwsr-x 3 root adm 4096 Jul 3 01:23 .
4 drwxr-xr-x 6 root adm 4096 Jul 3 00:38 ..
# mkdir bar
# ls -las
total 12
4 drwxrwsr-x 3 root adm 4096 Jul 3 01:23 .
4 drwxrwxrwt 6 root root 4096 Jul 3 00:38 ..
4 drwxr-xr-x 2 root adm 4096 Jul 3 01:23 bar

The setgid bit on directories created within g+s directories is no
longer being set, which is a marked change of behavior that breaks quite
a few things here, most notably shared CVS trees. The group ownership
does however still seem to be inherited properly for both directories
and files.

I'm seeing a lot of VFS and ext2 work in the ChangeLog during this
kernel interval, but nothing specific to this problem. Because of that,
I'm assuming this isn't expected behavior since it breaks many
real-world systems that I'm familiar with and differs from other Unixes
(Unices?).

I apologize for not being able to narrow down the specific kernel
revision at the moment, but I will be able to do this soon. Is anyone
else seeing this? Also, who would be the best person to talk to about
these issues right now (if they're not on lkml)?

Thanks very much,

-- 
Ken.
brownfld@irridia.com

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/