mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
9860712610
Explicitly specify the xattr namespace required for tests. This allows tests to be skipped correctly for filesystems that don't support all xattr namespaces. This changes all tests that require anything other than the "user" xattr namespace. When called without arguments as before, _require_attrs() still defaults to the "user" namespace, so those tests do not need to be changed. Signed-off-by: Frank van der Linden <fllinden@amazon.com> Reviewed-by: Eryu Guan <guaneryu@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
82 lines
1.7 KiB
Bash
Executable File
82 lines
1.7 KiB
Bash
Executable File
#! /bin/bash
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
# Copyright (c) 2000-2004 Silicon Graphics, Inc. All Rights Reserved.
|
|
# Copyright (c) 2017 Google, Inc. All Rights Reserved.
|
|
#
|
|
# FS QA Test No. 093
|
|
#
|
|
# Test clearing of capabilities on write.
|
|
#
|
|
seq=`basename $0`
|
|
seqres=$RESULT_DIR/$seq
|
|
|
|
here=`pwd`
|
|
tmp=/tmp/$$
|
|
status=1 # FAILure is the default!
|
|
trap "_cleanup; exit \$status" 0 1 2 3 15
|
|
|
|
# get standard environment, filters and checks
|
|
. ./common/rc
|
|
. ./common/filter
|
|
. ./common/attr
|
|
|
|
_cleanup()
|
|
{
|
|
[ -n "$TEST_DIR" ] && rm -f $file
|
|
}
|
|
|
|
filefilter()
|
|
{
|
|
sed -e "s#$file#file#"
|
|
}
|
|
|
|
# real QA test starts here
|
|
_supported_fs generic
|
|
_supported_os Linux
|
|
|
|
_require_test
|
|
_require_attrs security
|
|
_require_user
|
|
_require_test_program "writemod"
|
|
_require_command "$SETCAP_PROG" "setcap"
|
|
_require_command "$GETCAP_PROG" "getcap"
|
|
|
|
rm -f $seqres.full
|
|
|
|
echo "QA output created by $seq"
|
|
echo ""
|
|
file=$TEST_DIR/$seq.file
|
|
|
|
rm -f $file
|
|
touch $file
|
|
|
|
echo "**** Verifying that appending to file clears capabilities ****"
|
|
$SETCAP_PROG cap_chown+ep $file
|
|
$GETCAP_PROG $file | filefilter
|
|
echo data1 >> $file
|
|
cat $file
|
|
$GETCAP_PROG $file | filefilter
|
|
echo
|
|
|
|
echo "**** Verifying that appending to file doesn't clear other xattrs ****"
|
|
$SETCAP_PROG cap_chown+ep $file
|
|
$SETFATTR_PROG -n trusted.name -v value $file
|
|
echo data2 >> $file
|
|
cat $file
|
|
_getfattr -m '^trusted\.*' --absolute-names $file | filefilter
|
|
|
|
echo "**** Verifying that chmod doesn't affect open file descriptors ****"
|
|
rm -f $file
|
|
touch $file
|
|
chown $qa_user $file
|
|
chmod ugo+w $TEST_DIR
|
|
# don't use $here/src/writemod, as we're running it as a regular user, and
|
|
# $here may contain path component that a regular user doesn't have search
|
|
# permission
|
|
su $qa_user -c "src/writemod $file" | filefilter
|
|
cat $file
|
|
|
|
# success, all done
|
|
status=0
|
|
exit
|