Windows 上是否有与 Linux 上的“noexec”挂载选项等效的文件系统选项?如果我设置“读取”权限,但取消设置根目录(整个驱动器)上的“读取和执行”权限,情况是否相同?对于本地用户,也对于访问 Windows Server 计算机上的共享目录的 LAN 用户。
我想知道我是否可以禁用从数据驱动器/分区运行任何程序的可能性,包括不能创建自己的子目录并设置执行权限。因此,用户必须能够读取和写入,但不能执行任何程序,包括 BAT。当然,这是为了防止恶意软件。可以这样做吗?
答案1
Windows 中没有与文件系统的“noexec”挂载类似的功能。Microsoft 的简单“读取”权限概念包括执行权限(因为执行实际上只是加载程序将映像读入内存)。
您可以修改“高级”版本的权限以删除(或拒绝)“遍历文件夹/执行文件”权限。这将阻止双击或命令行执行 .EXE 文件。.BAT 和 .CMD 文件不会通过在 Explorer 中双击来执行,但它们仍将从命令提示符或使用“开始/运行”中的语法“CMD /c ”执行。
更改权限会破坏“noexec”挂载的“类比”,因为“noexec”不需要对已挂载卷的权限进行任何修改。
你最好看看软件限制策略作为实现您所寻找目标的一种方式。此功能会更改用于执行程序的 API 的行为,以限制可从中执行程序的路径(或通过数字签名或加密哈希)。假设您的本地用户没有“管理员”权限,则此功能在某种程度上会有效。
但归根结底,如果计算机上有任何文件系统位置允许用户写入文件和执行文件,那么用户可以将程序从受限执行路径复制到此位置并从那里执行程序。您需要非常谨慎地确保不存在这样的位置。
另外,软件限制策略可以用于“默认拒绝”模式,其中只有指定的路径(或数字签名或加密哈希)才允许执行。这也相当难以设置,因为您需要测试所有应用程序以确保它们执行成功。
您没有提到您谈论的是哪个版本的 Windows。对于 Windows 7 和 Windows Server 2008 R2,软件限制策略是应用程序锁并且功能也类似。
答案2
转到驱动器的安全选项(右键单击,安全选项卡),然后单击“编辑”;如果您想阻止标准用户在驱动器上执行任何操作,您可以选择“用户”条目并取消选中“读取和执行”并保持“读取”处于选中状态。