36

I would like to backup user files from one server to another with rsync. but I noticed that the user folders change to root. how can I keep the user permissions with rsync (running by root)?

  • rsync needs to be run as root when you are making a copy of the drive as well as when you are copying the file back onto the drive. If you do either of the steps as a lower permission user, then root files will be demoted to that user. – Eric Leschinski Jan 3 '16 at 1:00
45

Use the -a flag, which includes among other things, the options -o and -g, which preserves owners and groups. This requires that you run rsync as root.

Also, see man rsync.

  • 1
    Is that also possible without being root? Is there an option to store the mapping in a seperate sidecar file? – thomas.mc.work Aug 8 '18 at 14:13
  • 1
    Missed this comment. No, it doesn't work without being root because you are not allowed to change the owner to anyone else then your own user. A mapping file wouldn't help at all with this. – Sven Jul 22 at 9:26
14

Keeping the permissions is achieved through "archive" mode, -a. The common example is -avz:

rsync -avz foo:src/bar/ /data/bar

This ensures that symbolic links, devices, attributes, permissions, ownerships, etc. are preserved in the transfer. Additionally, compression will be used to reduce the size of data portions of the transfer.

5

If you're using rsync for backup I can really recommend using rsnapshot instead (it uses rsync). It rotates the backups and uses hard links so you can see differences between your daily backups (but folders still look like they have the complete contents). I use this for backing up both Windows and Linux servers at work. Perfect for us!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.