# Copyright (C) 2021 Jeremy Allison
if [ $# -lt 5 ]; then
- echo Usage: test_chdir_user.sh \
- --configfile=SERVERCONFFILE SMBCLIENT SMBCONTROL SERVER SHARE
-exit 1
+ echo Usage: test_chdir_user.sh \
+ --configfile=SERVERCONFFILE SMBCLIENT SMBCONTROL SERVER SHARE
+ exit 1
fi
-CONF=$1; shift 1
-SMBCLIENT=$1; shift 1
-SMBCONTROL=$1; shift 1
-SERVER=$1; shift 1
-SHARE=$1; shift 1
+CONF=$1
+shift 1
+SMBCLIENT=$1
+shift 1
+SMBCONTROL=$1
+shift 1
+SERVER=$1
+shift 1
+SHARE=$1
+shift 1
# Do not let deprecated option warnings muck this up
SAMBA_DEPRECATED_SUPPRESS=1
log_file=${conf_dir}/../smbd_test.log
error_inject_conf=${conf_dir}/error_inject.conf
-> ${error_inject_conf}
+>${error_inject_conf}
incdir=$(dirname $0)/../../../testprogs/blackbox
. $incdir/subunit.sh
rm -f smbclient-stdin smbclient-stdout smbclient-stderr
mkfifo smbclient-stdin smbclient-stdout smbclient-stderr
-CLI_FORCE_INTERACTIVE=1; export CLI_FORCE_INTERACTIVE
+CLI_FORCE_INTERACTIVE=1
+export CLI_FORCE_INTERACTIVE
${SMBCLIENT} //${SERVER}/${SHARE} ${CONF} -U${USER}%${PASSWORD} \
- < smbclient-stdin > smbclient-stdout 2>smbclient-stderr &
+ <smbclient-stdin >smbclient-stdout 2>smbclient-stderr &
CLIENT_PID=$!
# Count the number of chdir_current_service: vfs_ChDir.*failed: Permission denied
# errors that are already in the log (should be zero).
-num_errs=`grep "chdir_current_service: vfs_ChDir.*failed: Permission denied" ${log_file} | wc -l`
+num_errs=$(grep "chdir_current_service: vfs_ChDir.*failed: Permission denied" ${log_file} | wc -l)
sleep 1
head -n 4 <&101
# Ensure any chdir will give EACCESS.
-echo "error_inject:chdir = EACCES" > ${error_inject_conf}
+echo "error_inject:chdir = EACCES" >${error_inject_conf}
${SMBCONTROL} ${CONF} 0 reload-config
sleep 1
rm -f smbclient-stdin smbclient-stdout smbclient-stderr
# Remove the chdir inject.
-> ${error_inject_conf}
+>${error_inject_conf}
${SMBCONTROL} ${CONF} 0 reload-config
# Now look for chdir_current_service: vfs_ChDir.*failed: Permission denied
# in the smb log. There should be one more than before.
-num_errs1=`grep "chdir_current_service: vfs_ChDir.*failed: Permission denied" ${log_file} | wc -l`
+num_errs1=$(grep "chdir_current_service: vfs_ChDir.*failed: Permission denied" ${log_file} | wc -l)
testit "Verify we got at least one chdir error" \
- test $num_errs1 -gt $num_errs || failed=$(expr $failed + 1)
+ test $num_errs1 -gt $num_errs || failed=$(expr $failed + 1)
testok $0 $failed