mirror of
https://github.com/samba-team/samba.git
synced 2025-01-06 13:18:07 +03:00
53c6f2fe91
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
62 lines
1.5 KiB
Bash
Executable File
62 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# Blackbox test for fetching a large ACL
|
|
#
|
|
|
|
if [ $# -lt 5 ]; then
|
|
cat <<EOF
|
|
Usage: $0 SERVER USERNAME PASSWORD SMBCLIENT SMBCACLS PARAMS
|
|
EOF
|
|
exit 1
|
|
fi
|
|
|
|
SERVER=${1}
|
|
USERNAME=${2}
|
|
PASSWORD=${3}
|
|
SMBCLIENT=${4}
|
|
SMBCACLS=${5}
|
|
shift 5
|
|
ADDARGS="$*"
|
|
SMBCLIENT="$VALGRIND ${SMBCLIENT} ${ADDARGS}"
|
|
SMBCACLS="$VALGRIND ${SMBCACLS} ${ADDARGS}"
|
|
|
|
incdir=$(dirname $0)/../../../testprogs/blackbox
|
|
. $incdir/subunit.sh
|
|
|
|
cd $SELFTEST_TMPDIR || exit 1
|
|
|
|
# build a file to work with
|
|
build_files()
|
|
{
|
|
touch large_acl
|
|
$SMBCLIENT //$SERVER/acl_xattr_ign_sysacl_windows -U $USERNAME%$PASSWORD -c 'put large_acl' >/dev/null 2>&1
|
|
rm -rf large_acl >/dev/null
|
|
}
|
|
|
|
cleanup()
|
|
{
|
|
$SMBCLIENT //$SERVER/acl_xattr_ign_sysacl_windows -U $USERNAME%$PASSWORD -c 'rm large_acl' >/dev/null 2>&1
|
|
}
|
|
|
|
build_files
|
|
|
|
test_large_acl()
|
|
{
|
|
#An ACL with 200 entries, ~7K
|
|
new_acl=$(seq 1001 1200 | sed -r -e '1 i\D:(A;;FA;;;WD)' -e 's/(.*)/(A;;FA;;;S-1-5-21-11111111-22222222-33333333-\1)/' | tr -d '\n')
|
|
$SMBCACLS //$SERVER/acl_xattr_ign_sysacl_windows -U $USERNAME%$PASSWORD --sddl -S $new_acl large_acl
|
|
actual_acl=$($SMBCACLS //$SERVER/acl_xattr_ign_sysacl_windows -U $USERNAME%$PASSWORD --sddl --numeric large_acl 2>/dev/null | sed -rn 's/.*(D:.*)/\1/p' | tr -d '\n')
|
|
if [ ! "$new_acl" = "$actual_acl" ]; then
|
|
echo -e "expected:\n$new_acl\nactual:\n$actual_acl\n"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
failed=0
|
|
|
|
testit "able to retrieve a large ACL if VFS supports it" test_large_acl || failed=$(expr $failed + 1)
|
|
|
|
cleanup
|
|
|
|
exit $failed
|