我有一个 Windows 2008 R2 文件服务器,为 Win 和 Mac (SMB) 客户端提供服务。我有 5 个文件夹:Happy Sad Lonely Stinky 和 Grumpy。除 Happy 和 Sad 外,所有文件夹都应对域用户公开,而 Happy 和 Sad 应仅限于 Happy 和 Sad 安全组 (Active Directory)。我希望每个有访问权限的人都能创建文件夹和文件,但不能删除根共享。但他们应该能够删除共享内的文件和文件夹。此外,我希望文件和文件夹的创建者所有者能够更改权限,以便他们可以将他们创建的文件夹限制为个人或组。权限继承似乎使这项任务变得困难。请帮忙。
答案1
你正在寻找的是完全可能的,但是可用性是一个相当大的挑战。这一切都可以通过命令行调用来完成(在 Windows 上,Mac 用户就没那么幸运了),复杂程度各不相同,但 GUI 完全属于“高级”的范畴。
赋予创建者所有者对创建的文件和目录进行任何操作的权限,但不能对顶级目录进行任何操作:
icacls grumpy /grant *S-1-5-11:(Rx) # Authenticated Users: RO top
icacls grumpy /grant *S-1-5-11:(io)(M) # Grant Auth users Modify to subs
icacls grumpy /grant *S-1-3-0:(io)(oi)(ci)(f) # Creator-Owner for new objs
这将创建一个 Grumpy 目录,经过身份验证的用户将无法删除 Grumpy,但可以在其下执行几乎任何操作,以及对他们实际创建的任何内容执行任何操作。
受限组版本非常相似:
icacls happy /grant happy-people:(Rx)
icacls happy /grant happy-people:(io)(M)
icacls happy /grant *S-1-3-0:(io)(oi)(ci)(f)
(F) 权限赋予用户做任何事的权力,包括修改访问列表。
至于您请求的其余部分,这就是糟糕的用户因素发挥作用的地方。正如我所说,这是可以做到的,但培训您的用户正确做到这一点将是一个持续的挑战(而 Mac 用户将没有运气)。
某用户决定锁定自己创建的某个文件夹,只允许合适的人员访问:
icacls grumpy\Newsbits /inheritance:d
icacls grumpy\Newsbits /remove *S-1-5-11
icacls grumpy\Newsbits /grant grumpy-news:(oi)(ci)(M)
第一步是阻止继承。
第二步是删除授予其他所有人访问权限的权限。
第三步是将权限授予额外的组。
去向何方真的真的当您尝试在某个受限目录中执行此操作时,情况就很糟糕了。
icacls happy\mystuff\Newsbits /inheritance:d
icacls happy\mystuff\Newsbits /remove happy-people
icacls happy\mystuff\Newsbits /grant happy-news:(oi)(ci)(M)
工作流程相同,但您的用户有一个问题:他们无法从“happy”开始向下浏览。他们必须happy\mystuff\Newsbits
直接访问目录。事实上,您可以让它工作,但这需要修改mystuff
目录上的 ACL 以允许通过。
icacls happy\mystuff /grant happy-news:(rd)
所有这些都可以通过 Windows GUI 完成,但 icacls 使记录变得更加容易。
正如我所说,可以做到。但还达不到可用程度。