コンテンツへ移動

パーミッションの決め方(前提)

2010/03/16

パーミッションの正しい設定を行なうにあたっては、次の要素を考慮する必要があります。

  1. ファイルの種別(txt、text、c、cpp、h、htm、html、shtm、shtml、rc、cgi、log、pl、sh、rb、js、css、po、phpなど)
  2. サーバーの環境
  3. ファイルへのアクセス方法

ファイルの種別とは、実行ファイルであるかそうでないかという区分に大別されます。実行ファイルの場合は実行権限の可・不可をパーミッションに盛り込む必要があります。htmlやjpgなどの読み取り用ファイルの場合は、実行権限は関係ありませんので、この要素は無視して考えます。

サーバーの環境とはいわゆるホスティングの環境のことです。専用サーバーや共有サーバーなどの違いによって、グループに対しての権限を考える必要があります。また、suexecが機能しているサーバーかどうか、これによって他人に対してどのような権限を与えるべきかが異なります。

suexecというのは、他人であってもCGIを所有者権限で実行できる仕組みです。これを利用するためには、phpをcgiモードで動かすというサーバー上の設定が必要です。サーバーがcgiモードかどうかを確認するには、phpinfoでServer APIの項目を確認してください。こちらがCGI(Fast CGI)となっている場合はCGIモードになっています。この場合、CGIは所有者権限で実行されます。一方、Server APIの項目にApacheなどと表記されている場合は、モジュールモードというモードです。この場合、Apacheは他人(nobody権限)として実行されます。

ファイルへのアクセス方法というのは、簡潔にいうと、所有者としてアクセスするのか、あるいはApache経由でアクセスするのか、この違いです。FTP経由でアクセスする場合、ユーザー名とパスワードが与えられているはずですが、このユーザー名はサーバーOS上のユーザーです。従って、ファイル上にFTPを使ってファイルをアップロードすると、そのファイルの所有権を持っていることになります。

一方、ブラウザなどを使用してアクセスする場合、Apache経由でアクセスすることになります。サーバーOS上では所有者に対してApacheは他人扱い(あるいはグループ扱い)となりますので、ブラウザを経由してアクセスする場合は、原則として他人となります。例外が発生するのが、suexecがサーバーで機能している場合です。この環境下では、cgiは所有者としてアクセスできることになります。

コメントする

コメントする

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

%s に接続中

フォロー

Get every new post delivered to your Inbox.