# Show all commands when run with environment variable VERBOSE=yes.
test -z "$VERBOSE" || set -x
+test "$USE_ACL" = 0 &&
+ {
+ echo "Skipping test: insufficient ACL support"
+ exit 77
+ }
+
# func_tmpdir
# creates a temporary directory.
# Sets variable
# Classification of the platform according to the programs available for
# manipulating ACLs.
# Possible values are:
- # linux, cygwin, freebsd, solaris, hpux, osf1, aix, macosx, irix, none.
- # TODO: Support also native Win32 platforms (mingw).
+ # linux, cygwin, freebsd, solaris, hpux, hpuxjfs, osf1, aix, macosx, irix, none.
+ # TODO: Support also native Windows platforms (mingw).
acl_flavor=none
if (getfacl tmpfile0 >/dev/null) 2>/dev/null; then
# Platforms with the getfacl and setfacl programs.
if (lsacl / >/dev/null) 2>/dev/null; then
# Platforms with the lsacl and chacl programs.
# HP-UX, sometimes also IRIX.
- acl_flavor=hpux
+ if (getacl tmpfile0 >/dev/null) 2>/dev/null; then
+ # HP-UX 11.11 or newer.
+ acl_flavor=hpuxjfs
+ else
+ # HP-UX 11.00.
+ acl_flavor=hpux
+ fi
else
if (getacl tmpfile0 >/dev/null) 2>/dev/null; then
- # Tru64.
- acl_flavor=osf1
+ # Tru64, NonStop Kernel.
+ if (getacl -m tmpfile0 >/dev/null) 2>/dev/null; then
+ # Tru64.
+ acl_flavor=osf1
+ else
+ # NonStop Kernel.
+ acl_flavor=nsk
+ fi
else
if (aclget tmpfile0 >/dev/null) 2>/dev/null; then
# AIX.
acl_flavor=aix
else
if (fsaclctl -v >/dev/null) 2>/dev/null; then
- # MacOS X.
+ # Mac OS X.
acl_flavor=macosx
else
if test -f /sbin/chacl; then
fi
if test $acl_flavor != none; then
+ # A POSIX compliant 'id' program.
+ if test -f /usr/xpg4/bin/id; then
+ ID=/usr/xpg4/bin/id
+ else
+ ID=id
+ fi
# Use a user and group id different from the current one, to avoid
# redundant/ambiguous ACLs.
- myuid=`id -u`
- mygid=`id -g`
+ myuid=`$ID -u`
+ mygid=`$ID -g`
auid=1
if test "$auid" = "$myuid"; then auid=2; fi
agid=1
orig=`lsacl tmpfile0 | sed -e 's/ tmpfile0$//'`
chacl -r "${orig}($auid.%,--x)" tmpfile0
;;
+ hpuxjfs)
+ orig=`lsacl tmpfile0 | sed -e 's/ tmpfile0$//'`
+ chacl -r "${orig}($auid.%,--x)" tmpfile0 \
+ || setacl -m user:$auid:1 tmpfile0
+ ;;
osf1)
setacl -u user:$auid:1 tmpfile0
;;
+ nsk)
+ setacl -m user:$auid:1 tmpfile0
+ ;;
aix)
{ aclget tmpfile0 | sed -e 's/disabled$/enabled/'; echo " permit --x u:$auid"; } | aclput tmpfile0
;;