Defaultapppool что это за папка windows 10
Перейти к содержимому

Defaultapppool что это за папка windows 10

IIS и группа пользователей

В 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 должны быть и права чтения, и Кроме того, права на запись должны быть доступны для записи. Может кто-нибудь помочь объяснить, почему это так работает?

Application Pool Identities в IIS

Каждый пул приложений в IIS использует свой собственный рабочий процесс (IIS Worker Process). Удостоверение пула приложений (Application Pool Identities) представляет из себя имя учетной записи, под которой выполняется рабочий процесс этого пула.

В IIS 6.0 и IIS 7.0 пул приложений по умолчанию работал под встроенной системной учетной записью NetworkService. Эта запись не требует пароля и имеет на локальном компьютере ограниченные права, что является хорошей практикой с точки зрения безопасности. Однако под этой учетной записью могут одновременно работать разные системные службы Windows, и при использовании одного и того же идентификатора одни службы могут воздействовать на работу других.

Начиная с Windows Server 2008 SP2 для того, чтобы изолировать рабочие процессы IIS от других системных служб, можно использовать виртуальные учетные записи (Virtual Accounts). Они позволяют запускать рабочий процесс для каждого пула приложений под собственной уникальной учетной записью ApplicationPoolIdentity. Эта учетная запись не требует управления и создается автоматически при создании каждого нового пула. Также она не имеет практически никаких привилегий в системе и не использует профиль пользователя, что повышает безопасность веб-сервера.

Для примера возьмем Application Pool с именем PubSite1. Открываем Task Manager и находим рабочий процесс IIS (w3wp.exe), выполняющийся от имени PubSite1. Как видите, имя учетной записи совпадает с именем пула приложений. Дело в том, что начиная с IIS 7.5 для каждого вновь созданного пула приложений по умолчанию создается виртуальная учетная запись с именем этого пула, и его рабочий процесс запускается из под этой записи.

Application pool в диспетчере процессов

Настройка типа удостоверения пула приложений

При необходимости тип идентификации пула приложений можно изменить. Для этого запускаем IIS Manager, переходим в раздел Application Pools, выбираем нужный пул и открываем его свойства (Advanced Settings).

пулы приложений в IIS Manager

В свойствах выбираем пункт Identity.

настройки пула приложений

Здесь мы указываем учетную запись, от имени которой будет работать данный пул приложений:

• ApplicationPoolIdentity — учетная запись удостоверения пула приложений. Создается автоматически при запуске пула приложений и имеет самые минимальные права на локальном компьютере. Это наиболее безопасный вариант, начиная с IIS 7.5 используется по умолчанию;
• LocalService – встроенная учетная запись, которая имеет ограниченные права на локальном компьютере. Примерно то же самое, что и NetworkService, но ограничена только локальным компьютером;
• LocalSystem – системная учетная запись, имеющая неограниченные права на локальном компьютере. Наименее безопасный вариант, по возможности не рекомендуется ее использовать;
• NetworkService — учетная запись, которая имеет ограниченные права на локальном компьютере, а также может использоваться для доступа к ресурсам в сети Active Directory на основании учетной записи компьютера.

выбор типа удостоверения для пула приложений

Кроме того, в качестве удостоверения можно использовать и обычную учетную запись пользователя. Для этого надо выбрать Custom Account, нажать кнопку Set и ввести имя пользователя и пароль. Можно указать любого доменного или локального пользователя.

указываем пользователя для пула приложений

Примечание. При использовании учетной записи пользователя надо отслеживать срок действия пароля и своевременно менять его.

То же самое можно сделать с помощью утилиты командной строки appcmd. Чтобы указать учетную запись, которая будет использоваться для пула приложений, используется следующий синтаксис:

appcmd set config /section:applicationpools /[name=″имя пула приложений″].processModel.identityType:SpecificUser|NetworkService|LocalService|LocalSystem

Для примера изменим тип удостоверения для пула приложений PubSite1 на NetworkService:

appcmd set config /section:applicationpools
/[name=″PubSite1″].processModel.identityType:NetworkService

Профиль пользователя

По умолчанию IIS не использует профиль пользователя, но некоторые приложения могут потребовать использование профиля, например для хранения временных файлов. Профиль для учетной записи NetworkService создается системой и всегда доступен. Стандартные пулы приложений (DefaultAppPool, Classic .NET AppPool и т.п.) также имеют профиль пользователя на диске, однако при использовании ApplicationPoolIdentity профиль не создается автоматически.

