我有我们的服务器上的每个客户端的文件夹。 在该文件夹中,每个属于该客户端的项目都有子文件夹。
我的问题是,公司的不同资源处理不同的项目,只能访问每个客户端内的项目。
现在当一个新用户需要访问一个项目,我必须进入客户端文件夹(这是共享的),并授予他们访问权限,然后进入特定的客户端文件夹,并授予他们访问权限,然后进入文件夹select项目并授予他们访问权限。
有没有办法只select项目文件夹授予他们的访问权限,并有一种方式,在链授权的所有文件夹也访问,所以用户可以实际读取文件?
如果子文件夹的可见性不是问题,则可以考虑向父文件夹添加“Authenticatd Users / List文件夹内容/仅此文件夹”等权限。 此权限不会inheritance到子文件夹,而基于访问的枚举将不允许用户“查看”他们没有被授予访问权的子文件夹,但是这将终止您对父文件夹应用权限的需要。
例:
[ folder ] Clients | | -- [ folder ] Client A | | -- [ folder ] Client B | | ... | -- [ folder ] Project A | | -- [ folder ] Project B ...
假设在“pipe理员/完全控制”和“SYSTEM /完全控制”根目录下的可inheritance权限,添加权限“Authenticated Users / List Folder Contents / This folder only”(在“高级”文件夹属性的选项卡)到根目录。 如果启用基于访问的枚举,则会列出根目录时会导致授予用户访问权限的客户机文件夹可见。 显然,您不必使用“Authenticated Users”。 你可以创造更多的东西。
假设您在每个离散客户端文件夹上都做同样的事情,那么经过身份validation的用户将能够枚举整个客户端列表,但只能枚举他们有权访问的每个客户端下的项目。
假设您想严格限制文件夹的可见性, 这是Active Directory组嵌套的一个很好的应用程序。 在下面的例子中,我将使用域本地组离开。 从技术上讲,微软的最佳做法是将全局组嵌套到应用了权限的域本地组中。 如果你打算保持一个单一的域名环境(而不是信任外部森林),你不需要遵循这种做法。 为了便于解释,我将仅使用全局安全组。
为将要出现的每个angular色的每个项目创build一个新的全局安全组:
按照组名称所述,在每个项目文件夹中应用权限。 “审阅者”组将获得“读取”权限,“供稿者”组将获得“修改”权限,
为每个客户端创build一个新的全局安全组:
将两个客户端B,项目B …组放入客户端B项目参与者组的成员列表中。 在指定客户端的文件夹中,向客户端B项目参与者组授予“列出文件夹内容/仅此文件夹”权限。
为所有项目参与者创build一个新的全球安全组:
将客户B项目参与者和任何其他客户组放入所有客户项目参与者组的成员列表中。 在根文件夹中,授予“ 所有客户端项目参与者”组“仅列出文件夹内容/此文件夹”的权限。
当用户join项目时,将其添加到正在join的项目的相应组中。 由于应用了组嵌套和权限,用户将自动有权枚举所涉及的工程的根文件夹和给定的客户机文件夹。
这里的问题是,你可能只想让这个用户访问特定的项目,就是这样,当你将这个用户添加到项目文件夹时,Windows不知道你的意图是什么,所以它什么也不做。
您可以使用CACLS编写脚本,以便指定用户有权访问的Project文件夹,并为您编写其他权限(如果每次都是标准的话)
然而,埃文斯解决scheme是一个更加优雅的方式,一旦你设置好了,你几乎可以忽略它。