88

Let's say I have a file a.txt in LINUX with permission of 0664. When I use rsync to copy the file to my Mac with rsync -r -t -v LINUX MAC, the file's permission becomes 0644.

How can I keep the permission for a file when using rsync? The -g option doesn't work.

1 Answer 1

118

You want the -p flag:

    -p, --perms                 preserve permissions

I tend to always use the -a flag, which is an aggregation of -p and several other useful ones:

    -a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)

Both taken straight from the rsync manpage.

4
  • 1
    Thanks for the answer, but I got some errors with -a/-p option - unix.stackexchange.com/questions/12203/…
    – prosseek
    Apr 28, 2011 at 14:58
  • 6
    But does it preserve the permissions if the destination machine does not have a username equaling the one who owns the files on the source? (e.g. I have vmail user on source but not on target, does it preserve the username when restoring to source?)
    – W.M.
    Apr 22, 2019 at 9:20
  • 6
    @W.M. it's been a few years since you asked the question, but I found that the rsync -a switch also includes performs the "preserve owner" and "preserve group" options, which requires super-user. Also, you may want to consider --numeric-ids which won't map username/groupname Sep 4, 2021 at 21:24
  • Make it an answer, @ray_voelker! :)
    – bomben
    Oct 3, 2021 at 15:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .