From cc5c7921e2177ffad090584855f591e1106f5c13 Mon Sep 17 00:00:00 2001 From: oskar Date: Mon, 13 Jul 2026 21:14:58 +0200 Subject: [PATCH] =?UTF-8?q?fix(node-agent):=20rsync=20--no-perms/--no-owne?= =?UTF-8?q?r/--no-group=20=E2=80=94=20same=20aerbot-owned=20dir=20EPERM=20?= =?UTF-8?q?as=20dir-times=20(exit=2023=20after=20omit-dir-times=20fix)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/node-agent/src/node_agent.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/services/node-agent/src/node_agent.py b/services/node-agent/src/node_agent.py index 3ed2d59..5ea48cf 100644 --- a/services/node-agent/src/node_agent.py +++ b/services/node-agent/src/node_agent.py @@ -555,6 +555,17 @@ class NodeAgent: # VPS so this workaround isn't needed (see docs/backlog.md, # "Tech-debt: globalny porządek uid/gid/uprawnień"). "--omit-dir-times", + # --no-perms/--no-owner/--no-group: same root cause as --omit-dir-times above. + # After omitting dir times, rsync next tried chmod on the same aerbot-owned + # dir and got EPERM ("failed to set permissions", exit 23) — then would try + # chown/chgrp for the same reason. -a implies -pgo; we drop all three for the + # destination dir. File CONTENT still transfers correctly (that is all the + # observer needs); only attribute-setting on the remote dir is skipped. + # TODO tech-debt: fix ownership of /opt/homelab/events/ on VPS so none + # of these workarounds are needed (see docs/backlog.md, uid/gid section). + "--no-perms", + "--no-owner", + "--no-group", # -F /dev/null: skip ~/.ssh/config entirely. The .ssh dir is # mounted from the host oskar user into the container which runs # as root; OpenSSH rejects config files owned by a different UID.