1.1 KiB
1.1 KiB
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.pyserver/application/services/sync_engine_v2.pytests/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