#!/bin/sh set -e cd $(dirname $0) . ../../common/config.sh . ../../common/log.sh cat > /tmp/shadow_test_wrap << "EOF" #!/bin/sh whoami echo args: "$@" EOF chmod 755 /tmp/shadow_test_wrap log_start "$0" "Running commands: su -c '/tmp/shadow_test_wrap \$1 \$2 \$3' - -- first second third" save_config # restore the files on exit trap 'log_status "$0" "FAILURE"; restore_config' 0 change_config echo "/bin/su -c '/tmp/shadow_test_wrap \$1 \$2 \$3' - -- first second third > tmp/out 2> tmp/err" /bin/su -c '/tmp/shadow_test_wrap $1 $2 $3' - -- first second third > tmp/out 2> tmp/err echo "su reported:" echo "=== stdout ===" cat tmp/out echo "=== stderr ===" cat tmp/err echo "==============" echo -n "Checking tmp/out..." diff -au data/rootuser.out tmp/out rm -f tmp/out echo "OK" echo -n "Checking tmp/err..." [ "$(wc -c tmp/err)" = "0 tmp/err" ] || false rm -f tmp/err echo "OK" log_status "$0" "SUCCESS" restore_config trap '' 0