审计 — 文件管理 chmod 不生效修复
范围(文件清单)
| 文件 |
变更 |
server/application/services/files_browse_service.py |
ETag 含 permissions/owner/group |
server/api/sync_v2.py |
chmod/chown 分步执行 |
frontend/src/components/FilePermissionDialog.vue |
仅变更时提交 owner/group |
frontend/src/stores/files.ts |
不继承旧 etag |
tests/test_files_browse_etag.py |
权限变更 etag 测试 |
Step 3 规则扫描
| H |
规则 |
结论 |
| H1 |
304 不返回过期权限 |
PASS — ETag 含 permissions |
| H2 |
chmod 不被 chown 连带失败 |
PASS — 分步执行 |
| H3 |
CUD 审计保留 |
PASS — _audit_sync 未删 |
Closure
| H |
判定 |
依据 |
| H1 |
PASS |
compute_browse_etag |
| H2 |
PASS |
sync_v2 chmod_file |
| H3 |
PASS |
audit_bits 仍在 |
DoD
验证
文件页改 644→755 → 列表权限列更新;仅改 mode 不填 chown 时不发 owner 字段。