我对 IIS 还很陌生,之前用过简单的旧 Apache。
我正在尝试弄清楚如何在我在 IIS 中添加的网站上授予 777 权限。我需要该文件夹的 777 权限,因为它是一个 php 上传器,需要这些权限才能写入上传的文件。我尝试授予 IIS 用户完全访问权限,但就是不起作用...并且在 ftp 程序中检查该文件夹时,它显示 755。也不能从那里更改它..
另外,如果该文件夹位于
inetpub/wwwroot/上传器
我如何设置它以便 URL 为:
www.mysite.com/uploader
目前它只会在启动时显示
www.mysite.com
我在 Windows Server 2012 上使用 IIS8,当然具有 root 访问权限。
对此有什么想法吗?
答案1
Windows 上不存在 777 权限。您可以通过将访问控制条目 (ACE) 添加到访问控制列表 (ACL) 来设置对资源的访问权限。
假设您使用 IIS8 的默认设置,则可以像这样授予目录的写权限:
icacls.exe "C:\inetpub\wwwroot\uploader" /t /grant "IIS AppPool\DefaultAppPool:(OI)(CI)(M)"
IIS 应用程序池在“IIS AppPool\DefaultAppPool”帐户下运行,因此您需要授予它修改权限。
C:\inetpub\wwwroot\ 应该是您的站点根目录,因此“uploader”应该可以通过“www.mysite.com/uploader”访问。如果不是,请检查您站点的设置。
答案2
“不太安全”的做法是右键单击文件夹(上传),然后转到属性->安全->添加“所有人”并赋予其读/写权限
更好的方法是向其中添加用户 IIS_USR。这样更安全。但是,如果你想要 777,那么你显然不会太在意安全性。我在我的开发机器上使用所有人
答案3
WilliamStam 和 peter-hahndorf 均 +1
要使用 GUI(IIS7 和 IIS8 即 Windows Server 2008+)读取/写入/修改文件夹:
- 转到该文件夹(从 Windows 资源管理器中的服务器)
- 右键单击并选择
Properties
- 选择
Security
标签 按
Edit
如果“IIS_IUSRS”不在列表中,请按照以下步骤添加它:
- 按
Add
- 按下
Locations
(在我的企业服务器上,生成五项列表大约需要 3 分钟) - 选择本地服务器(树顶部),然后
Okay
- 键入 IIS_IUSR 并按
Check Names
,然后Okay
- 按
找到并选择条目
IIS_IUSRS (yourActualWebserverName\IIS_IUSRS)
Modify
在列中启用Allow
即可完成
你能给予它完全控制权...但是你不应该这样做因为这也会授予您(可能)永远不需要的权限,即使在 Dev box 上也是如此。