Если вы хотите настроить ApplicationPoolIdentity на использование пользовательского профиля, то надо зайти в расширенные свойства пула и перевести параметр Load User Profile в состояние True.

разрешение на использование профиля пользователя в IIS

Настройка доступа к ресурсам

Иногда веб-приложению может потребоваться доступ к определенной папке или файлу на диске. Чтобы добавить ApplicationPoolIdentity в Access Control List (ACL):

• Запускаем Windows Explorer;
• Выбираем нужный файл или директорию, кликаем по ней правой клавишей мыши и выбираем пункт Свойства (Properties);
• Переходим на вкладку Безопасность (Security),
• Кликаем по кнопке Изменить (Edit), затем Добавить (Add);
• В поле Размещение (Locations) выбираем локальную машину;
• Вводим имя пользователя в виде ″IIS AppPool\имя пула приложений″. Так для пула приложений PubSite1 имя пользователя будет выглядеть ″IIS AppPool\PubSite1″;
• Проверяем имя клавишей Проверить имена (Check Names) и жмем ОК.

настройка разрешений NTFS

Также при желании можно воспользоваться утилитой командной строки ICACLS. Для примера дадим права на изменение для PubSite1:

ICACLS C:\Web\Pubsite1 /grant ″IIS AppPool\PubSite1″:M

Список разрешений выглядит следующим образом:

D – удаление;
F – полный доступ;
M – изменение;
RX – чтение и выполнение;
R – чтение;
W – запись.

Если ресурс находится в сети, то для доступа к нему лучше всего использовать учетную запись NetworkService. Рабочий процесс, запущенный под этим аккаунтом, для доступа к ресурсам использует учетные данные компьютера, сгенерированные при добавлении компьютера в домен. Для того, чтобы дать процессу доступ к сетевому ресурсу, в качестве пользователя указываем компьютер:

• Выбираем тип объекта (Object Type) Computers;
• В поле Размещение (Locations) выбираем домен;
• Вводим имя пользователя в виде domainname\machinename$, например contoso\SRV12$;
• Проверяем имя и жмем ОК.

доступ к сетевым ресурсам

Очень удобный способ предоставлять доступ к сетевым ресурсам типа файловых шар или баз данных SQL Server. Однако работает он только при наличии домена AD.

Defaultapppool что за папка

IIS 7: Identity «IIS APPPOOLDefaultAppPool» не имеет достаточного разрешения на доступ к временному каталогу

У меня есть странная и неразрешимая проблема с моей IIS 7.0 на Windows7.
Я пытаюсь запустить сайт на своем локальном тестовом сервере и получить следующую ошибку:

У меня есть несколько пулов, но только один из них работает правильно. Это Классический .NET AppPool. Запуск сайтов на других я получаю ошибку, которая была предоставлена ​​ранее. Самое интересное, что я не могу найти различия между конфигурациями пулов через пулы приложений диспетчера IIS. Может быть, я что-то упустил?
Я попытался изменить права доступа для WindowsTemp , C:WindowsMicrosoft.NETFrameworkv4.0.30319Temporary ASP.NET Files и local settings’ temporary folder , но мои действия не имели эффектов.

Итак, надеюсь на вашу помощь и некоторые советы.

Вы вызвали метод Path.GetTempPath() (вы можете вызывать этот метод из каждой программы, не обязательно с вашего сайта)?

Вы должны установить полный доступ к этому пути для своей учетной записи.

Другая причина может заключаться в том, что установлен процессModel в machine.config так что ASP.Net работает внутри dllhost.exe вместо aspnet_wp.exe. Если это так, тогда вам нужно будет предоставить права к учетной записи IWAM_machineName.

Вы можете проверить имя процесса и учетной записи под доступом отклоненная ошибка возникает с помощью утилиты FileMon из sysinternals.com.

Еще один вариант рассмотрения. DefaultAppPool создает свою собственную учетную запись пользователя и папку в каталоге «c:Users», когда пул создается и запускается первым. Фактически это виртуальная учетная запись пользователя и должна быть названа для пула приложений или «DefaultAppPool». Он использует эту временную учетную запись пользователя для запуска пула. В некоторых настройках люди не видят эту папку, кроме папки TEMP, когда к ней обращаются к веб-сайту II и используют пул по умолчанию. Эта папка пользователя используется пулом и ASP.NET для кэширования и записи файловых ресурсов и других вещей, используемых II, ASP.NET и этой виртуальной учетной записью.

