[Fswiki-dev] パーミッションについて(Re: mime.dat の修正)

Back to archive index

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


佐久間です.

RDBMSをバックエンドの使わないCGIの宿命として,常にパーミッションとセキュリテ
ィの問題が付きまといます.

便宜上,UNIXだけを対象として話をします.


共有のレンタルサーバなど,複数のユーザが居る環境に設置する場合,サーバの設定
により,必要なパーミッションというのが異なってきます.



(い案)
一番理想的なのが,

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

で,これを実現するには,SuExecを有効にしたwwwサーバに,SuExec相当機能を搭載
したFTPサーバを組み合わせる形になります.
この場合は,特に問題もなく,パーミッションも,umask0077で作っておけば問題あ
りません.



次に,CGI実行ユーザとファイル所有者が異なる場合.



(ろ案)
CGIがファイルを書き出す必要のあるlogやpdfなどは,パーミッションを0777や0770
にしておいて,その中で作成するファイルは0600などにしておく形です.

ファイル自体を改ざんされる恐れは減りますが,不正なファイルの作成や削除はでき
てしまいます.

削除を回避するにはsticky bitを立てて,1777などにしておくという方法があります
が,作成は免れないばかりか,不正に作られてしまったファイルの削除ができなくな
り,困ります.
# ディレクトリなり消すしか無い

また,FTPのユーザが異なる場合,ファイルの管理がFTPからできなくなる事がありま
す.



(は案)
次に,CGIによるインストーラーを使って,logやpdfを生成する場合(あきさんの
setup.cgiもこの手法です)です.

logやpdf自体の所有者がCGIの実行ユーザになり,パーミッションは0700にできるの
で,改ざん,不正作成,不正削除のリスクはなくなります.

ただし,インストーラ実行時に,fswikiのルートディレクトリに対し,0777なりの設
定を行う必要が出てくるので,インストール後に手動で0755や0751などに設定しなお
す必要があります.

FTPユーザの問題は(ろ案)と同様です.



ユーザ自身が自分のサーバの環境を把握し,適切なパーミッション設定を行ってくれ
ればいいのですが....

CGIの立場からファイルテストを行い,ユーザに問診することで,ある程度は自動的
に適正なパーミッション設定ができるとは思うのですが,万能ではないですね.


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



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