1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-02-17 04:41:59 +02:00

Do the setgid test instead of bailing.

This commit is contained in:
Paul Eggert
2006-07-17 03:11:51 +00:00
parent 577faf65e3
commit 4d9d2da4a8

View File

@@ -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