1.4 KiB
1.4 KiB
2026-06-11 文件管理上传后自动 www 权限
摘要
文件管理上传完成后,自动对远端文件执行与推送相同的 chown www:www 与文件 chmod(默认 755,来自 NEXUS_RSYNC_PUSH_CHOWN / NEXUS_RSYNC_PUSH_CHMOD)。
动机
上传文件默认属主常为 SSH 登录用户(如 root),与站点运行用户 www 不一致,导致 Web 无法读写。推送已用 rsync 权限参数统一属主,上传路径此前缺失同类修正。
涉及文件
server/utils/files_upload_permissions.py— 解析 push 配置并 SSH chown/chmodserver/api/sync_v2.py—_sftp_upload_one写入后调用 fixup,响应与审计带permission_fixupfrontend/src/composables/files/useFilesActions.ts— 权限修正失败时 warning 提示tests/test_files_upload_permissions.py— 单元测试
配置
与推送共用环境变量(默认已启用):
NEXUS_RSYNC_PUSH_CHOWN=www:wwwNEXUS_RSYNC_PUSH_CHMOD=D755,F755(上传取F755→ 文件755)
置空两者则跳过上传后权限修正。
迁移 / 重启
- 无需数据库迁移
- 需重启 API 容器使后端生效;前端需重新 build 部署
验证
pytest tests/test_files_upload_permissions.py -q
bash scripts/local_verify.sh
浏览器:文件管理上传 → ls -la 应显示 www www 及预期 mode;若 sudo 白名单不足,界面 warning 且上传仍成功。