diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2006-07-17 03:11:51 +0000 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2006-07-17 03:11:51 +0000 |
commit | 4d9d2da4a8815397ef22b3ba70e70f372260cb3c (patch) | |
tree | f15b8f22651d64f7a55a9b04da0c407692017672 /tests/chmod | |
parent | 577faf65e368a63ecadf7ef6fafb757040d938b1 (diff) | |
download | coreutils-4d9d2da4a8815397ef22b3ba70e70f372260cb3c.tar.xz |
Do the setgid test instead of bailing.
Diffstat (limited to 'tests/chmod')
-rwxr-xr-x | tests/chmod/setgid | 30 |
1 files changed, 6 insertions, 24 deletions
diff --git a/tests/chmod/setgid b/tests/chmod/setgid index c3248a3d6..93a2c2e81 100755 --- a/tests/chmod/setgid +++ b/tests/chmod/setgid @@ -25,8 +25,6 @@ cd $pwd || framework_failure=1 mkdir $tmp || framework_failure=1 cd $tmp || framework_failure=1 -. $abs_srcdir/../setgid-check - umask 0 mkdir d || framework_failure=1 @@ -36,13 +34,11 @@ chmod g+s d 2> /dev/null || # it may happen that when you create a directory, its group isn't one # to which you belong. When that happens, the above chmod fails. So # here, upon failure, we try to set the group, then rerun the chmod command. - group=${COREUTILS_GROUP-`(id -g || /usr/xpg4/bin/id -g) 2>/dev/null`} - if test "$group"; then - chgrp "$group" d || framework_failure=1 - chmod g+s d || framework_failure=1 - else - framework_failure=1 - fi + + id_g=`id -g` && + test -n "$id_g" && + chgrp "$id_g" d && + chmod g+s d || framework_failure=1 } if test $framework_failure = 1; then @@ -54,20 +50,6 @@ fail=0 chmod 755 d -# To be compatible with chmod from other vendors, -# GNU chmod must not reset a directory's setgid bit. -# The latest POSIX draft (d5) allows either behavior. It says: -# -# For regular files, for each bit set in the octal number -# corresponding to the set-user-ID-on-execution or the -# set-group-ID-on-execution, bits shown in the following table shall -# be set; if these bits are not set in the octal number, they are -# cleared. For other file types, it is implementation-defined whether -# or not requests to set or clear the set-user-ID-on-execution or -# set-group-ID-on-execution bits are honored. - -# FIXME: consider changing GNU chmod to work like other versions of chmod. -# For now, this test simply confirms the existing behavior. -p=`ls -ld d|sed 's/ .*//'`; case $p in drwxr-xr-x);; *) fail=1;; esac +case `ls -ld d` in drwxr-sr-x*);; *) fail=1;; esac (exit $fail); exit $fail |