mirror of
https://github.com/HeyPuter/puter.git
synced 2026-10-03 02:18:06 +00:00
A root was free to be renamed or moved, so it could be parked on a username no account held yet. The next account to take that name provisioned a second root at the same path, and from then on either row could answer a lookup of it — new entries inherit their owner from whichever row resolved as the parent, so one account's files were created owned by the other, and renaming the parked root dragged the other account's subtree along with it. Rename and move now refuse a root, every username claim checks the home path before the user row is written, and renameUserHome refuses to heal onto a path another account holds.