web-dev-qa-db-ja.com

IIS7のWebサイトでのアクセス許可はどのようにする必要がありますか?

さて、私はここで何をしているのかほとんどわからないと言いましょう。これを必要以上に複雑にしている場合は申し訳ありませんが、

IIS6でしばらくセットアップしているWebサイトがありますが、問題なく機能しました。まったく同じサイトを使用して、Windows Server 2008 Enterprise32ビットでセットアップしてみました。

これが私が従ったステップです:

  1. サーバーからWebサイトを含むZipファイルを取得します。
  2. それをinetpub/website/versionに解凍します。
  3. 構成ファイルを移行する必要があるというエラーが表示されるため、IIS_IUSRSにメインフォルダーの読み取りアクセス許可を付与し、migrateコマンドを実行します。

これでウェブサイトが読み込まれますが、2つの問題があります。

  1. ウェブサイトフォルダ内のファイルを編集できません。開いて編集すると、保存しようとすると「アクセスが拒否されました」と表示されます。ただし、ファイルをフォルダからデスクトップに移動すると、そこで編集して問題なく元に戻すことができます。私は管理者としてログインしており、AdministratorsグループにはWebサイト内のすべてのファイルに対する完全なアクセス許可があります。
  2. ウェブサイトを使おうとすると、いくつかの設定ファイルを編集するセットアップページがあります。これらのページを使用しようとすると、常にアクセス許可エラーが発生します(サイトの残りの部分は正常に機能します)。

    構成ファイルのロード中にエラーが発生しました:パス 'C:\ inetpub\website\version\XXXXX.tmp'へのアクセスが拒否されました。 (C:\ inetpub\website\version\web.config)

  3. 権限を確認し、/ configフォルダーが読み取り専用に設定されていることを確認したので、チェックを外します。何も変わっていないようです。

IISフォーラムで、これらのアクセス許可の問題は、inetpubフォルダーに直接解凍したため、適切なアクセス許可が継承されなかったためであると読みました。そこで、マイドキュメントに解凍してから、提案されているようにそれをinetpubに移動しましたが、それは何もしなかったようです。

現在、権限は次のように設定されています。

  • webサイト(読み取り専用、Administratorsグループにはフルコントロール、Usersグループ、IIS_IUSRSには読み取りと実行があります)
    • バージョン(上記と同じ)
      • / config(IIS_IUSRSにも変更と書き込みがあることを除いて上記と同じ)
      • web.config(上記と同じ)
  • wwwroot

だから誰かがそのエラーを取り除くために私が他に何をしなければならないか知っていますか?

2
Brandon

これは、ユーザーアクセス制御の問題のように聞こえます。

UACをオンにすると、ローカル管理者としてログオンしても、Administratorsグループのメンバーにはなりません。 「管理者として実行」する場合にのみ、そのグループに「所属」します。したがって、「管理者として」メモ帳を起動すると、問題なくファイルを編集できます。したがって、答えは、UACをオフにするか、ユーザーアカウントにファイルへの明示的な変更権限を付与することです。はい、それは本当に迷惑です。

これで設定ファイルを編集する問題は修正されますが、アプリにもファイルを編集してもらいたいようです。これは少し危険に聞こえますが、アプリケーションにアクセスできるユーザーを制御している場合はおそらく許容できます。

最善のアプローチは、Webアプリをデフォルトのアプリプールではなく、独自のアプリケーションプールに配置することです。次に、アプリプールのIDを、デフォルトのネットワークサービスアカウントではなく、特定のユーザーアカウントに設定します。次に、そのアカウントに、特定のファイルやフォルダーに対する必要なアクセス許可を付与します。

1
Mark Arnott

UACが原因でシステムフォルダを変更すると、「アクセスが拒否されました」というメッセージが表示されます。 Windows Server 2008では、inetpubやsystem32などのフォルダーに変更を加えようとすると、マシンのAdministratorsグループのメンバーであるにもかかわらず、UACが起動し、変更を確認したことを確認します。

UACを変更しないことを強くお勧めしますが、[コントロールパネル]-> [ユーザーアカウント]-> [ユーザーアカウント]で設定を確認できます。アカウントを選択し、[ユーザーアカウント制御設定の変更]をクリックします。

HTH

1
Vivek Kumbhar