PHP/IIS6 はファイルの読み取り/書き込みにどのユーザーを使用しますか?

PHP/IIS6 はファイルの読み取り/書き込みにどのユーザーを使用しますか?

IIS6 に PHP5 (FastCGI) をインストールしましたが、PHP がファイル システムにアクセスするためにどの Windows ユーザーを使用するのか知りたいです。

たとえば、ASP.NET では、ファイル システムにアクセスするために ASPNET アカウントが使用されます。しかし、PHP の場合はどうでしょうか?

私はいくつか読んだ役職これは匿名 (つまり IUSR) アカウントを使用することを示唆しています。しかし、IUSR アカウントに書き込みアクセス権を与えると、セキュリティ違反になるのではないでしょうか?

ありがとう!

答え1

Craig さんの言う通り、IIS6 のデフォルトでは、NETWORK SERVICE アカウントとして実行されます。test.php で PHPinfo を使用すると、これを診断するのに最適です。

IISで実行されるコードの「アイデンティティ」についてブログに書きましたここOS別

お役に立てれば幸いです。

デイブ

答え2

IIS サービスを実行しているユーザーを使用すると思います。ただし、確認する簡単な方法は次のとおりです。

  1. 次の行を test.php というファイルにドロップします: <?php phpinfo(); ?>

  2. IISドキュメントルートの下にtest.phpを置き、ブラウザで表示する

  3. 出力の中でユーザー名を含む行を探してください。間違いなくどこかにユーザー名があります。

答え3

php.ini を変更する必要があります:

fastcgi.impersonate = 1;

したがって、PHP は IIS (w3wp.exe) が使用するのと同じアカウントを使用します。(ユーザー: IUSR)

答え4

IIS6 では、デフォルトのワーカー プロセス ユーザーは NETWORK SERVICE です。タスク マネージャーを開くと、w3wp.exe プロセスがこのアカウントとして実行されている可能性があります。

また、ASPNET ユーザーは IIS5 から引き継がれています。IIS6 が「IIS5 分離モード」を使用するように構成されていない限り、ASP.NET も NETWORK SERVICE アカウントで「実行」されます。

関連情報