У меня есть сайт, работающий на IIS 10 в пуле приложений по умолчанию.
Мне нужно дать ему разрешение на чтение в дереве папок в докер-контейнере (Windows).
Как, используя только интерфейс командной строки, я могу определить, какому пользователю нужно дать разрешение, чтобы он мог получить доступ к папкам?
Я пробовал:
icacls "C:\inetpub\MyWebsite" /grant "IIS AppPool\DefaultAppPool":(OI)(CI)F
icacls "C:\inetpub\MyWebsite" /grant "IIS AppPool\MyWebsite":(OI)(CI)F
icacls "C:\inetpub\MyWebsite" /grant "ApplicationPoolIdentity
":(OI)(CI)F
(Ошибка: не было выполнено сопоставление между именами учетных записей и идентификаторами безопасности.)icacls "C:\inetpub\MyWebsite" /grant "Network Service":(OI)(CI)F
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. это ужасная идея, вы хотите создать безопасный пул, не разбивающий всех при доступе к опросу приложения.
Вместо этого сделайте следующее:
сделать шаги, которые я бы использовал Powershell
Import-Module WebAdministration
Set-ItemProperty IIS:\AppPools\$($pool.name) -name processModel -value @{userName="$($creds.UserName)";password="$($creds.GetNetworkCredential().Password)";identitytype=3}