据我了解,最佳实践建议将安全组与 Windows 域一起使用,以分配对文件和文件夹的权限。也就是说,您应该在 Active Directory 中创建组,用用户填充它们,然后通过组而不是单个用户分配对文件夹和文件的权限。我可以看到这种方法的好处,但是:
在我的组织中,我们使用公司信息系统进行日常运营。每个项目和部门都记录在系统中,系统知道每个部门和项目属于谁。我们正在实施一种文件夹同步机制,系统可以通过该机制将权限应用于我们文件服务器中的共享文件夹,以复制我们的组织结构。例如,如果我们有一个“销售”部门,其中有成员 Alice 和 Bob,系统将创建一个共享文件夹“Sales”并为其授予 Alice 和 Bob 的权限。这很好用,实际上消除了手动为文件夹和用户分配权限的需要。
问题是我们不确定 Active Directory 组在这种情况下是否仍然有意义。原则上,我们假设将为每个部门和项目创建一个或多个 AD 组,并像往常一样为其分配权限。例如,对于销售部门的负责人和成员,会有 Dept-Sales-Head 和 Dept-Sales-Members 组,每个组都有自己的成员,权限将通过这些组分配。我们的自动化系统能够创建和管理 AD 组。但是我们担心随着我们公司组织实体数量的增加,我们最终会得到太多的组。我似乎记得不建议每个域拥有超过 5000 个组,而且我们很可能在几年内接近这个数字,因此这种方法无法扩展。
我们正在考虑的另一个选择是放弃安全组并让自动化系统使用个人用户帐户为文件夹分配权限。这将消除上述问题,但我们担心像这样的无组安全方法可能会产生我们现在无法预料的不良后果。
所以我的问题是:这种无组的文件系统权限分配方法是否有意义?从长远来看,您是否预见到任何不良后果?
在设计环境时,最佳实践是由于各种业务或技术原因而偏离的起点。如果用户可能需要访问接近 1,000 个的项目 - 这可能是技术原因。
鉴于当前的Active Directory最大值(超过 20 亿个对象总数;用户组成员最多约 1000 个,组成员最多 5,000 个),我相信“我们担心我们最终会拥有太多组”是无效的技术原因。
但是,如果企业有另一个应用程序可以根据用户在组织中的角色更新对文件和资源的访问(这本质上是嵌套的 AD 安全组试图实现的目标),这听起来像是证明跳过的正当理由这个特定的最佳实践——或者至少注意到它是通过其他方式实现的。好像您不是在讨论在 Active Directory 中完全删除组,只是用于控制对文件共享的访问的组。
诚然,如果您只是要在 Active Directory 中管理类似组合的组(GPO 的安全过滤、组策略首选项的项目级目标、服务器/工作站上的用户权限分配、对 Active 中对象/分支的委托访问目录、AD 或 LDAP 身份验证对其他应用程序或资源的访问),那么仅仅为这件事删除组可能没有多大意义。但是,如果我正确阅读了您的问题,则对组织中资源的一般访问与对这些基于“每个项目”的文件共享的受控访问不同。我做对了吗?
此外,在审查分配对文件共享的访问权限时,我总是建议查看动态访问控制。
如果应用程序没有清理过时帐户的条目,则 SACL 会不必要地长。
当没有实际数据更改时不必要的复制和更大或更长时间的备份,因为文件夹/文件上的 ACL 更改比简单静态 ACL 所需的更频繁。
首先,自动化是好的。你们正在尝试自动化管理这些乏味的事情,这真是太好了。但是,我发现尝试将文件权限直接分配给用户有两个潜在问题。
文件系统性能影响。假设您有一个包含数千或数十万个文件的共享,您需要添加或删除员工对该共享的访问权限。即使共享权限中的所有内容都是从根文件夹继承的,操作系统仍然需要修改每个文件的 ACL 以更新这些权限。由于份额很大,这既会花费很长时间,也会降低文件服务器在处理时的性能。将权限应用于组时,影响为零,因为 ACL 中实际上没有任何变化。
大型 ACL 的性能问题。诚然,我不知道这可能是什么症状。但我必须相信,如果 ACL 包含数百或更多个人用户条目,将会产生负面影响。我猜你会从客户端看到更多的延迟,因为服务器必须做更多的工作来处理 ACL。您可能还会看到服务器本身的负载更高,需要更强大的硬件来完成相同的任务。