Sitecore 文件夹和 IIS 权限

Posted

技术标签:

【中文标题】Sitecore 文件夹和 IIS 权限【英文标题】:Sitecore folder & IIS permissions 【发布时间】:2011-03-01 15:13:48 【问题描述】:

在设置或移动 Sitecore 解决方案时,您必须记住设置正确的文件夹权限和 IIS 权限。

这里类似于第 3.3.3.2 - 3.3.3.9 节: http://sdn.sitecore.net/Products/Sitecore%20V5/Sitecore%20CMS%205,-d-,3/Installation/EXE%20Installation.aspx

文件夹权限通常在使用安装程序时设置,但在使用 Zip 或仅移动现有解决方案时不会设置。

您可以在此处使用指南(针对 Sitecore 6):http://sdn.sitecore.net/Products/Sitecore%20V5/Sitecore%20CMS%206/Installation.aspx

但是执行步骤 3.5 到 3.6.5 很麻烦。

有人制作了可以或多或少自动执行此操作的脚本或程序吗?

将不胜感激。

【问题讨论】:

【参考方案1】:

假设您正在使用非生产实例:

在非生产环境中,授予 ASP.NET 帐户和匿名 Internet 用户帐户对网站和数据文件夹及其所有后代的完全控制权,并授予 NETWORK SERVICE 用户对D:\Sitecore\Databases 文件夹。

所以(权限是递归设置的):

ASP.NET 帐户(IIS 7 中的 IUSR)和匿名用户:完全控制:

/Website /Data

网络服务(默认 SQL Server 帐户):完全控制:

/Databases

或者您可以Cacls 从命令行设置文件/文件夹的权限。

例如,您可以使用以下语句授予Administrator 用户Write AND Deletec:\file 的权限

icacls c:\file /grant Administrator:(D,WDAC)

【讨论】:

是的,非生产环境很容易,问题在于生产环境,您希望在其中正确设置它。但我会尝试研究 icacls/cacls/SetACL,谢谢。我会给你一个答案,希望能得到更多帮助。现在,如果有人已经使用 Sitecore 的这些工具之一制作了脚本 :)【参考方案2】:

我正在使用这个脚本

Option Explicit

Dim fso, path

' get current directory
set fso = createobject("Scripting.FileSystemObject")
path = fso.GetFolder(".").Path

WScript.StdErr.WriteLine "Setting up rights"
WScript.StdOut.WriteLine "Path:" &  path

Dim appname

appname = InputBox("Name of the App Pool", , "AppPool")

If appname = "" Then
    Wscript.Quit
End If

Dim wsShell

Set wsShell = WScript.CreateObject ("WSCript.Shell")

'wsShell.run "icacls """+ path + """ /inheritance:r"
wsShell.run "icacls """+ path + """ /inheritance:e /grant ""IIS AppPool\" + appname + """:(RX)"
wsShell.run "icacls """+ path + "\App_Data"" /inheritance:e /grant ""IIS AppPool\" + appname + """:(F)"
wsShell.run "icacls """+ path + "\sitecore\shell"" /inheritance:e /grant ""IIS AppPool\" + appname + """:(F)"
wsShell.run "icacls """+ path + "\temp"" /inheritance:e /grant ""IIS AppPool\" + appname + """:(F)"
wsShell.run "icacls """+ path + "\upload"" /inheritance:e /grant ""IIS AppPool\" + appname + """:(F)"

set wsShell = Nothing

【讨论】:

请考虑在您的答案中添加解释。

以上是关于Sitecore 文件夹和 IIS 权限的主要内容,如果未能解决你的问题,请参考以下文章

站点核心 301 重定向 iis 7

sitecore禁用管理工具

Sitecore网站作为现有非Sitecore网站的子网站

Sitecore 登录所需的最低角色和访问权限

Sitecore 8 用户访问权限

IIS8 中的 IIS_IUSRS 和 IUSR 权限