В Windows Server 2012 R2 IIS работает как веб-сервер в обычных условиях. Однако веб-контент не из c:\inetpub\wwwroot\
а из какой-то другой папки. Веб-приложения по-прежнему работают под своим собственным пользователем из defaultAppPool.
Я на самом деле забыл дать IIS_IUSRS
права на чтение / выполнение папки веб-материалов. Папка, тем не менее, давала доступ users
. Я добавил IIS_IUSRS
только права чтения / выполнения / записи, если подпапка должна быть доступна для записи.
Желая немного повысить безопасность, я просмотрел права доступа к папке с веб-контентом и методом проб и ошибок узнал, что теперь отсутствует доступ к IIS_IUSRS
, именно доступ для группы users
отвечает за все, что все еще работает. Потому что, когда я удаляю доступ к группе users
, приложение перестает работать.
Я попытался предоставить доступ к некоторым другим учетным записям / группам и выяснил, что предоставление доступа обоим users
и IIS_IUSRS
отдельности запускает мое приложение. Предоставлять доступ только к IIS APPPOOL\
нет. Но дает доступ моему конкретному пользователю пула приложений (например, IISAPPPOOL\nl-x-homepage
). И это последнее, что я хочу, так как я не хочу, чтобы одно приложение могло обращаться к файлам другого приложения.
Но мне было интересно ... Как точно работают учетные записи, подобные IIS? Почему предоставление доступа users
также работает для моего пула приложений для доступа к папке веб-материалов? Я не вижу своего конкретного пользователя пула приложений в lusrmgr, но я предполагаю, что мой конкретный пользователь пула приложений находится в группе users
или в какой-то другой группе, которая находится в группе users
. Кто-нибудь может это подтвердить?
И последний вопрос к этому вопросу: для того, чтобы определенные папки были защищены паролем, я создал обычного пользователя в Windows, удалил этого пользователя из группы users
, а в IIS Manager я зашел в эту папку и выполнил Аутентификацию -> Базовую аутентификацию. -> Включено, и в Правилах аутентификации я установил правило Разрешить для моей вновь созданной учетной записи пользователя Windows. Это работает. Но, проанализировав доступ на чтение / запись, я с удивлением узнал, что, хотя приложение работает под пользователем пула приложений, пользователю пула приложений нужны только права на чтение (без прав на запись), а у вновь созданного пользователя Windows должны быть и права чтения, и Кроме того, права на запись должны быть доступны для записи. Может кто-нибудь помочь объяснить, почему это так работает?