Annotation of embedaddon/rsync/testsuite/dir-sgid.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 directory setgid. -- Matt McCutchen
! 7:
! 8: . $srcdir/testsuite/rsync.fns
! 9:
! 10: umask 077
! 11:
! 12: # Call as: testit <dirname> <dirperms> <file-expected> <program-expected> <dir-expected>
! 13: testit() {
! 14: todir="$scratchdir/$1"
! 15: mkdir "$todir"
! 16: chmod $2 "$todir"
! 17: # Make sure we obey directory setgid when creating a directory to hold multiple transferred files,
! 18: # even though the directory itself is outside the transfer
! 19: $RSYNC -rvv "$scratchdir/dir" "$scratchdir/file" "$scratchdir/program" "$todir/to/"
! 20: check_perms "$todir/to" $5 "Target $1"
! 21: check_perms "$todir/to/dir" $5 "Target $1"
! 22: check_perms "$todir/to/file" $3 "Target $1"
! 23: check_perms "$todir/to/program" $4 "Target $1"
! 24: }
! 25:
! 26: echo "File!" >"$scratchdir/file"
! 27: echo "#!/bin/sh" >"$scratchdir/program"
! 28: mkdir "$scratchdir/dir"
! 29: chmod 2764 "$scratchdir/dir" || test_skipped "Can't chmod"
! 30: chmod 664 "$scratchdir/file"
! 31: chmod 775 "$scratchdir/program"
! 32: [ -g "$scratchdir/dir" ] || test_skipped "The directory setgid bit vanished!"
! 33: mkdir "$scratchdir/dir/blah"
! 34: [ -g "$scratchdir/dir/blah" ] || test_skipped "Your filesystem doesn't use directory setgid; maybe it's BSD."
! 35:
! 36: # Test some target directories
! 37: testit setgid-off 700 rw------- rwx------ rwx------
! 38: testit setgid-on 2700 rw------- rwx------ rwx--S---
! 39:
! 40: # Hooray
! 41: exit 0
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>