Если вы видите папку «TEMP» в папке «Пользователи», у вас есть сломанная учетная запись пула приложений во II и в реестре. Пул создает папку TEMP в качестве резервной копии для этой виртуальной учетной записи, которая может не иметь правильной настройки безопасности. У меня был этот точный сценарий.

Чтобы исправить это, перейдите в реестр: HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionПрофильList Посмотрите, есть ли у вас учетная запись пользователя SID с расширением «.bak» для учетной записи пользователя DefaultAppPool. Если удалите его и перезагрузите компьютер. Проверьте свой сайт еще раз, убедившись, что он фактически настроен на использование DefaultAppPool. Теперь он должен воссоздать папку «DefaultAppPool» в «Пользователи», воссоздать запись реестра для пользователя DefaultAppPool, и ваша ошибка должна исчезнуть. т.е. нет папки TEMP.

После этого все ошибки ушли в Visual Studio для моего веб-приложения и всех перезапусков и окончательного сбоя пула приложений в II-х.

Папка Inetpub: что в ней хранится и можно ли её удалить

Изучая содержимое раздела жёсткого диска, отведённого под операционную систему, можно увидеть папку Inetpub. В ней хранится информация, необходимая для работы одного из сервисов Windows 10. Но в некоторых случаях сервис можно отключить, а папку — удалить.

Для чего нужна папка Inetpub

Папка Inetpub создаётся процессом IIS (Internet Information Services), входящим в состав Windows 10. Этот процесс реализует системный сервис, отвечающий за настройку интернет-серверов, передачу файлов по локальной сети и использование различных протоколов обмена данными. В папке Inetpub сервис хранит информацию об имеющихся серверах и их настройках. По умолчанию служба IIS в операционной системе Windows 10 деактивирована, но если её включает пользователь или сторонняя программа, то на диске появляется папка Inetpub.

Можно ли удалить папку Inetpub

Если вы не пользуетесь штатными средствами Windows для создания и обслуживания интернет-серверов, то и процесс IIS, и папка Inetpub вам не пригодятся. Отключение службы и удаление папки вместе с её содержимым не навредит системе, тем более что вы всегда сможете заново активировать IIS и вернуть папку.

IIS имеет смысл отключить не только из-за того, что папка Inetpub занимает место на диске. Работая в фоновом режиме, служба IIS забирает часть ресурсов системы, что снижает производительность и замедляет скорость загрузки компьютера. Конечно, радикальным образом отключение этой службы работу компьютера не улучшит, но если стремиться оптимизировать систему по максимуму, то избавиться от неё можно.

Войдите в раздел «Администрирование» панели управления Windows чтобы определить, запущен ли процесс IIS

Удаление папки Inetpub

Если вы отключили службу IIS, то папка Inetpub вам не нужна и её можно удалить.

Удаляется ли папка Inetpub обычным способом

Большинство папок, в том числе и системных, можно удалить, щёлкнув правой кнопкой мыши и выбрав в появившемся контекстном меню функцию «Удалить». Папку Inetpub тоже можно стереть таким способом, но после перезапуска службы IIS (например, при перезагрузке компьютера) она автоматически пересоздаётся. Чтобы избавиться от папки до тех пор, пока она не понадобится, нужно воспользоваться приведённой ниже инструкцией.

Окончательное удаление папки Inetpub

Для окончательного удаления папки Inetpub необходимо отключить службу, ответственную за восстановление данных об интернет-серверах:

  1. Откройте панель управления, используя поисковую строку. Открываем панель управления
  2. Перейдите в блок «Программы и компоненты». Если вы не видите его в главном списке, воспользуйтесь встроенной поисковой строкой. Переходим в раздел «Программы и компоненты»
  3. Кликните по строке «Включение или отключение компонентов Windows», расположенной в левой части окна. Нажимаем на строку «Включение и отключение компонентов Windows»
  4. Пролистайте развернувшийся список компонентов до строки «Службы IIS» и снимите галочку с главного каталога и со всех подкаталогов. Для деактивации службы IIS снимаем галочку с пункта IIS и всех его подпунктов и нажимаем кнопку OK
  5. Дождитесь, пока изменения вступят в силу, а затем перезагрузите компьютер, чтобы система окончательно применила новые параметры. Ход процесса применения изменений показывается в специальном диалоговом окне
  6. Вернитесь в проводнике к папке Inetpub и, кликнув по ней правой клавишей мыши, выберите в контекстном меню функцию «Удалить», чтобы переместить папку в корзину. Удаляем содержимое папки или всю папку целиком

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

