One I am very happy to have discovered in rsync is the
--fake-super
option.Scenario:
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
/home
.I can run
rsync
on machine A as root from a cron
job. 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-super
changes that. When rsync
tries 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-super
too - instead of changing ownership on the external HD filesystem, they're added to the extended attributes.
No comments:
Post a Comment