CGIでディレクトリ作成時のパーミッションについて

[上に] [前に] [次に]
snow 2000/02/15(火) 21:53:40
CGIの中でmkdirを呼んで新規ディレクトリを作成しようとして
います。
モード 0x777 を指定しているのですが、実際に作成されるディレクトリは書きこみ権がつきません。(しかも nobody さん作成になっています)
これは、どうすればよいのでしょうか?

ふじ 2000/02/15(火) 22:03:14
Perl の mkdir のことでしたら、パーミッションには 0x777 ではなくて、
0777 (8進数)を指定します。

nobody の所有になるのは、CGI が nobody 権限で動作しているからで、
それはそのサーバの設定がそうなっているからです。

B-Cus 2000/02/15(火) 22:05:06
> 0777 (8進数)を指定します。
それでもダメなら、umask 0 してから mkdir。

snow 2000/02/16(水) 11:01:15
ふじさん、B-Cusさん、ありがとうございます。
上記CGIはC言語で作成していて、その中で関数mkdir(path,mode)を呼んでいます。mode に8進数でも指定してみたのですが、同じでした。また、umask 0 してから動作させてみたんですが、これも同じでした。(コマンドラインからのmkdirは問題なくモードが設定されます)
サーバの設定が関係するのでしょうか?nobody権限になっている場合が関係しているのでしょうか?

B-Cus 2000/02/16(水) 17:55:25
> 実際に作成されるディレクトリは書きこみ権がつきません
具体的にはどういうパーミッションになるんですか?
「誰の」書き込み権がつかないんですか?

> mode に8進数でも指定してみたのですが、同じでした。
> また、umask 0 してから動作させてみたんですが、これも同じでした。
具体的にどういうふうに書いたのですか?


などということは、最初から書きましょう。
質問するときの基本です。

snow 2000/02/16(水) 19:27:14
[[解決]]
こういう場になれてなくて書かなければならない情報が足らなすぎたようで、申し訳ありません。m(_o_)m
上記、UNIXに疎い私の勘違いで現在上手く行きました。
その前までは パーミッションが drwxr-xr-x の状態になってしまい、他のユーザから削除もできない状態になっていました。umask(0)を入れたところ、正常に指定できるようになりました。
どうもありがとうございました。

[上に] [前に] [次に]