
HTMLページからそのCGIを叩くと『年月』の名前のディレクトリを作って、
その中に日毎のアクセスログファイルを作成するCGIを作っています。
ディレクトリを作成するパールは以下です。
mkdir($dir, 0777);
しかし実行すると$dirのパーミッションは755になってしまいます、
その中に作成されるファイルは正常に作成されるのですが、
そのディレクトリ/ファイル共にFTPから削除/パーミッションの変更が
出来なくなってしまいます。
telnetから入って削除しようとしても普通のユーザー権限では無理で
削除する為にはルートにならなければなりません。
なぜでしょう?FTPから操作できる権限のディレクトリを作る方法が
あるのでしょうか?
バカな質問だと思いますが分かる方がいらっしゃいましたら教えて下さい。
No.1ベストアンサー
- 回答日時:
これはCGIのせいではないと思います。
恐らくサーバーのOSの設定で新規ディレクトリを作成するときのパーミッションに制限がかけられているのでしょう。(初期状態でも何らかの制限はかかっていると思います)
そこで解決方法なのですが、新規作成時が駄目なら作成後にパーミッションを変更すれば良いのではないでしょうか。
例えば、
mkdir($dir, 0777);
chmod(0777,$dir);
といった感じでしょうか。
お試し下さい。
#万全を期すならchmodでリターン値を取りエラーチェックした方が良いでしょう。
返答遅くなって申し訳ないです。なんかせっかくいただいていた
ご返事の内容がメールで届いてなかったようで、見つけるまでに
時間がたってしまいました。
アクセスログの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;
-----------------------------------------
すると見事成功しました。これで今後このような仕様の仕事がきても
怖がらなくてすみそうです。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
batファイルでrenameができませ...
-
Windowsで複数のファイルを同じ...
-
ファイル名と更新日付の取得に...
-
C言語でファイル名を取得
-
dos変数の%~dp0は powershellで...
-
複数ファイルの読み込みについて
-
Net::FTPを使いファイル一覧の...
-
chdirがうまくできない
-
スクロールバーを左側に、又は...
-
vba dir の相対パス
-
CGIで日本語名ファイルのアップ...
-
readdir()で得られるファイル・...
-
makefileでファイルをコピー(...
-
close()で例外が投げられる理由
-
C言語で特定の行を抽出する方法...
-
エクセルVBA コードが同じでも...
-
VBAでCSVファイルを途中行まで...
-
Perlの変数に文字数制限(容量...
-
MATLAB グローバル変数の宣言
-
ファイルのロックについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
batファイルでrenameができませ...
-
Windowsで複数のファイルを同じ...
-
vba dir の相対パス
-
readdir()で得られるファイル・...
-
ディレクトリの判別
-
FindFirstFileとFindNextFileで...
-
パスから最後のディレクトリだ...
-
dos変数の%~dp0は powershellで...
-
C言語でファイル名を取得
-
Perlで フォルダ内の全て...
-
makefileでファイルをコピー(...
-
LinuxのC言語で、ファイル名の...
-
下のディレクトリ(3つ)に含ま...
-
正規表現で、特定のファイル名...
-
chdirがうまくできない
-
Net::FTPを使いファイル一覧の...
-
ディレクトリ名を取得したい
-
ディレクトリのファイル作成を...
-
空白を含むディレクトリにある...
-
ファイル名をデータとして取り...
おすすめ情報