#!/bin/sh # $Header: /xxx2.cgi /main/f2admintools/1 2000/12/06 15:54:0 bediger $ # Fully-qualified path names of certain key executables. # If PATH env var is unset by HTTP daemon, or by mistake, these need to # be fully qualified. May change from platform to platform. ENVPROG=/usr/bin/printenv if [ ! -x "$ENVPROG" ] then for DIR in /bin /usr/bin /usr/sbin do for FILE in printenv env do if [ -f $DIR/$FILE -a -x $DIR/$FILE ] then ENVPROG=$DIR/$FILE fi done done fi DATEPROG=/bin/date if [ ! -x "$DATEPROG" ] then DATEPROG=`which date 2>/dev/null` fi PWDPROG=/bin/pwd if [ ! -x "$PWDPROG" ] then PWDPROG=`which pwd 2>/dev/null` fi # what actually gets put on the output by the tty driver, eh? echo 'Content-type: text/html ' echo ' ' echo '
' if [ -n "$HTTP_REFERER" ] then REFERER=`basename $HTTP_REFERER` echo "' $UNAMEPROG -a echo '' fi if [ -n "$REMOTE_HOST" ] then echo "
' $NSLOOKUPPROG $REMOTE_HOST 2>&1 echo '' fi else echo '
' $NSLOOKUPPROG $REMOTE_ADDR 2>&1 echo '' fi fi IDPROG=`which id 2>/dev/null` WHOPROG=`which whoami 2>/dev/null` if [ -x "$IDPROG" -o -x "$WHOPROG" ] then echo '
id program ($IDPROG) says this ran as " `$IDPROG` "
" fi if [ -x "$WHOPROG" ] then echo "whoami program ($WHOPROG) says this ran as " `$WHOPROG` "
" fi # Try one more stunt to get additional identity information WHOPROG=`which who 2>/dev/null` if [ -x "$WHOPROG" ] then WHO=`$WHOPROG am i 2>/dev/null` if [ ! -z "$WHO" ] then echo "who am i says: $WHO
" fi fi fi echo 'pwd program ($PWDPROG) says working directory is "`$PWDPROG`"
" else echo "pwd program "$PWDPROG"
doesn't exist or is not marked executable" fi echo '' $LIMITPROG -a echo '' echo '
' $QUOTAPROG echo '' echo '
' $DUPROG -k -s echo '' echo '
'
for name in /proc/$$/fd/*
do
file $name
done
echo '' fi echo '
CGI-BIN program called as \"$0\"
" echo "" if [ $# -gt 0 ] then echo $* else echo "No arguments" fi echo "" echo '
| SERVER_SOFTWARE | $SERVER_SOFTWARE |
| SERVER_NAME | $SERVER_NAME |
| GATEWAY_INTERFACE | $GATEWAY_INTERFACE |
| SERVER_PROTOCOL | $SERVER_PROTOCOL |
| SERVER_PORT | $SERVER_PORT |
| REQUEST_METHOD | $REQUEST_METHOD |
| PATH_INFO | $PATH_INFO |
| PATH_TRANSLATED | $PATH_TRANSLATED |
| SCRIPT_NAME | $SCRIPT_NAME |
| QUERY_STRING | $QUERY_STRING |
| REMOTE_HOST | $REMOTE_HOST |
| REMOTE_ADDR | $REMOTE_ADDR |
| AUTH_TYPE | $AUTH_TYPE |
| REMOTE_USER | $REMOTE_USER |
| REMOTE_IDENT | $REMOTE_IDENT |
| CONTENT_TYPE | $CONTENT_TYPE |
| CONTENT_LENGTH | $CONTENT_LENGTH |
| HTTP_ACCEPT | $HTTP_ACCEPT |
| HTTP_USER_AGENT | $HTTP_USER_AGENT |
" if $ENVPROG 2>&1 then echo else echo "Printing environment variables failed: printenv returned \"$?\"" fi echo "" else echo "
Environment printing program \"$ENVPROG\" missing or not marked executable
" fi echo '" cat > /tmp/post_$$ cat /tmp/post_$$ echo "" echo '
' echo "
" #./url_decode.pl `cat /tmp/post_$$` cat /tmp/post_$$ | tr '&+' '\012 ' echo "" echo "" echo "
CONTENT_LENGTH is $CONTENT_LENGTH.
"
echo " Count of chars on stdin: " `cat /tmp/post_$$ | wc -c` '
QUERY_STRING is "$QUERY_STRING"
" echo '' echo "$QUERY_STRING" | tr '&+' '\012 ' #echo "" #./url_decode.pl "$QUERY_STRING" echo "" else echo "
No or zero-length QUERY_STRING
" fi TIMEOUT=`echo "$QUERY_STRING" | tr '&+' '\012 ' | grep 'timeout=' |sed 's/timeout=//'` else echo 'Sleeping for $TIMEOUT seconds
"
sleep $TIMEOUT
echo "