6859846b7c
- bootstrap 失败恢复 SSH 临时登录回退 - ssh_bootstrap 真安装检测与 config 目录自愈 - axs Gitea 发布源切换为 https://axs.kuma1xn.vip
1.5 KiB
1.5 KiB
跨服务器传输:传输后 www 权限
日期:2026-06-21
摘要
跨服务器直传(relay)与打包投递(deliver/pull)完成后,在目标机上自动执行 chown -R www:www 及 NEXUS_RSYNC_PUSH_CHMOD 对应 chmod,与 rsync 推送、文件上传后权限策略一致。
动机
用户要求「传输过去的文件都要是 www 权限」;此前 SFTP 中继与 curl 解压只写文件,不调整属主,导致宝塔站点无法读文件。
涉及文件
| 路径 | 说明 |
|---|---|
server/utils/files_upload_permissions.py |
新增 apply_transfer_permissions、parse_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;部署脚本属主检测为向后兼容,可保留。