[Fswiki-dev] Re: mime.dat の修正

Back to archive index

Hiroaki Sakuma hiroa****@sakum*****
2006年 3月 16日 (木) 11:04:48 JST


佐久間です.


> パーミッション関連はチェックだけですね。
> 「CGIからだとchmodは使えない環境が多い」とのことで、設定は行っていません。

chmodはPerlの標準関数なので全ての環境で使えるはずです.
たぶん,CGIの実行ユーザと,ファイルの所有者が異なるために,chmodに失敗してい
るだけです.


> > 設置したファイルを直接操作するのではなく,異なるディレクトリにファイル一
> > 式を
> > 用意しておいて,CGI権限でコピーを行うと,CGIが動作するユーザの所有になり
> > ます
> > から,パーミッション関係も触れるし,セキュリティ的にも一番好ましいです.
> 
> なるほど…。コピーでCGIが動作するユーザの所有になるのですか?
> (CGIからの読み書きが可能? 実行権限は与えられない、のかな?)

コピーというよりは,新しいファイルをCGIから作成して,元のファイルの内容を丸
ごと移し変えるだけです.
こうすれば,新しいファイルは,CGIの実行ユーザが所有するファイルになるので,
パーミッションなども自由にセットできますし,セキュリティ的にも好ましいと思い
ます.

ただ,弊害もあって,例えばパーミッションを0700とか0600とかにして,CGIの実行
ユーザと,FTPのユーザが違ったりすると,作ったファイルをFTPから操作できない事
態が起こります.
# これは,現状のlog/以下のファイルなども同様の問題があります.


> パーミッションを設定した状態で圧縮して、CGIを動作させる環境で伸張すると
> パーミッションの設定が復活、みたいのは聞いたことがありますが、こちらは、
> サーバによっては推奨パーミッションが異なりますし、外部コマンドが利用で
> きないレンタルサーバ等もありますので、諦めてしまってました。

tarコマンドなどを使う手もありますが,Perlモジュールもあるので,こちらだと比
較的柔軟に対応できるかと思います.

サーバによってパーミッションが異なるというのは,

・SuExecを使っており,FTPもSuExec相当の機能がある
・SuExecを使ってない(CGIの実行ユーザがwwwなど)

などの事情があるからで,基本的には

CGIユーザ = ファイル所有者 = FTPユーザ

であるのが最も簡単で,セキュリティ的に問題もないはずです.
この場合,umamkは077になりますね.

また,例えば,

・CGIの実行ユーザが,wwwなどのグループに所属する
・FTPもwwwのグループに所属する

なども考えられますが,umask=007,017,027などで動くはずですが,セキュリティ
的には,同じサーバ上に居る全てのユーザから操作できるわけで,"設置は可能だが,
使用は不可能" という状況ともいえます.
# 動作はすれど,セキュリティホールがあるので使えない(後述の例外はあり)


複雑になるので,別スレッドにします.


> (唯一、CGIからファイルを新規作成するとCGIオーナー所有の読み書き権限で
> ファイルが作成できますので、その手法は利用しています)
> 手法があるなら、何とか実装したいですね。

上記の通り,この手法ですね(^^;


> > この辺を実装した,インストーラーみたいなCGIが作れないか考えてみますね.
> 
> 試して頂けるのですか?
> ありがとうございます。

以前,他のソフトで実装した事があるので,それを見ながら考えてみます.


=====================
Hiroaki Sakuma
 hiroa****@sakum*****



Fswiki-dev メーリングリストの案内
Back to archive index