ファイル名の変更ができない

[上に] [前に] [次に]
ぷよママ [E-Mail] 1998/04/06(月) 22:37:15
Perlでファイルの削除と名称変更をしたいと思います。
まず、ファイル1を削除し、次にファイル2のファイル名をファイル1に変更したいのですが、
ファイル名変更ができないのです。なにが悪いのでしょうか?
以下

unlink  $FNAME1;
rename( $FNAME2, $FNAME1 );

B-Cus 1998/04/06(月) 23:17:15
ファイル名変更ができないのです。なにが悪いのでしょうか?
> unlink $FNAME1;
> rename( $FNAME2, $FNAME1 );

unlinkとrenameのどっちがうまくいかないんですか?
ちゃんと問題を切り分けましょう。

chmod 0777 $FNAME1;
chmod 0777 $FNAME2;
unlink $FNAME1;
rename( $FNAME2, $FNAME1 );

だとどうなりますか。これでうまくいくならパーミッションの
問題でしょう。

もしダメなら、telnetでログインしてコマンドラインからCGIを実行して
ください。これがうまくいった場合は、CGIがnobody権限で実行
されているのかもしれません。
# どの権限で実行されているかは system("/usr/bin/whoami");
# でわかります。

もしnobodyで実行されているなら…どーしよっかな。

1. CでCGIを書いてsetuidビットを立てる。
2. パーミッション777のディレクトリを作ってその中でファイルを扱う。

のどちらかでしょうね。簡単なのは2でしょうか。ただし2はセキュリティ
ホールとになりかねないので取り扱いは慎重に。

3. プロバイダにCGIを所有者の権限で動かす方法があるか質問する。

ってのもありかな。

[上に] [前に] [次に]