如何在 Win10 上为管理员禁用 NTFS 所有权强制执行?

如何在 Win10 上为管理员禁用 NTFS 所有权强制执行?

经典案例 - 将便携式 USB HDD 移至新的 Win10 机器。其上的所有文件夹都标记为“归前一个用户所有”,因此它向我发出“您需要权限才能访问。单击继续以获得永久访问权限”的提示。是的,即使以管理员身份登录也是如此。

每次我移动装有该硬盘的机器时,这真的很烦人。修改安全权限是可行的(因为它授予访问权限),但每次修改都非常慢。

对硬盘的读/写访问由 Windows 的内核/文件系统强制执行。Linux 或任何其他操作系统都不会强制执行该操作,无论当前登录的帐户是什么,都会授予完全访问权限。因此,有没有办法在 Windows 中禁用此读/写强制执行,以便管理员(且只有管理员)可以忽略所有权并自由读取/修改任何用户/帐户/所有者的文件?这也将有助于修复所有权信息以任何方式损坏的文件。

答案1

Windows 确实有一个“安全绕过”特权(SeBackupPrivilege 又名“备份文件或文件夹”,用于不受限制的读取访问,SeRestorePrivilege 用于不受限制的写入),所有管理员实际上都默认情况下,但进程仍需要手动激活它;通常它是“按需”存在的。(例如,PowerShell 会在您要求它激活时使用 SeRestorePrivilege删除您无权访问某些内容。

读取/修改权限不是由文件所有权决定的,而是由文件 ACL(访问控制列表)决定的。虽然只有一个用户(或组)可以拥有一个文件,但您可以向文件的 ACL 添加任意数量的具有“完全控制”访问权限的用户(或组)。对于外部硬盘,最简单的方法是Everyone向 ACL 添加单个条目,这样所有权实际上就无关紧要了。

(所有权主要是为了配额核算和紧急 ACL 重置访问;后者实际上是为什么“取得所有权”是重新获得访问权限的第一步——但这只是第一的步骤;第二步是使用所有者权限设置新的 ACL。)

  1. 将磁盘上所有内容的所有权分配给“管理员”组。(这不是必需的,但可以使事情变得更容易,因为该组在全部Windows 机器。

    takeown /f Y:\ /s/A
  2. 将所有 ACL 重置为默认的“从父级继承”模式。

    icacls Y:\ /重置/t
  3. 添加对 ACL 具有完全访问权限的“Everyone”。(与内置管理员或用户组一样,特殊的“Everyone”标识符在所有 Windows 系统上也具有相同的 SID。)

    icacls Y:\ /grant "所有人:(OI)(CI)(F)"

    指定(OI)(CI)将把条目设置为“可继承”,因此它将自动传播到其下的所有文件和子文件夹Y:\

    可选地,指定:rin/grant:r将删除所有其他显式条目(将整个 ACL 替换为“Everyone”)。通常/grant仅添加到列表中。

  4. 删除其他现在多余的 ACL 条目(管理员、系统等)。

新创建的文件将再次拥有当前用户作为其所有者,但这不是问题 - 文件将继承授予Everyone完全访问权限的 ACL。

相关内容