我如何限制一个组只能读取 Windows Server 的两个特定文件夹?

我如何限制一个组只能读取 Windows Server 的两个特定文件夹?

我在 Windows Server 2003 上有一组用户,他们需要能够读取两个目录的内容,但不能访问服务器上的任何其他内容(包括只读访问权限)。其中一个目录是K:\projectFour\config— 另一个是类似格式的 — 因此,组成员可以列出这些目录的内容,但实际上不能读取这些目录中的任何内容,这是可以K:\K:\projectFour\

我通过 SF/Google 找到了一些资源,包括如何限制单个文件夹/驱动器以及如何允许用户仅运行特定的可执行文件,但这些信息最终并没有解决我的问题。如果这是一件非常简单的事情,我很抱歉,我通常是一名开发人员,对服务器或组策略一无所知。最后,我应该提到,这不是一个完全具体的问题,因为它最终会被实施,但我个人目前没有 Windows Server 2003 的副本可以测试。

答案1

NTFS 有点奇怪(对某些人来说),因为相同的访问位在目录上设置时与在文件上设置时执行的操作不同。如果您在 Server 2003 上有这样的结构:

\\devsrv\projshare\projectFour\Config

要允许用户查看“config”目录的内容,但不能查看“\”和“projectFour”目录的内容(仅查看元数据),需要做几件事。我假设用户没有其他权限授予他们查看/访问该共享顶部的权限。

  • 共享的顶级目录至少需要对该目录的“RX”权限。这可以在权限对话框的“高级”设置下进行设置。
    • 勾选以下权限:“列出文件夹/读取数据”、“读取属性”、“读取扩展属性”、“读取权限”
    • 确保“应用到”显示“仅限此文件夹”
    • 此权限集允许用户映射共享而不会出现访问被拒绝错误。
  • 在“projectFour”目录上重复此步骤。
  • 在“config”目录下,授予用户简单的“读取”权限。

此权限设置虽然很复杂,但将允许用户通过本地驱动器映射到共享根目录来访问 Config 目录。他们将​​能够进入 projectFour 目录并查看其目录列表信息,但不能查看其他数据。

如果你有它,icacls 可以使这变得更容易:

(on server)
icacls k:\ /grant [usergroup]:(r)

(on client, if on server replace "\\devsrv\projshare" with "k:")
icacls \\devsrv\projshare\projectFour /grant [usergroup]:(r)
icacls \\devsrv\projshare\projectFour /grant [usergroup]:(oi)(ci)(rx)

(oi)表示“对象继承”,即“应用于文件”。

(ci)表示“容器继承”,也就是“应用于目录”。

(r)表示“读取”,当直接设置在目录上时表示“允许用户读取该目录的元数据”。

(rx) 表示“读取并执行”。与 (r) 类似,但允许用户在此结构中执行程序。

当与基于访问的枚举(可用,IIRC,在 Server 2003 R2 及更高版本上)结合使用时,用户将只能看到他们有权访问的目录和文件。在上述情况下,用户只能看到共享根目录下的“projectFour”,即使根目录下有 30 个其他目录。

答案2

如果我明白您想做什么,那么最好的办法就是为您想要限制的用户创建一个组,并仅授予该组“列出文件夹内容”的权限,以便他们能够查看但不能读取文件夹的文件。

然后,您还需要从可能授予他们该文件夹常规访问权限的任何组中删除受限用户。需要注意的一点是,我倾向于发现在许多文件服务器上,“域用户”组被授予每个人都应该可以访问的文件夹的访问权限,但后来却遇到了像您这样的情况。

相关内容