更多 Windows 文件共享问题

更多 Windows 文件共享问题

这一直困扰着我。我正在将未加入我们域的独立文件服务器转换为使用 AD Groups\Users 进行文件共享。此文件服务器过去使用本地计算机帐户进行共享权限。我已将文件服务器加入域,因此现在我想用 AD 中的正确权限替换共享权限。

也许我需要解释一下,但出于某种原因,我无法让它工作。例如,我有一个共享文件夹:

\\fileserver\jsmith

在此文件夹中,共享权限设置为 AD 用户 John Smith 具有完全控制权。NTFS 权限(这就是“安全”选项卡中的内容,对吧?)设置为:

FILESERVER\Adminstrators — 完全控制
CREATOR OWNER — 特殊权限已选中并显示为灰色
SYSTEM — 完全控制(尽管它显示为灰色)(以及允许列中的其他复选框)
FILESERVER\Users — 读取和执行、列出文件夹内容和读取(全部显示为灰色)

根据我的理解(也许我错了),用户 John Smith 应该能够访问\\filserver\jsmith并能够打开那里的任何文件和文件夹以及创建文件和文件夹。

但事实并非如此。John Smith 在尝试访问此共享时收到“访问被拒绝”消息。

编辑:澄清一下,当 John Smith 在 Windows 资源管理器中输入共享的 UNC 路径 ( \\fileserver\jsmith) 并按 Enter 键时,他收到了“访问被拒绝”消息。

也许我没有理解这整件事。那么,什么是实现我想要的“正确”方法:让 AD 用户或组对共享文件夹具有读写访问权限。

答案1

“DOMAIN\JSmith”用户在尝试访问共享时不应收到“拒绝访问”消息,但在尝试创建或修改托管在那里的文件时应收到“拒绝访问”消息。您能否结合我之前的陈述,解释一下“John Smith 在尝试访问此共享时收到拒绝访问消息”是什么意思?

一般来说,“共享权限”应始终设置为“所有人/完全控制”。这是一个愚蠢的错误功能,源自人们可能共享非 NTFS 卷上托管的文件夹的时代。(有人想争论吗?呵呵……)

“共享权限”由“服务器”服务强制执行。如果用户能够通过其他方法访问文件(文件系统中具有不同“共享权限”的更高级别的“共享”,使用其他协议通过 IIS 导出的文件等),则“共享权限”将不适用。在 NTFS 权限中指定您的权限,然后无论用户如何访问文件,NTFS 驱动程序都会强制执行所需的权限。

出于学术目的,我将解释“共享权限”的工作原理(但我仍然鼓励您始终将其设置为“所有人/完全控制”):“服务器”服务(负责通过 SMB 协议导出“共享”文件夹)验证底层 NTFS 是否允许用户尝试访问(读取、写入等),然后根据“共享权限”检查用户尝试的访问。如果任一权限不允许所需的访问,则访问尝试失败。在“共享权限”中将“DOMAIN\JSmith”设置为“完全控制”权限不会更改底层 NTFS 权限。在文件系统级别,“DOMAIN\Domain Users”组的成员“DOMAIN\JSmith”具有读取、执行和列出文件夹内容权限,这是因为当您加入域时,“DOMAIN\Domain Users”默认嵌套在“FILESERVER\Users”组中。

除了专门为该用户创建的文件夹(例如漫游用户配置文件文件夹或主目录)外,您永远都不应该在权限中命名单个用户。由于此共享名为“JSmith”,我猜想它是一个主目录。将“DOMAIN\JSmith”和“修改”或“完全控制”(取决于您是否希望 JSmith 能够修改文件夹和子文件夹的权限 - “完全控制”将赋予他该权利)添加到文件夹的 ACL 中,然后您就可以开始了。

如果共享文件夹用于其他目的(即用于“工作角色”或用户之间的共享),则应用权限的正确方法(tm)是创建一个描述与访问相关角色的组(例如,“采购部门”),授予该组对资源的 NTFS 文件夹的权限(例如,“修改”),并将适当的用户放入该组中。

当工作角色发生变化或人员流动时,您只需将“新人”放入适当的组中,即可确保他们对资源的访问权限。如果您在权限中指定了单个用户,那么确保新用户访问权限的唯一方法是访问每个资源并添加新权限(如果工作角色发生变化,则可能删除旧权限)。如果您没有妥善记录向各个用户应用各种权限的位置,那么您将永远无法创建与现有用户具有“相同权限”的新用户,而无需对所有资源进行大量调查。

即使一个小组只有一个成员,也要创建一个小组。当你需要将其他人分配到小组时,你会感谢你自己。

编辑:

访问控制列表 (ACL) 是应用于资源的访问控制条目 (ACE) 的列表。ACL 是您在属性表的“安全”选项卡和“高级”对话框中看到的。ACL 的每一行都是一个 ACE。(我想把“ACE”带进去,以防您在文档中看到它并想知道它是什么意思……)

您会在“安全”选项卡和“高级”对话框中看到相同的内容,只是呈现方式不同(“高级”对话框中有更多详细信息)。

我无法理解为什么您在访问共享时可能会看到“访问被拒绝”信息,正如您所描述的那样。当 JSmith 使用其域帐户登录到他的客户端计算机,并且 FILESERVER 计算机已加入域时,您应该不是收到“拒绝访问”消息。您确定 JSmith 已使用其域帐户登录客户端计算机吗?

答案2

实际上,您受到的安全策略限制最为严格。因此,如果您的共享对具有读写权限的文件夹具有只读权限,那么您将获得只读权限。同样,如果您的共享具有读写权限,但文件夹是只读的,那么您将获得只读权限。

我并不是说这是正确的做事方式,但我经常看到每个人都具有 RW 权限的共享,并且所有安全性都依赖于共享文件夹的 NTFS 权限。

答案3

如果共享不在驱动器的根目录中,那么必要的用户帐户是否至少具有遍历目录?

例如:如果您有一个名为 D:\Users 的文件夹,并且其中有文件夹,那么这些帐户需要能够遍历 D:\ 和 D:\Users,否则它们将收到访问被拒绝的提示。

答案4

您需要做的是,设置一个名为“用户”的顶级共享,而不是为每个用户设置单独的共享。在共享级别为此添加足够的权限,以便所有域用户都可以访问它。然后在此共享下,为每个用户创建一个子目录。不要共享它,只需在其上设置所需的 NTFS 权限。然后用户将通过 \\servername\users\username 访问它。

相关内容