d93c518a14
Co-authored-by: Cursor <cursoragent@cursor.com>
1.0 KiB
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
验证方式
- 编辑 root 属主且目录可写的配置文件 → 保存成功。
- 若仍失败,在目标机为 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。