How to keep rsync from chown'ing transferred files?

I have an sshfs connection setup with a remote filesystem on a Linux server. I'm doing an rsync from my local server to the ftpfs-filesystem. Because of the nature of this setup, I can't chown anything on the sshfs filesystem.

When I do the rsync, it tries to chown all the files after it transfers them. This results in chown errors, even though it transfers the files just fine.

With rsync, is there a way to tell it to not try and chown the files? If I rsync like 1000 files I end up with a log of 1000 chown: permission denied (error 13) errors. I know it doesn't hurt anything to get these errors since the ownership of the files is determined by the sshfs configuration itself, but it would be nice to not get them.


Solution 1:

You are probably running rsync like this:

rsync -a dir/ remote:/dir/

The -a option according to the documentation is equivalent to: -rlptgoD

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

You probably want to remove the -o and -g options:

      -o, --owner                 preserve owner (super-user only)
      -g, --group                 preserve group

So instead your rsync command should look something like this:

rsync -rlptD dir/ remote:/dir/

Or as @glglgl points out:

rsync -a --no-o --no-g dir/ remote:/dir/

The remaining options in use are:

      -r, --recursive             recurse into directories
      -l, --links                 copy symlinks as symlinks
      -p, --perms                 preserve permissions
      -t, --times                 preserve modification times
      -D                          same as --devices --specials
          --devices               preserve device files (super-user only)
          --specials              preserve special files

Solution 2:

Don't pass -o or any of the other options that implies it.