Annotation of embedaddon/rsync/testsuite/default-acls.test, revision 1.1

1.1     ! misho       1: #! /bin/sh
        !             2: 
        !             3: # This program is distributable under the terms of the GNU GPL (see
        !             4: # COPYING).
        !             5: 
        !             6: # Test that rsync obeys default ACLs. -- Matt McCutchen
        !             7: 
        !             8: . $srcdir/testsuite/rsync.fns
        !             9: 
        !            10: $RSYNC --version | grep ", ACLs" >/dev/null || test_skipped "Rsync is configured without ACL support"
        !            11: 
        !            12: case "$setfacl_nodef" in
        !            13: true) test_skipped "I don't know how to use your setfacl command" ;;
        !            14: *-k*) opts='-dm u::7,g::5,o:5' ;;
        !            15: *) opts='-m d:u::7,d:g::5,d:o:5' ;;
        !            16: esac
        !            17: setfacl $opts "$scratchdir" || test_skipped "Your filesystem has ACLs disabled"
        !            18: 
        !            19: # Call as: testit <dirname> <default-acl> <file-expected> <program-expected>
        !            20: testit() {
        !            21:     todir="$scratchdir/$1"
        !            22:     mkdir "$todir"
        !            23:     $setfacl_nodef "$todir"
        !            24:     if [ "$2" ]; then
        !            25:        case "$setfacl_nodef" in
        !            26:        *-k*) opts="-dm $2" ;;
        !            27:        *) opts="-m `echo $2 | sed 's/\([ugom]:\)/d:\1/g'`"
        !            28:        esac
        !            29:        setfacl $opts "$todir"
        !            30:     fi
        !            31:     # Make sure we obey ACLs when creating a directory to hold multiple transferred files,
        !            32:     # even though the directory itself is outside the transfer
        !            33:     $RSYNC -rvv "$scratchdir/dir" "$scratchdir/file" "$scratchdir/program" "$todir/to/"
        !            34:     check_perms "$todir/to" $4 "Target $1"
        !            35:     check_perms "$todir/to/dir" $4 "Target $1"
        !            36:     check_perms "$todir/to/file" $3 "Target $1"
        !            37:     check_perms "$todir/to/program" $4 "Target $1"
        !            38:     # Make sure get_local_name doesn't mess us up when transferring only one file
        !            39:     $RSYNC -rvv "$scratchdir/file" "$todir/to/anotherfile"
        !            40:     check_perms "$todir/to/anotherfile" $3 "Target $1"
        !            41:     # Make sure we obey default ACLs when not transferring a regular file
        !            42:     $RSYNC -rvv "$scratchdir/dir/" "$todir/to/anotherdir/"
        !            43:     check_perms "$todir/to/anotherdir" $4 "Target $1"
        !            44: }
        !            45: 
        !            46: mkdir "$scratchdir/dir"
        !            47: echo "File!" >"$scratchdir/file"
        !            48: echo "#!/bin/sh" >"$scratchdir/program"
        !            49: chmod 777 "$scratchdir/dir"
        !            50: chmod 666 "$scratchdir/file"
        !            51: chmod 777 "$scratchdir/program"
        !            52: 
        !            53: # Test some target directories
        !            54: umask 0077
        !            55: testit da777 u::7,g::7,o:7 rw-rw-rw- rwxrwxrwx
        !            56: testit da775 u::7,g::7,o:5 rw-rw-r-- rwxrwxr-x
        !            57: testit da750 u::7,g::5,o:0 rw-r----- rwxr-x---
        !            58: testit da750mask u::7,u:0:7,g::7,m:5,o:0 rw-r----- rwxr-x---
        !            59: testit noda1 '' rw------- rwx------
        !            60: umask 0000
        !            61: testit noda2 '' rw-rw-rw- rwxrwxrwx
        !            62: umask 0022
        !            63: testit noda3 '' rw-r--r-- rwxr-xr-x
        !            64: 
        !            65: # Hooray
        !            66: exit 0

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>