Windows 11 上正确的系统驱动器 root 权限

Windows 11 上正确的系统驱动器 root 权限

我的 Windows 11 电脑最近报告了一些不寻常的权限错误,包括但不限于权限顺序错误警告。我认为系统驱动器的根权限已被更改。我该如何重置它们?

CACLS C:\ /S从正常运行的机器上运行 SDDL是否有意义?

在有问题的机器上,我运行 CACLS 并得到以下结果:

PS C:\> cacls c:\
c:\ <Account Domain not found>(special access:)
                              SYNCHRONIZE
                              FILE_READ_DATA
                              FILE_EXECUTE
                              FILE_READ_ATTRIBUTES

    <Account Domain not found>(special access:)
                              SYNCHRONIZE
                              FILE_READ_DATA
                              FILE_EXECUTE
                              FILE_READ_ATTRIBUTES

    BUILTIN\Administrators:(ID)F
    BUILTIN\Administrators:(OI)(CI)(IO)(ID)F
    NT AUTHORITY\SYSTEM:(ID)F
    NT AUTHORITY\SYSTEM:(OI)(CI)(IO)(ID)F
    NT AUTHORITY\Authenticated Users:(ID)C
    NT AUTHORITY\Authenticated Users:(OI)(CI)(IO)(ID)C
    BUILTIN\Users:(ID)R
    BUILTIN\Users:(OI)(CI)(IO)(ID)(special access:)
                                  GENERIC_READ
                                  GENERIC_EXECUTE

或者 SDDL 版本

PS C:\> cacls c:\ /s
c:\ "D:(A;;0x1000a1;;;S-1-15-3-65536-1888954469-739942743-1668119174-2468466756-4239452838-1296943325-355587736-700089176)(A;;0x1000a1;;;S-1-15-3-65536-1171677023-2469935273-3317266010-2937768231-83730487-3606222557-2674643231-2098219660)(A;ID;FA;;;BA)(A;OICIIOID;GA;;;BA)(A;ID;FA;;;SY)(A;OICIIOID;GA;;;SY)(A;ID;0x1301bf;;;AU)(A;OICIIOID;SDGXGWGR;;;AU)(A;ID;0x1200a9;;;BU)(A;OICIIOID;GXGR;;;BU)"

答案1

Cygwin 因在 Windows 文件系统中使用 来操作文件时会导致此问题而出名/cygdrive/。如果您遇到这种情况,请参阅帖子 在 Cygwin 中创建文件夹会导致权限顺序错误,无法打开文件 关于如何在将来避免这种情况。一般来说,以这种方式使用 Cygwin 是不好的做法,应该避免。

要解决此问题,请参阅帖子 使用 Powershell 将文件夹权限设置为域组时出现“顺序错误”错误消息

这篇文章解释了对象访问控制列表 (DACL) 中的访问控制条目 (ACE) 需要按特定顺序指定。可接受的答案包含一个 PowerShell 脚本,该脚本以正确的顺序重建 ACE,同时保留所有现有权限,而无需控制对象(永远不应该对文件夹进行控制C:\!)。该脚本需要以管理员权限运行。

答案2

icacls c:\ /save aclfile在正常工作的机器上,将为您提供便携式机器可读的 SDDL 记录,该记录可能icacls c:\ /restore在损坏的机器上被使用。将出现类似

D:AI(A;OICI;FA;;;BA)(A;OICI;FA;;;SY)(A;OICI;0x1200a9;;;BU)(A;;0x100020;;;WD)S:PAI(ML;OINPIO;NW;;;HI)

里面。

以上是我为 win11 22h2 系统驱动器自定义的真正的 ACL。记录包括 mac 标签 S:PAI(ML;OINPIO;NW;;;HI),但确实不是包括审计ACE。如果您需要端口审计 ACE,powershellget-acl -audit会将它们提供给您,但我不确定icacls是否会应用它们。

icacls c:\ /restore递归遍历 c:\ 并更新全部可继承文件和文件夹的权限,并且不是触及立即权限,我想这就是您想要的。

由于某些奇怪的原因,icacls /restore没有直接接受访问控制文件由 制作icacls /save。您需要将一个不带引号的点放入 aclfile 的第一行,即:

.(越线)D:AI(A;OICI;FA;;;BA)(A;OICI;FA;;;SY)(A;OICI;0x1200a9;;;BU)(A;;0x100020;;;WD)S:PAI(ML;OINPIO;NW;;;HI)

您在 c:\ 驱动器的 ACL 中看到的S-1-15-3-65536-1888...9176不是损坏。它随 Win11 22H2 安装映像一起提供,多次引起注意并被投诉账户未知 (S-1-15-3-65536-18 ...),2022-10-31账户未知,2022-07-28等等。我没有看到 MS 对此做出任何解释。

我尝试S-1-15-3-65536-1888...9176从系统驱动器 ACL 中删除 ACE,但它在重启后又复活了。有趣的是,审计无法发现是谁在那里添加了 ACE。

相关内容