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で質問しましょう!
似たような質問が見つかりました
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- UNIX・Linux JSLinuxについて。 Linuxのこの手順のプログラミングは合っているでしょうか。 ①ホームディ 2 2022/06/20 15:33
- AJAX RPA(PowerAutomate)の実装について 1 2023/07/31 13:46
- PHP ファイルアップロードに関してのセキュリティについてアドバイスお願い致します 1 2023/08/20 00:25
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
- その他(開発・運用・管理) フォルダの中にファルダを作成してファイルを格納するバッチコマンド 1 2022/06/30 11:39
- UNIX・Linux Linuxについて質問です。 以下のような設定をしたMakefileを作成するにはどう記述すればよい 1 2023/02/03 20:10
- Excel(エクセル) 2つのマクロを連続して動かしたい 3 2022/09/20 23:46
- フリーソフト サイトで使用していない画像ファイルの削除ソフトを探しています。 3 2023/04/05 10:49
- UNIX・Linux ubuntuのサーバー(virtual box)が、再起動するとデータが消えてしまいます。 4 2022/04/27 21:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
batファイルでrenameができませ...
-
vba dir の相対パス
-
一定時間が経過したフォルダの削除
-
readdir()で得られるファイル・...
-
Windowsで複数のファイルを同じ...
-
VBAコードを張り付け後のエクセ...
-
バッチファイルの作り方(CSV→...
-
close()で例外が投げられる理由
-
MATLABのm-fileについて
-
文字列をカウントする方法
-
至急お願いします。C言語で.img...
-
JavaでCSVファイルを高速に読む...
-
画像アップロード機能を追加し...
-
csvファイルの横方向への改行に...
-
Perlで特定行から特定行までを...
-
【エクセル】改行無しテキスト...
-
perlのエディタでおすすめを教...
-
フォルダ内のファイルを全て開...
-
PICでFatFsでオープンした内容...
-
VBAでCSVファイルの特定行を書...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
batファイルでrenameができませ...
-
FindFirstFileとFindNextFileで...
-
ディレクトリの判別
-
Windowsで複数のファイルを同じ...
-
vba dir の相対パス
-
パスから最後のディレクトリだ...
-
chdirがうまくできない
-
テキストファイルの結合
-
dos変数の%~dp0は powershellで...
-
Perlで フォルダ内の全て...
-
readdir()で得られるファイル・...
-
makefileでファイルをコピー(...
-
C言語でファイル名を取得
-
サーバーにある特定の拡張子フ...
-
ディレクトリツリーの表示
-
ファイル名と更新日付の取得に...
-
Director拡張子
-
LinuxのC言語で、ファイル名の...
-
複数ファイルの読み込みについて
-
ディレクトリ名を取得したい
おすすめ情報