パーミッションについて

CGIを実行する場合、CGIのファイルに必要なパーミッション(アクセス権限)を設定しなければいけませんが、
必要なパーミッションはサーバーによって違います。
当サイトのスクリプト配布ページには、必要なパーミッションを簡単に説明していますが、
パーミッションについて詳しく。

当サイトでは、パーミッションを777や666など、8進数3桁で書いてますが、
一桁ずつみて、
4=読み込み可能
2=書き換え可能
1=プログラムとして実行可能
で、それの合計値です。
書き換え又は実行が可能な場合、読み込みは可能なはずなので、
通常1や3のファイルはありません。
書き換えが必要なファイルは 6
実行するファイルは 5
実行できる上に書き換えが必要なファイルは 7
読み込みだけが必要なファイルは 4
0だと、読み込みすらできません。

パーミッションをrwxというように表記する場合もありますが、この場合、
r=読み込み可能
w=書き換え可能
x=実行可能
で、
rwx=7
rw-=6
r-x=5
r--=4
---=0
と同じです。

777や666の表記での桁の意味は、
左から、
-ファイルの所有者
-ファイル所有者の所属するグループ
-他人
です。


例として、パーミッションが765のファイルがあったとします。

ファイル所有者の権限がある場合、
-読み込み可能
-書き換え可能
-実行可能

ファイル所有者の所属するグループの権限がある場合、
-読み込み可能
-書き換え可能
-実行不可

他人の場合は、
-読み込み可能
-書き換え不可
-実行可能

となります。


ftpでファイルをサーバーにアップした場合、
通常、ファイルの所有者はftpにログインしたアカウントの人ですので、
ftpでファイルの削除も行えるはずですので、
所有者の権限では書き換えが可能なはずです。
したがいまして、
所有者権限は常に6又は7のはずです。
もし所有者権限が0,4,5などの場合、ftpでファイルの削除などができないはずです。

HTTPでファイルにアクセスした場合、HTTPサーバーがファイルを読み込んでクライアントに渡すので、
HTTPサーバーの権限です。
HTTPサーバーは、通常ファイルの所有者ではないはずで、同じグループでもないはずです。
したがいまして、
765のファイルの場合、
一番右の5です。
HTTPでクライアントが読み込むファイルは、読み込み権限が必要でしょうから、
3桁のパーミッションで一番右の桁は
4,5,6,7
のいずれかのはずです。

ファイルをプログラムとしてHTTPサーバーが実行する場合、
5か7でないと実行できないのですが、
通常はHTTPサーバーの権限で、3桁のうち一番右です。

全てのファイルのパーミッションが777なら、
全てのファイルを読み込むことも書き込むことも実行することもできます。
が、
一つのサーバーを複数の人で使う共有サーバーの場合、
CGIが他人の権限で実行される場合、
同一サーバーを使っている他の人がアップロードしたCGIと自分のアップロードしたCGIに同じ権限があることになります。
たとえば自分のCGIで書き換えるためにアップした666のファイルがあったとします。
他人のアップしたCGIから、このファイル、書き換えできます。

CGIでファイルの書き換えができる場合、CGIが他人の権限で動くと問題があるため、
多くのレンタル共有サーバーなどでは、
CGIが他人の権限で実行するのではなく、ファイルの所有者の権限で実行されるようになっています。
CGIが所有者の権限で実行される場合は、
一番右の桁は0か4になります。
一番左の桁は、
実行ファイルの場合は7
それ以外のファイルは6
なはずです。

3桁のパーミッションの真ん中のグループ権限は、
HTTPサーバーもCGIもグループ権限で処理されることはないと思いますので、
2桁目は常に0でも問題ないことがほとんどと思います。


まとめ

HTTPサーバーを一人で使う専有サーバーなどでは、
全ファイル
777
でも問題ないはず。

共有サーバーで通常ファイルが他人、実行ファイルも他人
で処理される場合は、
通常のファイル=644
実行ファイル=755
CGIが書き換えるファイル=666
といったところ。
ただし、この場合は他人のアップしたCGIから自分のファイルにアクセスできる場合、
共有サーバーとしてはセキュリティーに問題がある。


共有サーバーで通常ファイルが他人、実行ファイルは所有者権限で処理される場合は、
通常のファイル=644
実行ファイル=700
CGIが書き換えるファイル=600
CGIが書き換えて通常アクセスできるファイル=644
といった感じになると思います。
posted by ST at 2009-09-09 06:50 | ご案内 | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。