Esta é uma solução que só precisa de bash e netcat (versão tradicional). Provavelmente é muito inseguro, mas para um usuário confiável, provavelmente funciona.
Coloque este script em webscript.sh
.
#!/bin/bash
file="wantedfile.html"
host="localhost"
while [ true ]
do
read a
a='echo ${a} | sed 's/\r//''
if [ "${a}" == "" ]
then
break
fi
command='echo ${a} | grep Host:'
if [ "${command}" != "" ]
then
host='echo ${a} | awk '{ print $2 }''
fi
done
len='ls -la ${file} | awk '{ print $5 }''
echo "HTTP/1.1 200 OK"
echo "Host: ${host}"
echo "Content-Length: ${len}"
echo ""
cat ${file}
rm ${file}
Então você só precisa usar o netcat:
nc.traditional -e 'webscript.sh' -l -p 80