IIS 7.0 でファイルアクセス権を割り当てるべきアカウント

2009.5 月 11 日に記した「Install Maniax のアクセス権の不具合が分かった!! …のか? 」の追記になる。

上記記事で「IIS で Web アプリケーションからあるファイルやフォルダに書き込みが必要なとき、そのファイルやフォルダに対して変更の権限を与えておく必要があり、権限を与えるアカウントは基本認証を行う場合は認証したユーザーアカウントに、匿名認証の場合は IIS_IUSRS グループアカウントに対して行う」としている。

実はこれが根本的な勘違いだった。

基本認証を行った場合に、認証したユーザーアカウントに権限を割り当てる点については正しいのだが、匿名認証の場合は IIS_IUSRS グループアカウントではなく、IUSR ユーザーアカウントに権限を割り当てるのが正解だった。
このことについては、マイクロソフトの TechNet のサイトにある「IIS 7.0 での組み込みユーザーとグループ アカウントとは」のページに明確に記述されている。

このページの内容を、以下に要約、引用しておく。

IIS の旧バージョン (6.x 以前) では、IUSR_マシン名というローカルユーザーアカウントが IIS のインストール時に作成され、匿名認証のときにこのアカウントを用いてローカルリソースにアクセスしていた。
しかしIUSR_マシン名が IIS のインストール時に作成されるために、マシン毎に SID が異なってしまい、複数のマシンで IIS が動作するような環境では問題が生じることになる。

IIS 7.0 では、IUSRS ユーザーアカウントをビルトインアカウントとして用意し、これを匿名認証のときに用いるようにすることで SID を固定化して、この問題に対処した。

また、IIS のアプリケーションプールのコンテナーで使用される IIS_WPG ローカルグループアカウントについても同様に、IIS のインストール時に作成されるようになっていたのを、ビルトインの IIS_IUSRS ユーザーアカウントとして SID を固定するようにした。

結局のところ、IIS_IUSRS グループが何処で使われているのかが結局よく理解できていないが、PHP で作られているような一般的な OSS を IIS で動作させるときのファイルやフォルダへのアクセス権は、IUSR ユーザーアカウントに割り当てると覚えておけば良いということだ。

なお上記記事 (「Install Maniax のアクセス権の不具合が分かった!! …のか? 」) よりも後に書いたしたはずのInstall Maniax 2009 のときの OpenCart のインストール記事Joomla! のインストール記事には、「USERS グループに「変更」の権限を追加しておく。」や「joomla! を展開したフォルダに対して、IIS_IUSRS グループにも、USERS グループにも書き込みや変更のアクセス権を与えた覚えは無い。」という記述のように、未だ勘違いしていたかのようなものがあった。
これらの記述にある「IIS_IUSRS グループ」や「USERS グループ」は「IUSR ユーザー」に置き換えて読むべきだろう。

当該 Web ページにも、その旨の補足を書き加えておくことにする。

「IIS 7.0 でファイルアクセス権を割り当てるべきアカウント」への2件のフィードバック

  1. ピンバック: とある企業の社内SEのつぶやき » Blog Archive » PHP on IISでエラー(failed to open stream: Permission denied )

コメントを残す