File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / rsync / testsuite / dir-sgid.test
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Mon Oct 14 07:51:15 2013 UTC (10 years, 8 months ago) by misho
Branches: rsync, MAIN
CVS tags: v3_1_2p5, RSYNC3_1_0, HEAD
v 3.1.0

    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: . $suitedir/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 u=rwx,g=rw,g+s,o=r "$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 u=rwx,g=rw,g+s,o-rwx rw------- rwx------ rwx--S---
   39: 
   40: # Hooray
   41: exit 0

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