Files
Nexus/docs/changelog/2026-06-21-server-transfer-www-permissions.md
T
r 6859846b7c sync: 主项目全量同步(含 btpanel 一键登录回归修复与前端构建产物)
- bootstrap 失败恢复 SSH 临时登录回退
- ssh_bootstrap 真安装检测与 config 目录自愈
- axs Gitea 发布源切换为 https://axs.kuma1xn.vip
2026-07-08 23:52:40 +08:00

1.5 KiB
Raw Blame History

跨服务器传输:传输后 www 权限

日期2026-06-21

摘要

跨服务器直传(relay)与打包投递(deliver/pull)完成后,在目标机上自动执行 chown -R www:wwwNEXUS_RSYNC_PUSH_CHMOD 对应 chmod,与 rsync 推送、文件上传后权限策略一致。

动机

用户要求「传输过去的文件都要是 www 权限」;此前 SFTP 中继与 curl 解压只写文件,不调整属主,导致宝塔站点无法读文件。

涉及文件

路径 说明
server/utils/files_upload_permissions.py 新增 apply_transfer_permissionsparse_upload_dir_mode
server/application/services/server_file_transfer_service.py relay / pull 完成后调用权限修复
tests/test_files_upload_permissions.py 递归 chown/chmod 单测
tests/test_server_file_transfer.py relay mock _apply_dest_permissions
deploy/rsync-local-to-server.sh 中心机无 www 用户时自动用部署目录属主
deploy/deploy-production.sh 同上,前端 tar 解压 chown

配置

  • NEXUS_RSYNC_PUSH_CHOWN(默认 www:www
  • NEXUS_RSYNC_PUSH_CHMOD(默认 D755,F755
  • 中心机部署属主:NEXUS_DEPLOY_CHOWN 可覆盖;未设置且无 www 用户时用 stat 检测

验证

pytest tests/test_files_upload_permissions.py tests/test_server_file_transfer.py -q

生产传输页直传/投递后,目标路径 ls -la 应为 www:www

回滚

还原上述 Python 文件并重启 API;部署脚本属主检测为向后兼容,可保留。