Почему, когда я добавляю доступ IIS_IUSRS RW к папке, он автоматически не разрешает доступ ISUR RW?
Я использую IIS7 (Windows Server 2008 x64), и у меня есть настройка веб-сайта с использованием анонимной аутентификации. Аноним пользователя настроен как IUSR. Приложение записывает файлы в папку, и я даю разрешения RW группы IIS_IUSRS на эту папку. Это не работает Я должен явно дать разрешения IUSR RW, чтобы приложение могло записывать в папку.
Насколько я понимаю, идентификатор пула приложений автоматически добавляется в группу IIS_IUSRS. Я предположил, что IUSR (или любой анонимный пользователь) также был подразумеваемым членом группы IIS_IUSRS. Не похоже, что это так.
При устранении неполадок я использую Process Monitor для просмотра доступа к папке и определил, что сетевая служба (удостоверение пула приложений) олицетворяет IUSR (это то, что я ожидал), но предоставление разрешений RW группе IIS_IUSRS не позволило IUSR получить доступ к доступ к файлу запрещен).
Кто-нибудь может объяснить, является ли IUSR членом группы IIS_IUSRS или нет?
Я просмотрел следующую документацию и не нашел четкого ответа:
Общие сведения о встроенных учетных записях пользователей и групп в IIS 7
1 ответ
Это потому, что это две разные вещи. IIS_IUSRS - это группа для учетных записей рабочих процессов IIS. Это означает идентичность, под которой работает сам пул приложений. IUSR - это анонимный пользователь. Это означает идентичность, которую IIS считает пользователем, который получает доступ к сайту.
Теперь, даже если вы не сказали этого, позвольте мне догадаться - это приложение классического Asp? (В противном случае, если это.Net, то вы должны использовать олицетворение). В любом случае происходит то, что к ресурсам обращаются как к олицетворенной личности, то есть к анонимному пользователю в вашем случае, то есть к IUSR. Вот почему вы должны предоставить ему права. В.Net, если вы отключите олицетворение, вы обнаружите, что IIS_IUSRS вступит в игру, как вы ожидаете. В Classic ASP (и для статических файлов) у вас нет выбора, олицетворение всегда "включено"; поэтому всегда используется идентификатор пользователя, а не идентификатор пула. Так как IIS_IUSRS предназначен для идентификаторов пула, он не находится в игре.
Изменить после того, как OP добавил больше информации:
IUSR и IIS_IUSRS легко спутать из-за их названий. Чтобы увидеть, что они разные, нужно помнить, что IIS_IUSRS является заменой для IIS_WPG в IIS6, которая была группой рабочих процессов. В эти группы вы добавляете учетные записи, под которыми вы хотите запускать свои пулы, а не идентификаторы, а привилегии должны быть более ограниченными. например. иногда вам может потребоваться использовать учетную запись домена для запуска пула для делегирования kerberos другим сетевым ресурсам. Затем вы добавили бы эту учетную запись в эту группу.
Когда олицетворение включено, пул / процесс притворяется пользователем, потому что ему было сказано. В случае anon auth (ваш случай) этим пользователем является IUSR. В случае аутентификации windows это будет идентификатор пользователя windows\domain. Именно поэтому вы получаете снижение производительности при олицетворении, потому что процесс должен переключиться на другую идентификацию для доступа к ресурсам.
Если вы используете.NET и анонимную аутентификацию, тогда я не понимаю, почему вы бы включили олицетворение. Если вы не используете или не нуждаетесь в олицетворении, вы должны знать о некоторых хитростях в случае IIS7: вы можете заставить свой IUSR полностью исчезнуть и покончить с путаницей. Я думаю, что вам это понравится, и это мой любимый метод тоже. Все, что вам нужно сделать, - это попросить его повторно использовать идентификатор пула в качестве анонимного идентификатора.
Поэтому после этого вам придется иметь дело только с группой IIS_IUSRS. Но не смущайтесь, это еще не значит, что эти два одинаковы! Возможно, идентификатор процесса может заменить IUSR, но не наоборот!
Еще одна хитрость IIS7, о которой нужно знать: если вы посмотрите на IIS_IUSRS, он может быть пустым. Это потому, что ваши виртуальные пулы автоматически добавляются в него при запуске пула, поэтому вам не нужно беспокоиться об этих вещах.
Эта таблица должна помочь лучше понять, как определяется идентификатор выполнения потока:
Ресурсы анонимного доступа для олицетворения, доступные как Включено Включено IUSR_computer в IIS5/6 или IUSR в IIS7 или, Если вы изменили учетную запись пользователя anon в IIS, все, что вы там установили Включено Отключено MYDOM\MyName Отключено Включено NT Authority\ Сетевая служба (удостоверение пула) Отключено Отключено NT Authority\ Сетевая служба (удостоверение пула)