- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:perl(CGI)から作成したディレクトリがFTPで消せないのはなぜ?)
perl(CGI)から作成したディレクトリがFTPで消せないのはなぜ?
このQ&Aのポイント
- HTMLページからCGIを叩くとディレクトリが作成され、アクセスログファイルも正常に作成されますが、FTPからの削除やパーミッション変更ができません。
- telnetで入っても通常のユーザー権限では削除できず、ルート権限が必要です。
- なぜperl(CGI)から作成されたディレクトリはFTPから操作できないのか、FTPで操作可能な権限のディレクトリを作成する方法があるのか知りたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
これはCGIのせいではないと思います。 恐らくサーバーのOSの設定で新規ディレクトリを作成するときのパーミッションに制限がかけられているのでしょう。(初期状態でも何らかの制限はかかっていると思います) そこで解決方法なのですが、新規作成時が駄目なら作成後にパーミッションを変更すれば良いのではないでしょうか。 例えば、 mkdir($dir, 0777); chmod(0777,$dir); といった感じでしょうか。 お試し下さい。 #万全を期すならchmodでリターン値を取りエラーチェックした方が良いでしょう。
その他の回答 (1)
- natural
- ベストアンサー率37% (419/1115)
回答No.2
No.1の内容は試されましたか? もしうまくいかない様でしたら補足をお願いします。
お礼
返答遅くなって申し訳ないです。なんかせっかくいただいていた ご返事の内容がメールで届いてなかったようで、見つけるまでに 時間がたってしまいました。 アクセスログの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; ----------------------------------------- すると見事成功しました。これで今後このような仕様の仕事がきても 怖がらなくてすみそうです。 本当にありがとうございました。