●パーミッションについて(コメント希望)
パーミッションがよくわからないので勉強しております。
Q1.なんでCGIのパーミッションは「700」推奨だったり「705」推奨だったり「755」推奨だったりするのか
A1.「700」と「705」の違いは、どーやら管理者の設定の違いっぽい?
サーバ管理をする場合を除き、簡単なCGIを設置して稼動させるにおいて、設定するパーミッションはだいたい限られています。■UNIX + Apache サーバで nobody権限の場合
UNIXのApacheは通常 nobody権限で実行され、ファイルの読み書きもnobody権限しかありません。なので、パーミッションでも第三者に対する許可が必要です。通常のディレクトリ ==> 705
CGIがファイルを作成するディレクトリ ==> 707拡張子が .cgi や .pl の CGI 実行ファイル ==> 705
拡張子が .cgi や .pl でも直接実行されないライブラリファイル ==> 604
拡張子が .txt や .dat や .log などの読まれるだけのデータファイル ==> 604
拡張子が .txt や .dat や .log などCGIで読み書きされるデータファイル ==> 606
拡張子が .html などの HTML ファイル ==> 604
拡張子が .css や .xml などのファイル ==> 604■UNIX + Apache サーバで SuExec環境の場合
SuExec環境では、Apacheがユーザ(オーナ)権限で実行されます。したがって、ファイルの読み書き実行はオーナー権限さえあれば大丈夫です。ただし、パーミッションを与えすぎると動かないこともあります。通常のディレクトリ ==> 701
CGIがファイルを作成するディレクトリ ==> 701拡張子が .cgi や .pl の CGI 実行ファイル ==> 700
拡張子が .cgi や .pl でも直接実行されないライブラリファイル ==> 600
拡張子が .txt や .dat や .log などの読まれるだけのデータファイル ==> 600
拡張子が .txt や .dat や .log などCGIで読み書きされるデータファイル ==> 600
拡張子が .html などの HTML ファイル ==> 600
拡張子が .css や .xml などのファイル ==> 600
(引用元:技林 yori パーミッションについて)
SuExec環境というのは、
suEXEC 機能により、Apache ユーザは Web サーバを実行しているユーザ ID とは 異なるユーザ ID で CGI プログラムや SSI プログラムを実行することができます。CGI プログラムまたは SSI プログラムを実行する場合、通常は web サーバと同じユーザで実行されます。適切に使用すると、この機能によりユーザが個別の CGI や SSI プログラムを開発し実行することで生じるセキュリティ上の危険を、 かなり減らすことができます。しかし、suEXEC の設定が不適切だと、 多くの問題が生じ、あなたのコンピュータに新しいセキュリティホールを 作ってしまう可能性があります。あなたが setuid root されたプログラムと、それらから生じるセキュリティ上の問題の管理に 詳しくないようなら、suEXEC の使用を検討しないように強く推奨します。
(引用元:The Apache Software Foundation yori suEXEC サポート)
だそうで、この環境については、難しそうなので今後サーバーを自分で立ててみるときにまた勉強しよう。
●新たな疑問●
しかし、「705」と「755」の違いがよくわからないのであった。705を推奨するサイトが多いようではあるけれど・・・。いいじゃんね、一般に許可してるんだからグループにも許可すれば。
Q2.そもそも4のreadってどの程度の権限?ファイルのソースを読むことも出来る?出来ないとしたら1の実行との違いがわからん。
A2.
読取
-ファイル:catなどでファイル内容を参照できるかどうか。
-ディレクトリ:lsなどでディレクトリ内ファイル一覧を表示できるかどうか。
書込
-ファイル:ファイルを編集できるかどうか。ファイルの書込権限とファイル自体の削除とは無関係です。
-ディレクトリ:ディレクトリ内のファイルを作成/削除できるかどうか。
実行
-ファイル:コマンドとして実行できるかどうか。
-ディレクトリ:ディレクトリ内のファイルへアクセスできるかどうか
(引用元:Stackasterisk yori Linux資格 LPICを受けようLV1第04回:デバイス、ファイルシステム、FHS編)
catってコマンドは、行番号をつけて出力したりするコマンドのようで。つまりコレを使うと、
●新たな疑問●
cgiとかもソースモロばれなのかな!?
でも普通にパスワード書いてるcgiとかに、読み込み可能の権限与えてるしなぁ・・・。むぅ