- 締切済み
サーバー(UNIX)上のフォルダを表示したい
↓こんな感じでフォルダ表示させるCGIを配布してるところはないでしょうか http://skyline.skr.jp/sozai/set/?N=D 注:表示させるのは自分が使ってるプロバイダ上での話しです セキュリティ上好ましくないの承知してます 使ってるプロバイダはインフォシークです
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- umasikajiro
- ベストアンサー率67% (545/803)
たびたび、すみません >755 になっているか確認してください 通常のotherでCGIが動く場合は705で良いのですが グループ権限で動く場合が稀にあるようで、その場合は 755にする必要があります Suexecの場合はユーザー権限でCGIが動きますので701でディレクトリ内の一覧が取得できます
- umasikajiro
- ベストアンサー率67% (545/803)
ではヘッダ出力の下に1行追加して print"Content-type: text/html; charset=Shift_JIS\n\n"; open(STDERR, ">&STDOUT"); # <=この行を追加 print"<html>\n"; としてからアクセスしてみてください ----------- pwd: cannot open directory `..': Permission denied [Index Of ] ls: *.htm*: No such file or directory ls: *.shtm*: No such file or directory ls: *.txt: No such file or directory ----------- となりませんか? もしそうならディレクトリのパーミッションが 755 になっているか確認してください ディレクトリのパーミッションが701だとおっしゃるようなことになります(Suexecなら701で全然OKだが) また、この場合は外部コマンドではなくperlのみでディレクトリ内のfile一覧を得ようとしても出来ません また pwd の方は その上位のディレクトリも755にする必要がありますが そちらの方は環境変数 $ENV{'REQUEST_URI'} $ENV{'SCRIPT_FILENAME'} $ENV{'SCRIPT_NAME'} などからも取得できますのでね
- umasikajiro
- ベストアンサー率67% (545/803)
#! /usr/bin/perl print"Content-type: text/html; charset=Shift_JIS\n\n"; print"<html>\n"; print"<body>\n"; $pwd= `pwd`; $pwd =~m|[^/]*$|; print"<h1> [Index Of $& ] </h1>\n"; ## .htm .html .shtml .txt のみを表示する場合 foreach(split("\n",`ls -l *.htm* *.shtm* *.txt`)){ split(/\s+/,$_); print "$_[4] $_[5] $_[6] $_[7] $_[8] <BR>\n";# この書式はお好みで変える } __END__ スマートな書き方じゃないけど、、取り敢えず
お礼
ありがとうございます。 1行目だけ書き直して実行しましたが どうやらインフォシークではperlからのコマンド呼び出しが実行できないみたいでpwdとlsが効きませんで 表示されたのは[Index Of ]だけでした。 リスティング機能があるのにわざわざCGIでやる人も 居ないのかもしれませんね。
- a-saitoh
- ベストアンサー率30% (524/1722)
これはcgiではなく、apache(とかNCSA htttpdとか)がもともと持っている機能です。 .htaccessなどに Options Indexes と書いきます。この状態で、 / で終わるURLが指定されるとファイルリスティングが返されます。 インフォシークのWWWサーバでこの機能が使えないのなら、同等なことをcgiで行わないといけなくなりますが。。。
お礼
早々にありがとうございます。 インフォシークではデフォルトでファイルリスティングできないようになってます。 なのでcgiで行いたいと思いまして探したのですが 画像をサムネイルで表示とかならあるのですが 単純な一覧というのがありませんでした。
お礼
回答どうもです フォルダ、ファイル属性は共に755にして 実行すると以下のものが表示されました。 sh: ls: not found やはり、他の方法を探すしかないようです