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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba dir の相対パス
-
batファイルでrenameができませ...
-
ディレクトリ名を取得したい
-
基本的な質問・・・(パスにつ...
-
パスから最後のディレクトリだ...
-
ディレクトリの判別
-
ExcelをCSV書き出す場合のシー...
-
エクセルVBA コードが同じでも...
-
close()で例外が投げられる理由
-
VBAでCSVファイルを途中行まで...
-
window.open でのファイル指定方法
-
バッチファイルの作り方(CSV→...
-
XML::Parserの parsefileの結果...
-
VBAで巨大なファイルの途中から...
-
VBAでCSVファイルの特定行を書...
-
fgets で値が取得できない
-
ADOによるCSVファイルからのデ...
-
タブの色を変更する方法
-
DOSコマンドで、標準出力を出力...
-
圧縮された.tgzファイルの一部...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
batファイルでrenameができませ...
-
Windowsで複数のファイルを同じ...
-
vba dir の相対パス
-
FindFirstFileとFindNextFileで...
-
readdir()で得られるファイル・...
-
パスから最後のディレクトリだ...
-
ディレクトリ名を取得したい
-
Perlで フォルダ内の全て...
-
dos変数の%~dp0は powershellで...
-
LinuxのC言語で、ファイル名の...
-
ディレクトリの判別
-
複数ファイルの読み込みについて
-
ファイル名の変更
-
Director拡張子
-
makefileでファイルをコピー(...
-
C言語でファイル名を取得
-
ディレクトリのファイル作成を...
-
メタ文字の取り扱い
-
下のディレクトリ(3つ)に含ま...
-
指定ファイル内の一部内容を抽...
おすすめ情報