我正在创建一个新的 Windows 2008R2 文件服务器,并且在使用基于访问的枚举时遇到了一些问题。
我不只是想迁移所有数据和权限,因为我们的结构在过去约 15 年的过程中不断增长,老实说,这是一团糟。因此,我正在努力为此付出尽可能多的努力。
我设置了一个基于域的 DFS-N(数据),其中发布了每个部门(dept1 到 dept 4)的共享。在测试时(是的,我们有一个测试环境!我们很幸运!)我偶然发现了一个关于基于访问的 Emuneration 的错误(?)。权限将通过嵌套不同的权限组来处理。我的问题是,将用户添加到子目录的特定组不会使他能够查看/遍历父目录。
ABE 在文件共享和 DFS-N 上均启用。
我创建了以下目录结构:
\\DFSRoot\Data\
+---dept1
| +---dir1
| | +---sub1
| | \---sub2
| +---dir2
| +---dir3
| | +---sub1
| | \---sub2
| \---dir4
+---dept2
| +---dir1
| +---dir2
| +---dir3
| \---dir4
+---dept3
| +---dir1
| +---dir2
| +---dir3
| \---dir4
+---dept4
| +---dir1
| +---dir2
| +---dir3
| \---dir4
\---dept5
+---dir1
| +---sub1
| \---sub2
+---dir2
+---dir3
\---dir4
+---sub1
\---sub2
对于每个目录,我创建了 3 个组:
所以对于\\DFSroot\Data\dept1这将是
dl-dept1-list
dl-dept1-ro
dl-dept1-rw
对于\\DFSroot\Data\dept1\dir1
dl-dept1-dir1-list
dl-dept1-dir1-ro
dl-dept1-dir1-rw
对于\\DFSroot\Data\dept1\dir1\sub1
dl-dept1-dir1-sub1-list
dl-dept1-dir1-sub1-ro
dl-dept1-dir1-sub1-rw
对于其他一切,该方案也适用。
对于每个目录,相应的组是下一级目录的列表组的成员。所以
dl-dept1-dir1-sub1-list
dl-dept1-dir1-sub1-ro
dl-dept1-dir1-sub1-rw
是dl-dept1-dir1-list的成员
继承不坏。这些 RO/RW 组对其文件夹和其中的每个子目录都有各自的权限。
列表组有特殊权限 --> ListDirectory,ReadAttributes,ReadPermissions,Traverse -->仅此文件夹
如果我将 $User 添加到dl-dept1-dir1-sub1-rw以授予对 \\DFSroot\Data\dept1\dir1\sub1 的 R/W 权限,则用户能够访问共享dept1(dl-dept1-list 的成员) 但看不到任何目录。$User 无法通过 UNC 路径访问 dir1。$User 可以通过 UNC 路径访问 sub1。
如果在共享上禁用 ABE,$user 可以毫无问题地遍历目录。
在这一点上,我被卡住了,看不到我错过了什么。
也许你们中的一个可以提供帮助。提前致谢。
我想到了。我的问题是缺少特别许可。LIST 组需要读取扩展属性才能使 ABE 工作。