Я только что перешел с IIS6 на Win2003 на IIS8 на Win2012 для размещения приложений ASP.NET.
В одной конкретной папке в моем приложении мне нужно создавать и удалять файлы. После копирования файлов на новый сервер я продолжал видеть следующие ошибки при попытке удалить файлы:
Доступ к пути «D: \ WebSites \ myapp.co.uk \ companydata \ filename.pdf» запрещен.
Когда я проверяю IIS, я вижу, что приложение работает под учетной записью DefaultAppPool, однако я никогда не настраивал разрешения Windows для этой папки, чтобы включить IIS AppPool \ DefaultAppPool
Вместо этого, чтобы перестать кричать клиентов, я предоставил следующие разрешения для папки:
IUSR
- Читать и выполнить
- Список содержимого папки
- Читать
- Напишите
IIS_IUSRS
- Изменить
- Читать и выполнить
- Список содержимого папки
- Читать
- Напишите
Кажется, это сработало, но я обеспокоен тем, что было установлено слишком много привилегий. Я прочитал противоречивую информацию онлайн о том, нужен ли вообще IUSR здесь. Может ли кто-нибудь уточнить, какие пользователи / разрешения будет достаточно для создания и удаления документов в этой папке, пожалуйста? Кроме того, входит ли IUSR в группу IIS_IUSRS?
Обновление и решение
Пожалуйста, смотрите мой ответ ниже . Мне пришлось сделать это, к сожалению, поскольку некоторые недавние предложения не были хорошо продуманы или даже небезопасны (IMO).
Ответы:
Я ненавижу публиковать свой собственный ответ, но некоторые ответы недавно проигнорировали решение, которое я разместил в своем собственном вопросе, предлагая подходы, которые являются ничем иным как безрассудством.
Короче говоря - вам вообще не нужно редактировать какие-либо привилегии учетной записи Windows . Это только создает риск. Процесс полностью управляется в IIS с использованием унаследованных привилегий.
Применение прав на изменение / запись к правильной учетной записи пользователя
Щелкните правой кнопкой мыши домен, когда он появится в списке сайтов, и выберите « Редактировать разрешения».
На вкладке Безопасность вы увидите
MACHINE_NAME\IIS_IUSRS
список. Это означает, что IIS автоматически имеет разрешение только для чтения для каталога (например, для запуска ASP.Net на сайте). Вам не нужно редактировать эту запись .Нажмите кнопку Изменить , затем Добавить ...
В текстовом поле введите
IIS AppPool\MyApplicationPoolName
, подставивMyApplicationPoolName
имя вашего домена или любой пул приложений, который обращается к вашему сайту, напримерIIS AppPool\mydomain.com
Нажмите кнопку Проверить имена . Введенный вами текст преобразуется (обратите внимание на подчеркивание):
Нажмите OK, чтобы добавить пользователя
Теперь, когда выбран новый пользователь (ваш домен), вы можете смело предоставлять любые разрешения на изменение или запись.
источник
IUSR
работ. ДобавлениеIIS AppPool\Cache
(имя моего пула приложений) даетHTTP Error 401.3 - Unauthorized
MyComputerName\IIS_IUSRS
и другоеIUSR
с правами «Только чтение», чтобы он снова работал. Это только для виртуальных каталогов (не приложений .net), но, может быть, кто-то найдет это полезным.IIS AppPool\[APPLICATION POOL NAME]
. Пробелы в имени пула приложений принимаются. Также обратите внимание, что этот пользователь будет найден только в том случае, если в качестве типа объекта для поиска по имени установлен флажок «Встроенные участники безопасности» (верхнее поле в диалоговом окне «Выбор пользователей или групп»).IUSR является частью группы IIS_IUSER. Поэтому я думаю, что вы можете удалить разрешения для IUSR, не беспокоясь. Дальнейшее чтение
Однако со временем возникла проблема, поскольку все больше и больше системных служб Windows начали работать как NETWORKSERVICE. Это связано с тем, что службы, работающие как NETWORKSERVICE, могут вмешиваться в другие службы, работающие под тем же именем. Поскольку рабочие процессы IIS по умолчанию выполняют сторонний код (классический ASP, ASP.NET, код PHP), пришло время изолировать рабочие процессы IIS от других системных служб Windows и запускать рабочие процессы IIS под уникальными идентификаторами. Операционная система Windows предоставляет функцию «Виртуальные учетные записи», которая позволяет IIS создавать уникальные удостоверения для каждого из своих пулов приложений. DefaultAppPool - это пул по умолчанию, который назначается всему пулу приложений, который вы создаете.
Чтобы сделать его более безопасным, вы можете изменить IIS DefaultAppPool Identity на ApplicationPoolIdentity.
Что касается разрешения, Create и Delete суммирует все права, которые могут быть предоставлены. Поэтому все, что вы назначили в группу IIS_USERS, - это то, что им потребуется. Ни больше ни меньше.
надеюсь это поможет.
источник
Когда я добавил разрешение IIS_IUSRS в папку сайта, ресурсы, такие как js и css, все еще были недоступны (ошибка 401, запрещена). Однако когда я добавил IUSR - все стало хорошо. Так что наверняка «вы НЕ МОЖЕТЕ удалить разрешения для IUSR, не беспокоясь», дорогой @Travis G @
источник
IIS AppPool\MyApplicationPoolName
согласно моему обновленному ответу. Вам больше не нужно возиться с IUSR (S)!@EvilDr Вы можете создать учетную запись IUSR_ [идентификатор] в своей среде AD и разрешить запуск определенного пула приложений под этой учетной записью IUSR_ [идентификатор]:
«Пул приложений»> «Расширенные настройки»> «Удостоверение»> «Пользовательский аккаунт»
В расширенных настройках установите для своего веб-сайта значение «Применить пользователь (сквозная аутентификация)», а не «Определенный пользователь».
Теперь предоставьте этому IUSR_ [идентификатору] соответствующие разрешения NTFS для файлов и папок, например: изменение данных компании.
источник
Группа IIS_IUSRS имеет известность только в том случае, если вы используете ApplicationPool Identity. Даже если у вас есть эта группа выглядит пустой во время выполнения, IIS добавляет в эту группу для запуска рабочего процесса в соответствии с литературой Microsoft.
источник
Я бы использовал конкретного пользователя (а не пользователя приложения). Тогда я включу олицетворение в приложении. Как только вы сделаете это, какая бы учетная запись ни была указана в качестве конкретного пользователя, эти учетные данные будут использоваться для доступа к локальным ресурсам на этом сервере (не для внешних ресурсов).
Настройки конкретного пользователя специально предназначены для доступа к локальным ресурсам.
источник