※ ChatGPTを利用し、要約された質問です(原文:perl(CGI)から作成したディレクトリがFTPで消せないのはなぜ?)
perl(CGI)から作成したディレクトリがFTPで消せないのはなぜ?
このQ&Aのポイント
HTMLページからCGIを叩くとディレクトリが作成され、アクセスログファイルも正常に作成されますが、FTPからの削除やパーミッション変更ができません。
telnetで入っても通常のユーザー権限では削除できず、ルート権限が必要です。
なぜperl(CGI)から作成されたディレクトリはFTPから操作できないのか、FTPで操作可能な権限のディレクトリを作成する方法があるのか知りたいです。
perl(CGI)から作成したディレクトリがFTPで消せないのはなぜ?
HTMLページからそのCGIを叩くと『年月』の名前のディレクトリを作って、
その中に日毎のアクセスログファイルを作成するCGIを作っています。
ディレクトリを作成するパールは以下です。
mkdir($dir, 0777);
しかし実行すると$dirのパーミッションは755になってしまいます、
その中に作成されるファイルは正常に作成されるのですが、
そのディレクトリ/ファイル共にFTPから削除/パーミッションの変更が
出来なくなってしまいます。
telnetから入って削除しようとしても普通のユーザー権限では無理で
削除する為にはルートにならなければなりません。
なぜでしょう?FTPから操作できる権限のディレクトリを作る方法が
あるのでしょうか?
バカな質問だと思いますが分かる方がいらっしゃいましたら教えて下さい。
お礼
返答遅くなって申し訳ないです。なんかせっかくいただいていた ご返事の内容がメールで届いてなかったようで、見つけるまでに 時間がたってしまいました。 アクセスログのCGIは無理矢理月毎に1枚のファイルにするように 仕様変更され納品しました。ただこの問題はその後もずっと気に かかっていていました。 以下のperlで試してみました。 ----------------------------------------- #!/usr/local/bin/perl $dir = 'data'; mkdir($dir, 0777); chmod(0777,$dir); $txt = 'test'; $file = "$dir/test.dat"; open(OUT, ">$file"); print OUT "$txt"; close(OUT); print "Content-type: text/html\n\n"; print "test OK!"; exit; ----------------------------------------- すると見事成功しました。これで今後このような仕様の仕事がきても 怖がらなくてすみそうです。 本当にありがとうございました。