• ベストアンサー

Webからアクセスし、画面のボタンを押すとサーバーで任意のスクリプトが起動するというようなことはできるのでしょうか。

RHL9.0でApache2.0を使用しています。 サーバーに今test.shというシェルスクリプトがあります。これは例えばあるファイルをあるディレクトリ以下に作成してパーミッションや所有者を変更したりできるものです。 taroさんがブラウザから/cgi-bin/change.cgiというページにアクセスして、自分のアカウントをテキストボックスに入れて実行のボタンを押すと、上記のスクリプトが実行され、所有者がtaroさんになるというようなことは可能でしょうか。 要するにcgiでUNIXのコマンドやスクリプトを実行させたいと言うことなのですが。単にcgiスクリプトの中に system("/…/test.sh 引数");と書いても実行してくれませんでした。 あと、テキストボックスに入力したテキストをtest.shの引数とすることも可能でしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • dietnma2
  • ベストアンサー率36% (7/19)
回答No.2

できるでしょう。 どこまで、分かっておられるのか、 文面では、分からないのでなんですが。 <form name="myform" action="change.cgi" method="POST"> アカウント:<input type="text" name ="id" value=""> </input> </form> こんな感じですか? 参考URLにもあるように、webでは、methodにより、 受け渡し方法が若干違います。 参考にすれば、idはとれますね。 test.shは、実行権限があるでしょうか? ないなら、system("/bin/sh /…/test.sh 引数"); と、やらないといけないですね。

参考URL:
http://www2.osk.3web.ne.jp/~nkon/3web/perl/tutorial/ex1.html
daipot
質問者

お礼

ありがとうございます。参考になりました。

その他の回答 (1)

  • estea
  • ベストアンサー率44% (39/87)
回答No.1

setuidすれ。 せいぜいセキュリティーにはお気お付け遊ばせ http://x68000.startshop.co.jp/~68user/unix/pickup?setuid http://x68000.startshop.co.jp/~68user/webcgi/permission.html#4

daipot
質問者

お礼

ありがとうございます。setuidはできたみたいなのですが、Taint検索で引っかかってるみたいで実行ができませんでした。しかし、あともう少しのようです。