Видео: как удалить папку Inetpub

Решение проблемы с доступом к интернет-ресурсам

После отключения службы IIS и удаления папки Inetpub можно столкнуться с тем, что доступ к некоторым интернет-ресурсам (сайтам, онлайн-программам или облачным хранилищам данных) отсутствует или ограничен. Причиной тому могут быть как ваши действия по отключению службы IIS, так и вирус, вызывающий блокировку определённых сайтов. Выполните полную проверку системы на наличие вредоносных программ, используя имеющийся у вас антивирус, а затем выполните следующие действия:

  1. Откройте в «Проводнике» раздел жёсткого диска, отведённый под систему (обычно он обозначается буквой C). Войдите в папку Windows, а затем в подпапку System32. Откройте каталог Drivers, а в нём — подкаталог etc. Найдите и откройте файл hosts. Открываем файл hosts в системной папке etc
  2. Пролистайте содержимое файла до конца. Вы увидите список адресов, начинающийся с двух строк со словом localhost. Это адреса интернет-ресурсов, доступ к которым ограничен. Сотрите все строки в списке, а две первые (со словом localhost) оставьте. Удаляем лишние сайты из списка локальных узлов localhost

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

Папка Inetpub принадлежит службе IIS. Чтобы её удалить, необходимо предварительно отключить процесс IIS. Если этого не сделать, то папка самостоятельно восстановится при перезапуске компьютера. Деактивировать IIS можно через панель управления. Если после отключения службы возникнут проблемы с доступом к каким-либо ресурсам, необходимо отредактировать файл hosts.

Предоставить разрешение на запись DefaultAppPool к папкам в Wwwroot в EBS AWS

Я пытался дать пользователь право записи IIS AppPool DefaultAppPool двух папок в папке Wwwroot используя .ebextensions container_commands.

Есть два сценария, которые мне нужно покрыть:

  1. Уметь предоставить разрешение записи пользователя DefaultAppPool при публикации в новую среду EBS , где папка Wwwroot не содержит мое решение , когда .ebextensions бежать.
  2. Уметь переиздать в существующую среду EBS и сохранить права на запись в DefaultAppPool , где папка Wwwroot действительно содержат мое решение , когда .ebextensions бежать.

Я был в состоянии выполнить последнее, но не бывшие. Бывшее терпит неудачу, потому что я указав путь к папкам по Wwwroot кто есть права, которые я хочу изменить, но решение еще не развернуто в Wwwroot приводит к сообщению об ошибке: «Система не может найти указанный файл.»

Я попробовал другой подход, при котором я даю разрешение на запись DefaultAppPool на всю папку Wwwroot в надежде, что, когда извлекается проект, вновь добавленные папки будут наследовать разрешение от Wwwroot. Когда я делаю это, и войти в файл вывод команды Icacls, я могу подтвердить, что права на запись действительно добавлены Wwwroot. Несмотря на возможность убедиться, что разрешения записи добавляются, когда .ebextensions бежать, они как-то переодеться обратно в исходное состояние позже (только для чтения) в процессе развертывания, вероятно, путем:

Это файл .config я использовал, чтобы проверить, что разрешения изменились:

Таким образом, я спрашиваю:

Есть ли способ, чтобы предоставить разрешения DefaultAppPool пользователя на запись этих двух папок, которая работает как при публикации в новой среде EBS и когда переиздание к существующему?

Есть ли способ для запуска команд после того, как приложение было развернуто на Wwwroot, но не раньше, как сделать container_commands?

Когда я смотрю на журналы из моих .ebextensions .config файлов я вижу, что они работают в два раза, это нормально?

Defaultapppool что за папка

592 просмотра

1 ответ

18 Репутация автора

Я пытался дать пользователю IIS APPPOOL DefaultAppPool права на запись в две папки в папке wwwroot, используя .ebextensions container_commands.

Есть два сценария, которые мне нужно рассмотреть:

  1. Быть в состоянии предоставить пользователю DefaultAppPool права на запись при публикации в новой среде EBS, где папка wwwroot не содержит моего решения при запуске .ebextensions.
  2. Уметь переиздать в существующую среду EBS и сохранить права на запись в DefaultAppPool , где папка Wwwroot действительно содержат мое решение , когда .ebextensions бежать.

