1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
#! /bin/sh
# Unreadable directories yielded error despite --ignore-failed-read.
. ./preset
. $srcdir/before
> check-uid
set - x`ls -l check-uid`
if test $3 = root; then
# The test is meaningless for super-user.
rm check-uid
else
touch file
mkdir directory
touch directory/file
echo 1>&2 -----
chmod 000 file
tar cf archive file
status=$?
chmod 600 file
test $status = 2 || exit 1
echo 1>&2 -----
chmod 000 file
tar cf archive --ignore-failed-read file || exit 1
status=$?
chmod 600 file
test $status = 0 || exit 1
echo 1>&2 -----
chmod 000 directory
tar cf archive directory
status=$?
chmod 700 directory
test $status = 2 || exit 1
echo 1>&2 -----
chmod 000 directory
tar cf archive --ignore-failed-read directory || exit 1
status=$?
chmod 700 directory
test $status = 0 || exit 1
err="\
-----
tar: Cannot add file file: Permission denied
tar: Error exit delayed from previous errors
-----
tar: Cannot add file file: Permission denied
-----
tar: Cannot add directory directory: Permission denied
tar: Error exit delayed from previous errors
-----
tar: Cannot add directory directory: Permission denied
"
fi
. $srcdir/after
|