Zadani prikladu na osmem terminu UNIXu (15.6.2000)
Naprogramujte FTPMAIL
Jde vlastne o FTP server pracujici prostrednictvim mailu
Vy napisete prikazy mailem a on vam posle jejich vysledek.
server ma v urcite promenne zapsane uzivatele, kteri ho nesmeji pouzivat tvaru:
'jmeno jmeno jmeno ... jmeno' kde jmena jsou zacatky mailu (to pred @) a plati to
pro vsechny mozne maily s timto zacatkem
dale je v prostredi promenna FTPROOT, ktera obsahuje adresar, ktery je v ramci
ftpmailu bran jako zakladni (/), pricemz zadnym prikazem se nesmite dostat pod nej
tedy treba kdyz FTPROOT='/home/ftpmail', pak se nikdo nemuze dostat do /etc/passwd :-)
prikazy by to melo zvladat nasledujici:
cd (cesta) ... prejde do adresare cesta (bere se to v ramci FTPROOT)
get (jmeno soub. prip s cestou) ... posle po mailu soubor a to tak, ze ho zabali pomoci
uuencode (viz 1. termin) a vystup prida do tela zpat. mailu
mget (jmeno soub. prip s cestou ... to same jako get, ale soubor muse byt zadan i jako wildcard
tzn. napr /adr/*
rget (jmeno adresare) ... posle adresar, ktery si muzete zabalit tarem(ten to umi viz 1.termin)
a posle vam zase uuencodovanej soubor.
ls [cesta] ... posle vypis adresare
put (jmeno souboru) ... ulozi na server soubor, ktery je vypsan za timto prikazem
a to uuencodovanej.
na prvni radce je mimo jine:
BEGIN (mozno jine jmeno) (prava)
tedy puvodne to mohl byt jinej soubor, ale my ho chceme ulozit pod novym
nazvem.(prava nejsou dulezita, to si uudecode udela sam)
priklad:
kdyz napiseme mail takto:
cd ahoj
get nazdar
put cau
BEGIN hello rw-rw-rwx
HJGsakjhlkdsaf89734lksdficxhv89ew;fsdds
dfj;l0-fvbz;lckvbg9h54kcf;bi-df0ihg;kfg
fdjglsdkfjglkvjcbj;lfhj
END
tak vam ftpserver opdpovi treba
CD command successful
BEGIN nazdar rwxrwx---
dsfgalkdsjlkfasdjdsfsdfasdf87945tjfd6t4
lkjh43tvsdfLKHlkhLKZFHsdkfj897casih897Y
dsfklk
END
PUT command successful
Pricemz soubor, ktery vam vrati je FTPROOT/ahoj/nazdar
a soubor,k tery ste poslali se ulozi jako cau.
Avsak server musi zvladat i chyby, takze kdyz mu date blbej prikaz, tak vam na nej neodpovi.
Musi take zvladat vice uzivatelu najednou (pouzije se $$ pro odkladaci soubory)