在 Windows Server 上设置受限用户帐户

在 Windows Server 上设置受限用户帐户

我想在 Windows Server 上创建一个用户帐户,该帐户可以读取执行程序所需的任何部分,但除了之外C:\没有读取权限。D:\D:\Special

似乎实现前者的唯一明智方法是让该用户成为Users组的一部分。不幸的是,这也赋予了用户对 的所有内容的读取权限D:\。但是,如果我为 添加了一条拒绝规则D:\,则该规则也适用于D:\Special,并且似乎在设计上无法覆盖。

有什么方法可以实现我想要的效果,即“通常”Users访问C:\,但D:\除了读取 之外没有其他访问权限D:\Special

答案1

由于新创建的用户默认被归入此组,因此 D:\ 上的内容不应供“用户”使用。只需从 D:\ 及其所有子目录中删除“用户”和“所有人”条目即可 -不是使用“拒绝”类型的 ACE,因为它们实际上会拒绝“用户”成员的访问权限,即使用户已被其他定义的 ACE 授予访问权限。

有什么方法可以实现我想要的效果,即“通常”用户访问 C:\,但对于 D:\ 除了对 D:\Special 的读取访问权限外没有其他访问权限?

这取决于您的要求。从技术上讲,用户不需要在父目录上授予任何权限即可访问子目录。但如果您需要用户能够通过 Windows 资源管理器进行点击导航,那么如果无法列出父目录,这显然会成为一个问题。您的选择如下:

  1. 只需授予D:\special和删除对 D:\ 的访问权限,然后在那里创建快捷方式、映射或符号链接,这样用户就不必通过 D:\ 来访问special
  2. 授予访问权限D:\special,并且仅向相关用户/组授予“列出文件夹内容”权限无继承。这样用户将能够列出整个目录,但不能打开任何文件或子目录。

如果 D:\ 中的文件或目录名称没有暴露机密信息,则应优先采用第二种方法,因为它更“有机”,并且更能满足用户和应用程序员的期望。

编辑:由于 TomTom 对方法 #1 是否真的开始工作,这是我的 Windows 系统的一个简短的屏幕截图演示(抱歉,输出是德语,但这个想法应该是显而易见的)

C:\Users\denis>mkdir server

C:\Users\denis>mkdir server\fault

C:\Users\denis>echo "test" > server\fault\text.txt

C:\Users\denis>cacls server /d denis
Sind Sie sicher (J/N)?j
Bearbeitetes Verzeichnis: C:\Users\denis\server

C:\Users\denis>dir server
 Volume in Laufwerk C: hat keine Bezeichnung.
 Volumeseriennummer: C4CB-6B0E

 Verzeichnis von C:\Users\denis\server

Datei nicht gefunden

C:\Users\denis>dir server\fault
 Volume in Laufwerk C: hat keine Bezeichnung.
 Volumeseriennummer: C4CB-6B0E

 Verzeichnis von C:\Users\denis\server\fault

17.12.2011  21:08    <DIR>          .
17.12.2011  21:08    <DIR>          ..
17.12.2011  21:08                 9 text.txt
               1 Datei(en),              9 Bytes
               2 Verzeichnis(se), 14.307.930.112 Bytes frei

C:\Users\denis>type server\fault\text.txt
"test"

答案2

有什么方法可以实现我想要的效果,即“通常”用户访问 C:\,但对于 D:\ 除了对 D:\Special 的读取访问权限外没有其他访问权限?

不是,因为需要先访问 D:\ 才能访问 D:\Special。想出这个主意的人在制定计划之前就已经抛弃了自己的常识。

这根本不可能,而且与 Windows 无关 - 在任何分层文件系统中都是如此。如果没有对根文件夹的访问权限,则无法访问另一个文件夹中的文件夹。

相关内容