Я был в состоянии выполнить последнее, но не первое. Первый отказывает, потому что я указываю путь к папкам под wwwroot, чьи разрешения я хочу изменить, но решение еще не развернуто на wwwroot, что приводит к сообщению об ошибке: «Система не может найти указанный файл».

Я попробовал другой подход, где я даю DefaultAppPool права на запись для всей папки wwwroot, надеясь, что при извлечении проекта вновь добавленные папки наследуют разрешения от wwwroot. Когда я делаю это и записываю в файл выходные данные команды icacls, я могу убедиться, что разрешения на запись действительно добавлены для wwwroot. Несмотря на возможность проверки того, что разрешения на запись добавляются при запуске .ebextensions, они каким-то образом возвращаются в исходное состояние (только чтение) позже в процессе развертывания, вероятно, с помощью:

Это файл .config, который я использовал для проверки изменения разрешений:

Таким образом я спрашиваю:

Есть ли способ предоставить пользователю DefaultAppPool права на запись в эти две папки, который работает как при публикации в новой среде EBS, так и при повторной публикации в существующей?

Есть ли способ выполнить команды после того, как приложение было развернуто на wwwroot, но не раньше, чем делают container_commands?

Когда я просматриваю логи из моих .ebextensions .config файлов, я вижу, что они запускаются дважды, это нормально?

0 плюса

6 Репутация автора

@ Starkadur: у меня точно такая же проблема с развертыванием NET Core на EBS с правами на запись в файл.

Я знаю, что на данный момент уже несколько лет, но не могли бы вы предоставить более подробную информацию о том, как вы в итоге решили свою проблему? Я не могу найти много соответствующей документации нигде, поэтому я был бы очень признателен за любую информацию о вашем конкретном решении.

Заметки практикующего сисадмина

Дядя Саша Кузьмич пишет о работе

IIS DefaultAppPool

After you delete IIS application pool «DefaultAppPool» you will get error «The parameter is incorrect» when creating web site.

После удаления пула приложений IIS «DefaultAppPool» при создании сайтов будет возникать ошибка «Параметр задан неверно».

  1. Не удалять пул приложений «DefaultAppPool».
  2. Остановить IIS и в файле метабазы (%systemroot%system32inetsrvMetaBase.xml) в значении атрибута AppPoolId элемента IIsWebService указать пул приложений по умолчанию для создаваемых сайтов.

Навигация по записям

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Загадочный пользователь "IIS APPPOOL\DefaultAppPool"

Именно в контексте пользователя “IIS APPPOOL\DefaultAppPool” исполняется пул приложений по умолчанию в IIS7. Выглядит достаточно странно, как будто есть новый домен “IIS APPPOOL” (ну и название, клавиши залипали что ли) и в нём создан пользователь DefaultAppPool.

Идея, в принципе, хорошая, – разделить недоверенные приложения IIS и все остальные сетевые приложения, исполняющиеся в контексте NETWORK SERVICE. А вот реализация, как это нередко бывает, так себе. В частности через графический интерфейс для пользователя “IIS APPPOOL\DefaultAppPool” нельзя установить права доступа на файлы. Ответ старый – командная строка. Простая команда

Создаст некоторые начальные права. А вот редактировать их уже можно через графический интерфейс.

Share this:

Like this:

4 thoughts on “ Загадочный пользователь "IIS APPPOOL\DefaultAppPool" ”

А как быть с SQL сервером?

А что с SQL сервером?

Кстати, в Windows 7 права можно установить сразу через графический интерфейс – для этого нужно задавать полное имя пользователя "IIS APPPOOL\DefaultAppPool" и установить местонахождение – компьютер, на котором устанавливаются права.ПРоблема возникает, когда нужно запустить DCOM компонент (например Word или Excel). В этом случае, как ни настраивай прва доступа, он все равно упорно пытается запустить его под пользователем пула. МОжет кто-нибудь решил подобную проблему?

Примерный скрипт для SQL
USE [master]
GO
CREATE LOGIN [IIS APPPOOL\DefaultAppPool] FROM WINDOWS WITH DEFAULT_DATABASE=[Amethyst]
GO
USE [Amethyst]
GO
CREATE USER [iis] FOR LOGIN [IIS APPPOOL\DefaultAppPool]
GO
ALTER ROLE [db_datareader] ADD MEMBER [iis]
ALTER ROLE [db_datawriter] ADD MEMBER [iis]
GO

Leave a Reply Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *