Install Maniax のアクセス権の不具合が分かった!! …のか?

今までにインストールした、インストールマニアックス 2009 のための OSS で発生していた不具合について、何となく原因が分かったような気がする。

起こっている不具合は、Web アプリケーション (OSS) でファイルに書き込めないというもの。

結論を一言で言えば、ファイルやフォルダのアクセス権の設定がおかしかったというだけのことだが、ここにちょっとした問題が隠れていた。

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

'2009.9 月 27 日追記

匿名認証の場合は IUSR ユーザアカウントに権限を割り当てるのが正解であるため、以下でいくら IIS_IUSRS グループアカウントに変更の権限を割り当ててもうまくいかないのは当然。
なお、この件についての補足を「IIS 7.0 でファイルアクセス権を割り当てるべきアカウント」に記載している。

今回インストールしている OSS は全て匿名認証しかしていないので、IIS_IUSRS グループアカウントに変更の権限を与えれば良いはずだ。
実際、OSS をインストールしたフォルダには全て、「Inatall Maniax 2009 作業開始」で述べているように、IIS_IUSRS グループアカウントに変更の権限を与えてある。
それにも関わらず、書き込みができないといったエラーが頻発しているのが現状だ。

何度もアクセス権を見直したり、途中で IUSR というアカウントでアクセスしている雰囲気を見つけ、この IUSR に変更の権限を与えてみたり (IUSR 絡みでうまくいかなかったのは勘違いだった可能性大) したが、どうにも解決しない。

三日三晩思い悩んだ末にふと思いついたのが、USERS グループアカウントに変更の権限を与えたらどうなるか。
今朝、さっそく試してみたところ、エラーが出なくなった気がする。(IUSR アカウントに権限を割り当てるのが正解)

そうとわかれば、「Inatall Maniax 2009 作業開始」の作業で行った、c:varwwwInstallManiax フォルダへの IIS_USRS のアクセス権から「変更」と「書き込み」のアクセス権を削除してしまうことにする。

アクセス権を外す

そして、今までにインストールしたそれぞれの OSS の、以下に挙げるファイルやフォルダに対して、USERS グループアカウントIUSR アカウントに「変更」の権限を与える。

WordPress wordpress フォルダ wp-content フォルダ
Drupal drupal フォルダ sitesdefaultsetting.php ファイル
sitesdefaultfiles フォルダ
PukiWiki pukiwiki フォルダ attach フォルダ
backup フォルダ
cache フォルダ
counter フォルダ
diff フォルダ
trackback フォルダ
wiki フォルダ
SugarCE SugarCE フォルダ config.php ファイル
cache フォルダ
custom フォルダ
data フォルダ
modules フォルダ
アクセス権をつける

厳密に適用するのであれば、PukuWiki はアクセス権を変更するそれぞれのフォルダ内の .htaccess、index.html ファイルに対しては、「変更」、「書き込み」の権限を削除して、「読み取りと実行」、「読み取り」の権限だけにするのが望ましいようだが、良しとしておく。

‘09.5月13日追記

USERS グループアカウントにアクセス権の割り当てを行うと書いたが、実は IUSR アカウントに割り当てれば良いことが分かった。
上で IUSR アカウントに権限を割り当ててもうまく動かないと書いたが、何かの気の迷いだったということにしておこう。

これはJoomla! をインストールしたときにはっきりと分かった。
Joomla! はインストール時に設定した情報を configration.php ファイルに書き込んで保存するのだが、このファイルはインストール前には存在しておらず、インストール処理中に Joomla! 自身によって作成されるようになっている。

元々、Windows のファイルシステムは全てのドライブ、フォルダに対して USERS グループでのファイルやフォルダの作成が許可されるようなアクセス権が割り当てられている。
このため、Joomla! のインストール処理中に Joomla! 自身がファイルを作成することは、規定の状態のままで何の問題もなく実行できる。
そこで、作成された configuration.php ファイルのプロパティを見たところ IUSR アカウントが所有者になっており、また IUSR アカウント に「フルコントロール」のアクセス権が割り当てられていることが確認できた。

つまり、IIS がファイルやフォルダにアクセスする際に使用するアカウントは IUSR だということになる。

IIS_IUSRS グループアカウントにアクセス権を割り当ててあっても、IIS 経由での書き込みができない件については、IUSR アカウントが IIS_IUSRS グループに属していないためだと思われる。
しかし何故、IUSR アカウントが IIS_IUSRS グループに属していないのか、その理由はよく分からないし、名称だけをみると間違いを誘っているようにしか思えない。

関連記事

  • OpenCart [Install Maniax 2009]2009.5.11 (月) OpenCart [Install Maniax 2009] インストールマニアックスの作業で出ていた不具合は、「Install Maniax のアクセス権の不具合が分かった!! …のか?」で解消したことにして、OpenCart をインストールしてみる。 OpenCart […]
  • phpMyAdmin のアクセス制限 [Install Maniax 3]2010.1.12 (火) phpMyAdmin のアクセス制限 [Install Maniax 3] インストールマニアックスの予選期間は疾うに過ぎてはいるが、書きかけの状態で放っておくのも寝覚めが悪いので前回の記事の続きを書いておく。 前回の記事では phpMyAdmin をインストールした。 通常であれば phpMyAdmin […]
  • PHP の動作がおかしいので再インストール [Install Maniax 3]2010.1.11 (月) PHP の動作がおかしいので再インストール [Install Maniax 3] インストールマニアックス 3 も残すところ一日となって迫って焦っているところだが、ここに至って PHP がエラーになってしまいどうにもうまく動いてくれない。 MySQL の操作を Web 経由で楽に行なおうと、phpMyAdmin […]
  • PHP をインストール [Install Maniax 3]2010.1.4 (月) PHP をインストール [Install Maniax 3] 正月の三が日が終わった。 昨年末からのインストールマニアックス 3 は、先の記事でわかるように、ようやく IIS のインストールが終わったところだ。 1 月 12 日が締切だというのにこんなことで大丈夫だろうか。 […]

コメントを残す