Назад | Перейти на главную страницу

поиск пользователя - не зная внутренностей IIS

Место преступления - WinSrv2008 с IIS7.
Мой пользователь пула приложений IIS пытается создать папку, но не может. Как мне узнать, какой это пользователь?

Скажем, я мало знаю о IIS7 и Aspnet, но мне нужно отслеживать все, что происходит, с помощью инструментов.

Так что я зажигаю Sysinternals / ProcessMonitor чтобы узнать, что происходит.
Я обнаружил, что доступ к папке запрещен, как я и подозревал. Но какой пользователь? Я добавляю столбец User к выходным данным или ProcessMonitor, и он говорит IIS Apppool \ Defaultapppool в столицах. Ну ... это не пользователь это? Если я перейду к IIS и его пулам приложений, расширенным настройкам, модели процесса и идентификатору, я могу увидеть подсказки о том, какой это пользователь, но это только потому, что я знаю IIS. Что, если бы это был Apache или LightHttpd или что-то еще? Как мне увидеть пользователя, которому нужно дать соответствующие права?

Фактически, IIS AppPool \ DefaultAppPool ЯВЛЯЕТСЯ пользователем, и вы можете добавить разрешения «Изменить» для родительской папки, чтобы позволить ей создавать подпапки и т. Д. - прочтите http://www.iis.net/learn/manage/configuring-security/application-pool-identities для получения дополнительной информации.

По умолчанию IIS 7+ использует IUSR учетная запись пользователя и IIS_IUSRS групповой аккаунт для разрешений. Вам нужно либо A) использовать именованную учетную запись, либо B) дать разрешение на IUSR пользователь или IIS_IUSRS группа. На сайте Microsoft IIS есть отличная вводная информация о встроенных учетных записях.

Вариант А, вероятно, лучший подход. Вы можете сделать это, войдя в диспетчер IIS, выбрав пулы приложений, затем щелкнув правой кнопкой мыши пул приложений, который вы хотите изменить, и выберите «Дополнительные настройки».

В расширенных настройках в области «Модель процесса» появляется опция «Идентификация». Затем щелкните поле рядом с этой записью и щелкните появившиеся эллипсы. Появившееся меню позволит вам установить индивидуальную учетную запись для пула приложений.

Вы уже используете правильный инструмент (ProcessMonitor), просто имя учетной записи выглядит немного забавно.

«IIS Apppool \ DefaultAppPool» действительно является действующей учетной записью пользователя Windows, хотя и особенной. У него нет пароля, и вы не можете использовать его для входа в систему. Он даже не указан ни в одном из встроенных инструментов для перечисления учетных записей пользователей.

Однако вы можете назначать для него разрешения, вам просто нужно ввести полное имя в графическом интерфейсе или в icacls.exe. Поскольку вы нигде не видите его в списке, я обычно добавляю эти типы пользователей в группу, а затем назначаю группе разрешения.

net localgroup groupName "IIS AppPool\Defaultapppool" /ADD

Каждый пул приложений IIS, для которого для свойства идентификации установлено значение ApplicationPoolIdentity (значение по умолчанию в IIS8), имеет одну из этих специальных учетных записей.

Основная причина иметь эти учетные записи - иметь возможность устанавливать разрешения для каждого пула приложений без необходимости управлять множеством учетных записей пользователей и вместо того, чтобы использовать одну и ту же учетную запись пользователя для всех пулов приложений.

Подобно «IIS AppPool *», «NT SERVICE *» представляет собой учетные записи пользователей для запуска служб Windows без необходимости управлять ими, но вы все равно можете назначать разрешения этим пользователям.

Я бы предложил включить аудит «объектного доступа» и проверить журнал аудита.

Можно включить через групповую политику

http://www.techotopia.com/index.php/Auditing_Windows_Server_2008_File_and_Folder_Access

или вручную

http://windows.microsoft.com/en-IN/windows7/Monitor-attempts-to-access-and-change-settings-on-your-computer