Я запускаю IIS 8.5 с PHP (разные версии) через FastCGI. Олицетворение включено в конфигурации PHP для FastCGI. Пул приложений настроен на использование удостоверения пула приложений. Фактически, если я на самом деле специально запрещаю доступ для записи в файл, он ведет себя соответствующим образом, однако по умолчанию кажется, что все файлы доступны для записи на мой сайт.
Просмотр действующих разрешений говорит о том, что моему удостоверению пула приложений (IIS AppPool \ PoolName) не должно быть назначено никаких разрешений. Есть ли какая-то учетная запись по умолчанию, от которой наследуется удостоверение пула приложений, которое мне нужно настроить, чтобы по умолчанию запретить доступ для записи. Все, что я читал, похоже, указывает на то, что идентификатор пула приложений по умолчанию должен иметь доступ только для чтения к виртуальной папке, которой назначено приложение, но это не соответствует наблюдаемому поведению (в частности, PHPBB3 жалуется, что файл конфигурации доступен для записи и без специального установив доступ на запись, могу загружать файлы через форум).
Что может мешать разрешениям, или я неправильно понимаю предполагаемое поведение по умолчанию?
Я еще немного покопался и, наконец, смог найти ответ на этот вопрос. Похоже, что была применена настройка, которая сделала файлы доступными для изменения на «Прошедшие проверку». Нарушение наследования и удаление этого разрешения решили проблему.
По-видимому, он включен в группу «Пользователи», а также в группу «Прошедшие проверку», чтобы гарантировать, что у него есть доступ к загрузке библиотек DLL и т.п. я нашел этот ответ на SO, что было очень полезно для понимания этого.