プロが教えるわが家の防犯対策術!

Perl初心者です。現在、ユーザのホームディレクトリのディスク容量を
Webでチェックできるcgiを作成しています。
my (~,$home,~)= getpwnam($user);
でユーザのホームディレクトリを取得して、
use File::Find
で容量を計算するところまではなんとか動くようになったのですが、ユ
ーザのホームディレクトリのパーミッションによっては、計算できない
ことがわかりました。
ホームディレクトリのパーミッションが、dwrx--x--x(711)だと計算で
きないのです。dwrxr-xr-x(755)なら計算できます。ほとんどのユーザ
が711なので全く意味がありません。
調べてみると、作成したCGIの権限がnobodyであることがわかりました
がここで行き詰まってしまいました。
現在ログインしているユーザの権限でCGIを実行させる方法がありまし
たらお教えください。できれば、CGIの組み方で回避できれば嬉しいの
ですが、環境やパーミッションを変更しないといけないのでしょうか?
よろしくお願いします。

A 回答 (1件)

サーバーのセキュリティーを低下させるのでsetuid出来ないように


なっているところがほとんどです、確かrim netなんかはcgiスクリ
プトの実行権限がユーザー毎になっていたと思いますが、そのよう
なところでないと駄目でしょう。ちなみに、お望みのような事が出
来る回避方法がそのサーバーに公式に用意されたものでなければ、
その行為は一種のクラッキングです。
ところでなんで755とか705じゃいけないんですか?

marimo_cx

この回答への補足

回答ありがとうございます。
>ところでなんで755とか705じゃいけないんですか?
複数のユーザが、Web上で各々のユーザIDを入力することでディスク容量をチェックできるようにしたいのです。他ユーザのパーミッションを勝手に変更することができないのです。
ユーザホームディレクトリは、SunOsのファイルサーバに存在していてそれをLinux上で動くこのCGIでさせようようとしています。
root権限をもっていますので、サーバの設定を変更することは可能です。回答の中でSetuidはセキュリティが低下するとありますが、これを(いまはそれが何かわかりません)使用すれば、ユーザ権限でCGIを動作できるのでしょうか?Setuidについて調べてみようと思います。

補足日時:2001/01/30 12:34
    • good
    • 0
この回答へのお礼

回答ありがとうございました。ApacheのsuEXECを導入して試してみようと思います。汚染された変数等、問題が次々と...初心者の私には何がなんだか..?
一歩前進することが出来ました。ありがとうございます。

お礼日時:2001/02/01 11:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!