管理文件系统中的权限

特权是操作系统用来控制特定操作的完全独立的机制。 每个特权都与调用方持有和启用权限时可能执行的特定操作相关联。 请注意此处的两个条件:

  • 该权限必须由调用方持有。

  • 还必须启用该权限。

此处的原则称为“最小特权”,要求在特权使用之前启用特权,而不是简单地假定权限,以最大程度地减少用户无意中执行他们不打算执行的操作的可能性。 例如, SeRestorePrivilege 通常允许调用方绕过对文件的写入访问权限的常规检查。 在复制文件时,管理员可能不希望实际替代正常的安全检查,但在使用备份/还原实用工具还原同一文件时,希望这样做。

对于文件系统,有许多特权通常用于修改正常行为 (特别是系统的安全检查) 。 这些特权包括:

  • SeBackupPrivilege 允许检索文件内容,即使文件上的安全描述符可能不会授予此类访问权限。 启用了 SeBackupPrivilege 的调用方无需任何基于 ACL 的安全检查。

  • SeRestorePrivilege 允许修改文件内容,即使文件上的安全描述符可能不授予此类访问权限。 此函数还可用于更改所有者和保护。

  • SeChangeNotifyPrivilege 允许向右遍历。 此特权是 Windows 中的一项重要优化,因为通过持有此权限可以避免对路径中的每个目录执行安全检查的成本。

  • SeManageVolumePrivilege 允许特定的卷级管理操作,例如锁定卷、碎片整理、卷卸载,以及在 Windows XP 及更高版本上设置有效数据长度。 请注意,此特定特权由文件系统驱动程序显式强制实施,主要基于 FSCTL 操作。 在这种情况下,文件系统会做出策略决策来强制实施此特权。 确定调用方是否持有此特权是由安全参考监视器作为正常特权检查的一部分进行的。

虽然存在许多其他特权,但它们通常对文件系统不透明,因此只能由安全引用监视器解释。

用于管理文件系统中特权的关键 Windows 例程包括: