我在我们的服务器上为每个客户都设置了一个文件夹。该文件夹内有属于该客户的每个项目的子文件夹。
我的问题是,公司内的不同资源负责不同的项目,并且只能访问每个客户内部的项目。
现在,当新用户需要访问项目时,我必须进入客户文件夹(共享文件夹)并授予他们访问权限,然后进入特定客户文件夹并授予他们访问权限,然后进入文件夹内选择项目并授予他们访问权限。
有没有办法只选择项目文件夹授予他们访问权限,并且让链中的所有文件夹也授予访问权限,以便用户实际可以读取文件?
答案1
如果子文件夹的可见性不是问题,您可以考虑向父文件夹添加“Authenticatd 用户/列出文件夹内容/仅限此文件夹”之类的权限。此权限不会继承到子文件夹,并且基于访问权限的枚举不会允许用户“查看”他们无权访问的子文件夹,但它会终止您对父文件夹应用权限的需要。
例子:
[ folder ] Clients
|
| -- [ folder ] Client A
|
| -- [ folder ] Client B
| |
... | -- [ folder ] Project A
|
| -- [ folder ] Project B
...
假设根目录下有可继承的权限“管理员/完全控制”和“系统/完全控制”,则将权限“经过身份验证的用户/列出文件夹内容/仅此文件夹”(在文件夹属性的“安全”选项卡中的“高级”对话框中设置)添加到根目录。如果启用了基于访问的枚举,这将导致在列出根目录时可以看到用户被授予访问权限的客户端文件夹。显然,您不必使用“经过身份验证的用户”。您可以采用更有创意的方法。
假设您在每个离散客户端文件夹中执行相同的操作,经过身份验证的用户将能够枚举整个客户端列表,但只能枚举他们有权访问的每个客户端下的项目。
但是,假设您想严格限制文件夹的可见性。这是 Active Directory 组嵌套的绝佳应用。在下面的示例中,我将不使用域本地组。从技术上讲,Microsoft 的最佳实践是将全局组嵌套到应用权限的域本地组中。如果您计划保留单域环境(并且不信任外部林),则不必遵循此做法。为了便于解释,我将仅使用 glocal 安全组。
为每个项目中的每个角色创建一个新的全局安全组:
- 客户 B,项目 B - 审阅者- 允许阅读客户B的项目B的内容
- 客户 B,项目 B - 贡献者- 允许修改客户B的项目B的内容
按照组名所述,在每个项目文件夹中应用权限。“审阅者”组将获得“读取”权限,“贡献者”组将获得“修改”权限,
为每个客户端创建一个新的全局安全组:
- 客户B项目参与者
将两者客户 B,项目 B...进入会员名单的团体客户B项目参与者组。在指定客户端的文件夹中,授予客户B项目参与者组“列出文件夹内容/仅此文件夹”权限。
为所有项目参与者创建一个新的全局安全组:
- 所有客户项目参与者
放置客户B项目参与者以及任何其他客户群体加入会员名单所有客户项目参与者组。在根文件夹中,授予所有客户项目参与者组“列出文件夹内容/仅此文件夹”权限。
当用户加入项目时,将其添加到他们所加入项目的相应组中。由于组嵌套和应用的权限,用户将自动获得枚举他们所参与项目的根文件夹和给定客户端文件夹的权限。
答案2
这里的问题是,您可能只想让该用户访问特定项目,仅此而已,当您将该用户添加到项目文件夹时,Windows 无法知道您的意图是什么,因此它什么也不做。
你可以使用以下脚本来编写代码计算机辅助语言学习系统,这样您指定用户有权访问的项目文件夹,它将为您写入其他权限(如果它们每次都是标准的)
然而,Evans 解决方案是一种更加优雅的方法,并且一旦您设置好它,您就可以忽略它。