fi
fi
else
- if (lsacl tmpfile0 >/dev/null) 2>/dev/null; then
+ if (lsacl / >/dev/null) 2>/dev/null; then
# Platforms with the lsacl and chacl programs.
# HP-UX, sometimes also IRIX.
acl_flavor=hpux
# on both.
func_test_copy ()
{
- "$builddir"/test-copy-file${EXEEXT} "$1" "$2" || exit 1
- "$builddir"/test-copy-file-sameacls${EXEEXT} "$1" "$2" || exit 1
- func_test_same_acls "$1" "$2" || exit 1
+ "$builddir"/test-copy-file${EXEEXT} "$1" "$2" || exit 1
+ if test "$USE_ACL" != 0; then
+ "$builddir"/test-sameacls${EXEEXT} "$1" "$2" || exit 1
+ func_test_same_acls "$1" "$2" || exit 1
+ fi
}
func_test_copy tmpfile0 tmpfile1
- if test $acl_flavor != none; then
+ if test "$USE_ACL" != 0 && 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
if test "$agid" = "$mygid"; then agid=2; fi
case $acl_flavor in
- linux | cygwin | freebsd | solaris)
+ linux | freebsd | solaris)
# Set an ACL for a user.
setfacl -m user:$auid:1 tmpfile0
# Remove the ACL for other.
case $acl_flavor in
- linux) ;; # impossible
+ linux | solaris) ;; # impossible
freebsd) setfacl -x other::4 tmpfile0 ;;
*) setfacl -d other:4 tmpfile0 ;;
esac
;;
+ cygwin)
+
+ # Set an ACL for a group.
+ setfacl -m group:0:1 tmpfile0
+
+ func_test_copy tmpfile0 tmpfile2
+
+ # Set an ACL for other.
+ setfacl -m other:4 tmpfile0
+
+ func_test_copy tmpfile0 tmpfile4
+
+ # Remove the ACL for the group.
+ setfacl -d group:0 tmpfile0
+
+ func_test_copy tmpfile0 tmpfile5
+
+ # Remove the ACL for other.
+ setfacl -d other:4 tmpfile0
+
+ func_test_copy tmpfile0 tmpfile6
+
+ # Delete all optional ACLs.
+ setfacl -s user::6,group::0,other:0 tmpfile0
+
+ func_test_copy tmpfile0 tmpfile8
+
+ # Copy ACLs from a file that has no ACLs.
+ echo > tmpfile9
+ chmod a+x tmpfile9
+ getfacl tmpfile9 | setfacl -f - tmpfile0
+ rm -f tmpfile9
+
+ func_test_copy tmpfile0 tmpfile9
+
+ ;;
+
hpux)
# Set an ACL for a user.
irix)
# Set an ACL for a user.
- /sbin/chacl user:$auid:--x tmpfile0
+ /sbin/chacl user::rw-,group::---,other::---,user:$auid:--x tmpfile0
func_test_copy tmpfile0 tmpfile2
# Set an ACL for a group.
- /sbin/chacl user:$auid:--x,group:$agid:r-- tmpfile0
+ /sbin/chacl user::rw-,group::---,other::---,user:$auid:--x,group:$agid:r-- tmpfile0
func_test_copy tmpfile0 tmpfile3
# Set an ACL for other.
- /sbin/chacl user:$auid:--x,group:$agid:r--,other::r-- tmpfile0
+ /sbin/chacl user::rw-,group::---,user:$auid:--x,group:$agid:r--,other::r-- tmpfile0
func_test_copy tmpfile0 tmpfile4
# Remove the ACL for the user.
- /sbin/chacl group:$agid:r--,other::r-- tmpfile0
+ /sbin/chacl user::rw-,group::---,group:$agid:r--,other::r-- tmpfile0
func_test_copy tmpfile0 tmpfile5
- # Remove the ACL for other.
- /sbin/chacl group:$agid:r-- tmpfile0
-
- func_test_copy tmpfile0 tmpfile6
-
# Remove the ACL for the group.
- /sbin/chacl , tmpfile0
+ /sbin/chacl user::rw-,group::---,other::r-- tmpfile0
func_test_copy tmpfile0 tmpfile7