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

Назначение привилегий папок для удостоверения пула приложений (только в интерфейсе командной строки)

У меня есть сайт, работающий на IIS 10 в пуле приложений по умолчанию.

Мне нужно дать ему разрешение на чтение в дереве папок в докер-контейнере (Windows).

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

Я пробовал:

  1. icacls "C:\inetpub\MyWebsite" /grant "IIS AppPool\DefaultAppPool":(OI)(CI)F
  2. icacls "C:\inetpub\MyWebsite" /grant "IIS AppPool\MyWebsite":(OI)(CI)F
  3. icacls "C:\inetpub\MyWebsite" /grant "ApplicationPoolIdentity ":(OI)(CI)F (Ошибка: не было выполнено сопоставление между именами учетных записей и идентификаторами безопасности.)
  4. icacls "C:\inetpub\MyWebsite" /grant "Network Service":(OI)(CI)F
  5. icacls "C:\inetpub\MyWebsite" /grant "IIS_IUSRS":(OI)(CI)F

Добавьте разрешения на чтение (не полные) к учетной записи IUSR. Или скажите IIS не использовать IUSR для анонимного доступа:

Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location 'SiteName' -filter "system.webServer/security/authentication/anonymousAuthentication" -name "userName" -value ""

Замените SiteName названием своего сайта.

да, не определяйте, под каким пользователем работает приложение IIS. это ужасная идея, вы хотите создать безопасный пул, не разбивающий всех при доступе к опросу приложения.

Вместо этого сделайте следующее:

  1. создать нового пользователя на виртуальной машине
  2. назначить нового пользователя для опроса приложения
  3. дать пользователю разрешение на чтение всех каталогов, к которым вы хотите иметь доступ из IIS

сделать шаги, которые я бы использовал Powershell

 Import-Module WebAdministration
 Set-ItemProperty IIS:\AppPools\$($pool.name) -name processModel -value @{userName="$($creds.UserName)";password="$($creds.GetNetworkCredential().Password)";identitytype=3}