Annotation of embedaddon/rsync/testsuite/chown.test, revision 1.1.1.1
1.1 misho 1: #! /bin/sh
2:
3: # Copyright (C) 2002 by Martin Pool <mbp@samba.org>
4:
5: # This program is distributable under the terms of the GNU GPL (see
6: # COPYING).
7:
8: # Test that when rsync is running as root and has -a it correctly sets
9: # the ownership of the destination.
10:
11: # We don't know what users will be present on this system, so we just
12: # use random numeric uids and gids.
13:
14: . "$suitedir/rsync.fns"
15:
16: case $0 in
17: *fake*)
18: $RSYNC --version | grep ", xattrs" >/dev/null || test_skipped "Rsync needs xattrs for fake device tests"
19: RSYNC="$RSYNC --fake-super"
20: TLS_ARGS="$TLS_ARGS --fake-super"
21: case "`xattr 2>&1`" in
22: *--list:*)
23: chown() {
24: own=$1
25: shift
26: xattr -s 'rsync.%stat' "100644 0,0 $own" "${@}"
27: }
28: ;;
29: *)
30: chown() {
31: own=$1
32: shift
33: setfattr -n 'user.rsync.%stat' -v "100644 0,0 $own" "${@}"
34: }
35: ;;
36: esac
37: ;;
38: *)
39: RSYNC="$RSYNC --super"
40: case `get_testuid` in
41: '') ;; # If "id" failed, try to continue...
42: 0) ;;
43: *) if [ -f /usr/bin/fakeroot ]; then
44: echo "Let's try re-running the script under fakeroot..."
45: exec /usr/bin/fakeroot /bin/sh "$0"
46: fi
47: ;;
48: esac
49: ;;
50: esac
51:
52: # Build some hardlinks
53:
54: mkdir "$fromdir"
55: name1="$fromdir/name1"
56: name2="$fromdir/name2"
57: echo "This is the file" > "$name1"
58: echo "This is the other file" > "$name2"
59:
60: chown 5000:5002 "$name1" || test_skipped "Can't chown (probably need root)"
61: chown 5001:5003 "$name2" || test_skipped "Can't chown (probably need root)"
62:
63: cd "$fromdir/.."
64: checkit "$RSYNC -aHvv from/ to/" "$fromdir" "$todir"
65:
66: # The script would have aborted on error, so getting here means we've won.
67: exit 0
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>