[1] | 1 | #!/bin/sh |
---|
| 2 | #file=ftp_index |
---|
| 3 | #ftp_index for root interactive ftp, |
---|
| 4 | #ftp_index?[/]name/rep2/..../repn/ for subdirectory interactive ftp, |
---|
| 5 | #ftp_index?[/]name/rep2/repn/file[+[download|display]] for file direct ftp. |
---|
| 6 | #1.-IF PRESENT, THE DIRECTORY/FILE ARGUMENT SHOULD BE SEPARATED |
---|
| 7 | #FROM THE COMMAND WITH A `?'. |
---|
| 8 | #2-IF PRESENT, THE DIRECTORY/FILE ARGUMENT SHOULD START WITH A NAME |
---|
| 9 | #FOUND IN THE FTP.CONF FILE : |
---|
| 10 | #THE ROOT DIRECTORY FOR THIS NAME IS THEN SUBSITUTED |
---|
| 11 | #AND APPLIED TO THE MATCHING HOST AND USER. |
---|
| 12 | #3.-A DIRECTORY SPECIFICATION SHOULD END WITH ONE "/", |
---|
| 13 | #A FILE SPECIFICATION SHOULD NOT. |
---|
| 14 | # |
---|
| 15 | conf=/usr/local/etc/httpd/adm/conf/ftpgeisa.conf |
---|
| 16 | if [ -n "$1" ];then #ftp?dir|file |
---|
| 17 | if [ `expr "$1" : ".*/$"` -ne 0 ];then isdir=1; set `expr "$1" : "/*\(.*\)/"`; fi |
---|
| 18 | name=`expr "$1" : "/*\([^/]*\)"` |
---|
| 19 | line=`grep "^[ | ]*$name/*" $conf` |
---|
| 20 | name=`expr "$line" : "[ | ]*\([^ |^ ]*\)"` |
---|
| 21 | host=`expr "$line" : "[ | ]*[^ |^ ]*[ | ]*\([^ |^ ]*\)"` |
---|
| 22 | user=`expr "$line" : "[ | ]*[^ |^ ]*[ | ]*[^ |^ ]*[ | ]*\([^ |^ ]*\)"` |
---|
| 23 | root=`expr "$line" : "[ | ]*[^ |^ ]*[ | ]*[^ |^ ]*[ | ]*[^ |^ ]*[ | ]*\([^ |^ ]*\)"` |
---|
| 24 | dir=$root/`expr "$1" : "/*[^/]*/*\(.*\)"` |
---|
| 25 | HTTP_REFERER=1 |
---|
| 26 | export HTTP_REFERER |
---|
| 27 | if [ -z "$isdir" ];then #file |
---|
| 28 | ftp_file $host $user `dirname $dir` `basename $dir` 0 $2 |
---|
| 29 | else |
---|
| 30 | ftp_dir $host $user $dir $1 $root |
---|
| 31 | fi |
---|
| 32 | exit 0 |
---|
| 33 | fi |
---|
| 34 | echo content-type: text/html |
---|
| 35 | echo |
---|
| 36 | echo "<html><head><title>Index of /ftp</title></head><body><h1><img src=/icons-ftpgeisa/ftp.gif89><br><br>Index of /</h1>" |
---|
| 37 | echo "<pre> Name<hr>" |
---|
| 38 | { |
---|
| 39 | while read n h u d; do [ -z "$n" -o `expr "$n" : "#"` -ne 0 ]&&continue |
---|
| 40 | #root=$r=$5 is required only if $d doesn't start with `/' |
---|
| 41 | if [ `expr "$d" : '\/'` -ne 0 ];then r=+$d; else r=; fi |
---|
| 42 | echo "<a name=$n href=/cgi-ftpgeisa/ftp_dir?$h+$u+$d+$n$r><img src=/icons-ftpgeisa/menu.gif alt=[DIR] border=0> $n</a>" |
---|
| 43 | done |
---|
| 44 | } < $conf |
---|
| 45 | echo "</pre></body></html>" |
---|