我的 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。