Annotation of embedaddon/rsync/testsuite/acls.test, revision 1.1.1.3

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 handles basic ACL preservation.
                      7: 
1.1.1.2   misho       8: . $suitedir/rsync.fns
1.1       misho       9: 
1.1.1.3 ! misho      10: $RSYNC --version | grep "[, ] ACLs" >/dev/null || test_skipped "Rsync is configured without ACL support"
1.1       misho      11: 
                     12: makepath "$fromdir/foo"
                     13: echo something >"$fromdir/file1"
                     14: echo else >"$fromdir/file2"
                     15: 
                     16: files='foo file1 file2'
                     17: 
                     18: case "$setfacl_nodef" in
                     19: true)
                     20:     if ! chmod --help 2>&1 | fgrep +a >/dev/null; then
                     21:        test_skipped "I don't know how to use setfacl or chmod for ACLs"
                     22:     fi
                     23:     chmod +a "root allow read,write,execute" "$fromdir/foo" || test_skipped "Your filesystem has ACLs disabled"
                     24:     chmod +a "root allow read,execute" "$fromdir/file1"
                     25:     chmod +a "admin allow read" "$fromdir/file1"
                     26:     chmod +a "daemon allow read,write" "$fromdir/file1"
                     27:     chmod +a "root allow read,execute" "$fromdir/file2"
                     28: 
                     29:     see_acls() {
                     30:        ls -le "${@}"
                     31:     }
                     32:     ;;
                     33: *)
                     34:     setfacl -m u:0:7 "$fromdir/foo" || test_skipped "Your filesystem has ACLs disabled"
                     35:     setfacl -m g:1:5 "$fromdir/foo"
                     36:     setfacl -m g:2:1 "$fromdir/foo"
                     37:     setfacl -m g:0:7 "$fromdir/foo"
                     38:     setfacl -m u:2:1 "$fromdir/foo"
                     39:     setfacl -m u:1:5 "$fromdir/foo"
                     40: 
                     41:     setfacl -m u:0:5 "$fromdir/file1"
                     42:     setfacl -m g:0:4 "$fromdir/file1"
                     43:     setfacl -m u:1:6 "$fromdir/file1"
                     44: 
                     45:     setfacl -m u:0:5 "$fromdir/file2"
                     46: 
                     47:     see_acls() {
                     48:        getfacl "${@}"
                     49:     }
                     50:     ;;
                     51: esac
                     52: 
                     53: cd "$fromdir"
                     54: $RSYNC -avvA $files "$todir/"
                     55: 
                     56: see_acls $files >"$scratchdir/acls.txt"
                     57: 
                     58: cd "$todir"
                     59: see_acls $files | diff $diffopt "$scratchdir/acls.txt" -
                     60: 
                     61: # The script would have aborted on error, so getting here means we've won.
                     62: exit 0

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