One I am very happy to have discovered in rsync is the
I have machine A. I want to back up (some portion of) the file system onto machine B. I want to include permissions and ownership (for example, because I am backing up
I can run
rsyncon machine A as root from a
cronjob. OK. But then (traditionally) it needs root access to machine B in order to set permissions and ownersip of the files it creates. I can't have it connect to machine B as some normal user because of that. Additionally, the user-id and group-id name/number spaces on both machines need to match up somewhat so that users on machine B don't get access to files they shouldn't have access to.
--fake-superchanges that. When
rsynctries to change the permission or ownership of a file and finds that it cannot do that, it instead stores that information in extended attributes on that file. So now access to machine B can be through some normal user account without special privileges.
A downside is that if some user has an account on both sides, they don't get full privilege access to the backups of their own files.
Another use I found for this is on my laptop under OS X, where one of my external hard-drives is now mounted with an option to prevent user and group IDs being changed, or makes them ignored somehow (presumably for a better experience when using the hard-drive on multiple machines).
Incremental rsync backups were experience an inability to change group ownership on files, which mean that instead of being hard-linked (using
--link-dest) they were being copied afresh each time. This was fixed by
--fake-supertoo - instead of changing ownership on the external HD filesystem, they're added to the extended attributes.