Files
Nexus/docs/changelog/2026-06-07-rsync-push-www-permissions.md
2026-07-08 22:31:31 +08:00

1.1 KiB
Raw Permalink Blame History

Changelog — 2026-06-07 推送文件默认 www:755

摘要

文件推送(rsync)后远程文件保留 SSH 用户(多为 root)属主与源权限,导致站点目录下文件为 root,Web 进程(www)无法读写。

动机

用户反馈:「推送文件权限问题,推送过去的文件应该为 www 755 不是 root」。

变更

  • server/config.py:新增 NEXUS_RSYNC_PUSH_CHOWN(默认 www:www)、NEXUS_RSYNC_PUSH_CHMOD(默认 D755,F755
  • sync_engine_v2._rsync_push:非 dry-run 时附加 --chown / --chmod(需对端 rsync 以 root 接收,与宝塔推送习惯一致)
  • tests/test_rsync_push_permissions.py:默认值与非法 chown 拒绝

涉及文件

  • server/config.py
  • server/application/services/sync_engine_v2.py
  • tests/test_rsync_push_permissions.py

迁移 / 重启

  • 需重启 API / 重建 Docker 镜像
  • 无 DB 迁移;可通过 .env 置空 NEXUS_RSYNC_PUSH_CHOWN= 关闭

验证

. venv/bin/activate && pytest tests/test_rsync_push_permissions.py -q
# 推送后子机: ls -la <target_path> 应为 www www,目录/文件 755