我们目前运营大约四台文件服务器,全部运行 Windows Server 2008 R2。
到目前为止,我们一直使用 Windows 内部文件搜索(又称“索引选项”),并且运行正常,可以毫无问题地找到所有文件。现在推出了一种新的通用搜索,这意味着爬虫将使用用户远程扫描所有文件服务器达克劳勒. 文件服务器上不会安装任何本地爬虫。
爬虫将给定用户连接到我们的文件服务器,并需要对我们创建的共享的所有文件和文件夹的只读访问权限。但是,仅在我们的主服务器上就有大约 35 万个文件夹和 2.7M 个文件,并且已设置了许多自定义 DACL。特别是,没有适用于所有文件夹或文件的根 DACL。
到目前为止我唯一的想法就是达克劳勒使用只读访问设置ACL并将其添加到每个可能存在的 DACL 中(我忽略加拿大临床神经外科学会因为我觉得 SetACL 更容易使用)。
首先,我将所有文件夹的 DACL 设置为包含 READ_EX 权限达克劳勒
SetACL -on C:\Test -ot file -actn ace -ace "n:ACME\DaCrawler;p:read_ex;i:so,sc;m:grant" -rec cont
这很好用,而且没有显式权限如果没有必要则创建:
如果有文件显式权限,它们的 DACL 没有改变,因此我重复该命令,这次仅针对文件:
SetACL -on C:\Test -ot file -actn ace -ace "n:ACME\DaCrawler;p:read_ex;i:so,sc;m:grant" -rec obj
然而,这会导致 SetACL 创建显式权限为了每一个文件即使文件之前没有明确的权限,文件夹权限也足够了:
这意味着,我可以决定仅将更改应用于可能导致某些文件无法被爬虫访问的文件夹,或者创建 2.7M 的明确权限。
有没有更好的方法可以做到这一点?我更改 DACL 的方法是否错误,是否存在更有效的方法?
答案1
您设置明确权限的解决方案将有效 - 大约一周,直到有人创建具有明确权限的新文件。
您是否考虑过将您的爬虫帐户添加到域备份操作员组?这应该使其具有对域文件服务器上任何文件的读取权限。