В общем, есть недоинтерпрататор
do_ftp_server(){
AUTH=0 #1- принят логин, 2- принят пароль
STAT=220;
usr=fftp;
pass=lol;
echo Vvedite comandu>fifo
do_user(){
if [ "$1" = "$usr" ]
then
STAT=330
AUTH=1
echo "$STAT Login is right, print a password">fifo
else
STAT=501
echo "$STAT Print USER fftp">fifo
fi
}
do_pasv(){
if [ "$1" = "$pass" ]
then
STAT=230
AUTH=2
echo "$STAT Login successful">fifo
else
STAT=501
echo "$STAT Print PASV anonymous">fifo
fi
}
do_quit(){
STAT=221
AUTH=0
echo "$STAT Goodbye">fifo
}
clean(){
echo "$1" | sed -e s/\n//
}
do_retr(){
ls | while read x
do
if [ "$1" = "$x" ]
then
cat "$1" | nc 192.168.0.100 5601 #клиент должен подключиться к ( например порту nc -l 5601)
break
fi
done
}
while read cmd args
do
cmd=$( clean "$cmd")
args=$( clean "$args")
case "$AUTH"_"$STAT"_"$cmd" in
0_*_USER) do_user "$args" ;;
1_*_PASV) do_pasv "$args" ;;
2_23*_RETR) do_retr "$args" ;;
*_*_HELP) echo "USER PASV HELP, use it">fifo ;;
1_*_QUIT) do_quit ;;
2_*_QUIT) do_quit ;;
esac
done
}
cat fifo | nc -l 8080 | do_ftp_server>fifo
Нужно реализовать вход и передачу запрашиваемого файла, А теперь сама суть- не могу написать нормальный коннект для сервера. Например, на одном терминале запускаю сервак, на другом пишу telnet localhost 8080, у меня к серверу подключается, но если я пишу какие-нибудь команды, то они просто выводятся на серваке и никаких действий со стороны сервака. Искал туеву хучу времени как это сделать в инете- ноль результатов. Помогите плз!