我想知道如何限制单个(非管理员)用户使用命令提示符中的特定命令。例如:dir
应该允许,但shutdown
应该阻止。另外,这在白名单中可行吗(即,除 之外的所有命令都被阻止dir
)?
答案1
与 UNIX/Linux 操作系统不同,Windows 有两种类型的命令:内部命令和外部命令。诸如dir
、cd
、rd
、copy
、del
等命令内置于命令解释器中,因此属于内部命令。所有其他命令行实用程序(例如net
、shutdown
、telnet
、ftp
等)都是外部命令 - 它们具有关联的 .exe 文件。您可以通过在命令行中键入来获取内部命令列表help
。
内部命令是全有或全无的交易。如果您授予对命令提示符的访问权限,则您授予对它们所有权限。外部命令就像任何其他程序一样,因此如果您不希望用户运行该ipconfig
命令,您可以撤销该用户对它的读取权限。
但是,您应该知道命令行不是魔术。它不能也不会允许用户执行他们通常无法执行的操作。命令行公开的功能仍然受系统安全性的约束。没有文件夹读/写权限的用户无法使用rd
或del
删除它。如果他们没有文件夹的读取权限,他们就无法cd
进入该文件夹。
我建议你认真考虑一下你想要实现什么。阻止命令就像移除门把手。它不会阻止门被打开。如果你想要保护门,你会锁上它。
假设您想阻止shutdown
用户访问命令。但这并不能阻止他们关闭系统。实际上有十几种方法可以关闭计算机。您所做的只是阻止其中一种特定方法。相反,您应该使用安全策略来拒绝用户关闭计算机的权限。这样,任何关闭机器的尝试都将被阻止——无论他们如何尝试。这是服务器上的默认策略。
更改 Windows 目录中的默认安全权限通常也不是个好主意。它可能会造成你甚至想不到的后果。而且这些后果可能不会立即显现出来。
答案2
在运行对话框中输入 secpol.msc 来启动编辑器,然后导航到应用程序控制策略,然后导航到 AppLocker 和可执行规则
右键单击并创建可执行规则,然后选择要允许的用户或否定。然后是文件路径和下一步,然后浏览文件并使用*.*
。您可以单击“下一步”为其指定名称和注释,或者直接单击“创建”。
您还可以说否定用户 X 在*.*
文件/文件夹/路径下。但是,您必须将所有应用程序列入白名单,包括 word、firefox,甚至标准 windows 工具。
说是的创建默认规则。
您需要将新规则移至列表顶部,以便它们优先于其他规则。
注意:关机是一个 EXE,因此它会阻止它。但是,像 CD、MD、RD 这样的原生 DOS 命令是 DOS 的一部分,因此它们不会被这种方式阻止。只读文件权限可以阻止不应具有写入权限的文件/文件夹上的这些命令。