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)?
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.
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.
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!
Use the
-a
flag, which includes among other things, the options-o
and-g
, which preserves owners and groups. This requires that you runrsync
as root.Also, see
man rsync
.Keeping the permissions is achieved through "archive" mode,
-a
. The common example is-avz
: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.
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!
From rsyncd.conf manual, you have to specify uid and gid both to 0, besides the -a option on client side of rsync.