我试图了解 IIS 权限如何工作,因为我今天遇到了一个奇怪的情况。
因此,其中一名开发人员在服务器上安装了 IIS 10,并在 C:\WebSites\Site1 下创建了一个网站
现在,该特定站点还将一些 txt 日志文件写入 C:\Site1-Logs。
Site1 的应用程序池作为“ApplicationPoolIdentity”运行。
理论上,运行站点(IIS AppPool\Site1)的用户应该有权在 C:\Site1-Logs 目录下写入/创建 txt 文件,而无需手动设置该权限?
因为我在“安全”选项卡下找不到任何与 IIS_USRS 组或“IIS AppPool\Site1”用户相关的内容。
当我尝试将日志写入移动到另一个分区(E:)时,我必须授予“IIS AppPool\Site1”写入权限,并且我实际上可以在“安全”选项卡下看到该权限。
所以也许我遗漏了什么?默认情况下,IIS 安装为系统服务,并且已授予其写入 C: 的权限?
从安全角度来看,是否有最佳实践?在 C: 下运行 Web 应用程序可以吗?
谢谢,抱歉我的解释不好 :P
icacls C:\Site1-Logs
C:\Site1-Logs NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
BUILTIN\Administrators:(I)(OI)(CI)(F)
BUILTIN\Users:(I)(OI)(CI)(RX)
BUILTIN\Users:(I)(CI)(AD)
BUILTIN\Users:(I)(CI)(WD)
CREATOR OWNER:(I)(OI)(CI)(IO)(F)
答案1
该组BUILTIN\Users
对您的目录具有写访问权限C:\Site1-Logs
。
该用户IIS AppPool\Site1
自动成为该组的成员,Users
因为这是 Windows 下的特殊组。
这就是为什么您的网站具有写权限。
您无法IIS AppPool\Site1
从中删除,但您可以从目录中users
删除组的权限。users