summaryrefslogtreecommitdiff
path: root/tests/chmod
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2006-07-17 03:11:51 +0000
committerPaul Eggert <eggert@cs.ucla.edu>2006-07-17 03:11:51 +0000
commit4d9d2da4a8815397ef22b3ba70e70f372260cb3c (patch)
treef15b8f22651d64f7a55a9b04da0c407692017672 /tests/chmod
parent577faf65e368a63ecadf7ef6fafb757040d938b1 (diff)
downloadcoreutils-4d9d2da4a8815397ef22b3ba70e70f372260cb3c.tar.xz
Do the setgid test instead of bailing.
Diffstat (limited to 'tests/chmod')
-rwxr-xr-xtests/chmod/setgid30
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