Files
Nexus/docs/changelog/2026-06-01-remote-write-ssh-fallback.md

1.0 KiB

2026-06-01 远程写入 SFTP 权限回退 SSH tee/mv

摘要

解决编辑器保存时报 SFTP 写入失败: Permission denied:在 SFTP 无文件写权限但目录可写(或需 sudo)时,自动回退 SSH tee、临时文件 mv 覆盖、以及 sudo -n

动机

许多生产文件属主为 root、权限 644,SFTP 无法直接 open(wb),但目录可写时可通过 mv 替换;部分环境需免密 sudo。

涉及文件

文件 变更
server/infrastructure/ssh/asyncssh_pool.py remote_write_bytes()
server/api/sync_v2.py upload / write-file 使用统一写入

迁移 / 重启

supervisorctl restart nexus

验证方式

  1. 编辑 root 属主且目录可写的配置文件 → 保存成功。
  2. 若仍失败,在目标机为 SSH 用户配置对该路径的写权限或 NOPASSWD: /usr/bin/tee, /usr/bin/mv

补充(同日)

  • SSH tee 回退时 conn.run(input=bytes)encoding=None,否则报 utf_8_encode() argument 1 must be str, not bytes