修复 AGC Windows ACL 提权与文件访问边界 #211
Reference in New Issue
Block a user
Delete Branch "fix/windows-acl"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
背景
Windows 下 AGC 读取配置目录、项目文件和本地资源时,可能先于 ACL 校验阶段就因继承权限、错误 owner 或拒绝访问而失败,表现为
拒绝访问。 (os error 5)。此前自定义
--config-dir场景还存在 scope 无法传递到提权子进程的问题;native picker 路径也缺少进程内来源证明,递归索引可能跟随 junction/reparse point,新建文件在权限加固失败时可能留下残留文件。本次变更
--config-dir的managed / user-selectedscope 传递与提权票据校验。user-selected自动提权。symlink_metadata(),拒绝 symlink、junction 和 Windows reparse point。share_mode(0)独占打开后与GetNamedSecurityInfoW/SetNamedSecurityInfoW产生共享冲突的问题。安全行为
1223,不会被当作成功。验证结果
已执行并通过:
另外确认:
origin/master是当前分支祖先。cargo test未作为通过依据;此前存在与 ACL 无关的失败项。cargo fmt --check仍受仓库已有格式漂移影响,本次未执行全仓库格式化。手工验收
使用:
验收标准:
exit code 1223。exit code 1,ACL 修复完成后继续启动。当前 head 的 Backend tests 与 Native shell tests 均失败,需先修复并重新跑完整 CI 后再合并。失败状态见该提交的 Project CI;本次先请求修改。
请在修复 Backend/Native shell CI 失败并取得最新全绿结果后再合并;当前远端门禁仍为失败。
Close #216