web-dev-qa-db-ja.com

ASP.NETにWindows 7のフォルダーへの書き込み許可を与えるにはどうすればよいですか?

新しいWin7ワークステーションがあり、ScrewTurn Wikiをマシンで実行しようとしています。私のSTWインストールでは、ファイルシステムオプションを使用してデータを保存しているため、Webサイトがインストールされているフォルダー内のASP.NETワーカープロセスに書き込み権限を付与する必要があります。

ただし、フォルダーのアクセス許可に追加するために、Win7でワーカープロセスの名前を思い付くことができないようです。 XPでは、正しく覚えていればASPNET_WPでしたが、Win7での名前ではありません。

誰か教えてもらえますか?

追加して編集:

@Dragan_Radivojevicへの応答として、問題のアプリケーションプールは次のようになります(ScrewTurnWikiという名前です)。

IIS7 Application Pools

アイデンティティは「ApplicationPoolIdentity」です

58
Cyberherbalist

すべてのIIS_USRSグループに書き込み許可を与えることは、セキュリティの観点からは悪い考えです。これを行う必要はありません。アプリケーションプールを実行しているシステムユーザーにのみアクセス許可を与えることができます。

II7を使用している場合(および使用していると思います)、以下を実行します。

  1. IIS7を開きます
  2. アクセス許可を変更する必要があるWebサイトを選択します
  3. [基本設定]に移動して、使用しているアプリケーションプールを確認します。
  4. アプリケーションプールに移動し、#3からアプリケーションプールを見つけます
  5. このアプリケーションプールの実行に使用されるシステムアカウントを見つける(ID列)
  6. IISのストレージフォルダーに移動して選択し、[アクセス許可の編集]をクリックします(右側の[アクション]サブメニュー)
  7. セキュリティタブを開き、#3で特定したユーザーにのみ必要な権限を追加します

注#1:#3にApplicationPoolIdentityが表示されている場合、このIIS AppPool {application_pool_name}のようにこのシステムユーザーを参照する必要があります。たとえば、IIS AppPool\DefaultAppPool

注#2:このユーザーを追加するときは、[ユーザーまたはグループの選択]ダイアログで正しい場所を設定してください。これはローカルアカウントであるため、ローカルマシンに設定する必要があります。

128

私はこれが古いスレッドであることを知っていますが、ここで答えをさらに広げるために、デフォルトでIIS 7.5はワーカープロセスを実行するアプリケーションプールIDアカウントを作成します。ファイル権限を追加する場合、通常のユーザーアカウントのようにこれらのアカウントを検索することはできません。それらをNTFSアクセス許可ACLに追加するには、アプリケーションプールIDの名前全体を入力すれば機能します。

アプリケーションプールIDアカウントは、仮想アカウントと見なされるため、その処理方法がわずかに異なります。

また、アプリケーションプールIDのユーザー名は「IIS AppPool\application pool name」なので、アプリケーションプールDefaultAppPoolの場合、ユーザーアカウントは「IIS AppPool\DefaultAppPool」になります。

これらは、コンピューター管理を開き、ローカルグループIIS_IUSRSのメンバーを見ると表示されます。アカウントをNTFSアクセス許可ACLに追加する場合、それらの末尾に追加されるSIDは必要ありません。

役立つことを願っています

31
steve

私の直接の解決策(ASP.NETワーカープロセスが見つからなかったため)は、IIS_IUSRSに書き込み(つまり、変更)許可を与えることでした。これはうまくいきました。 WinXPでは、これを実現するためにASP.NETワーカープロセスの書き込み許可を明確に与えなければならなかったことを思い出すようです。多分私の記憶に欠陥があるが、とにかく...

@DraganRadivojevicは、セキュリティの観点からこれは危険だと考えていると書いています。私は同意しませんが、これは私のワークステーションであり、ネットワークサーバーではないので、比較的安全に思えました。いずれにせよ、彼の答えの方が優れており、AppPoolユーザーに正しいドメインを指定していないため、フェイルパスを追跡した後、最終的に解決しました。

13
Cyberherbalist

完全なコマンドは次のようになります。引用符に注意してください

icacls "c:\ inetpub\wwwroot\tmp"/grant "IIS AppPool\DefaultAppPool:F"

2
namvan