Annotation of embedaddon/rsync/testsuite/dir-sgid.test, revision 1.1.1.2

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: 
1.1.1.2 ! misho       8: . $suitedir/rsync.fns
1.1       misho       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"
1.1.1.2 ! misho      29: chmod u=rwx,g=rw,g+s,o=r "$scratchdir/dir" || test_skipped "Can't chmod"
1.1       misho      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------
1.1.1.2 ! misho      38: testit setgid-on u=rwx,g=rw,g+s,o-rwx rw------- rwx------ rwx--S---
1.1       misho      39: 
                     40: # Hooray
                     41: exit 0

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