69

I have a 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.

102

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
  • 19
    ... or just -a --no-o --no-g – glglgl Feb 29 '12 at 7:43
  • 1
    I used just rsync -r --no-o --no-g /source/* /dest/ and my owner and group of the files at the destination were still changed according to the source. Any ideas? – Ram Patra Sep 18 '17 at 21:35
12

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

5

Don't use the -a option, as it will include the -p option that keeps the permissions. For this situation, the -r should be enough.

For more infos, see man rsync.

  • 4
    Are you sure -p is what I want to avoid? Ownership is different than permissions, correct? – Jake Wilson Feb 29 '12 at 16:04
0

I encountered something similar whereby rsync was not retaining the owner and group of files & directories been synced from a remote server. To correct, I copied over the /etc/shadow, /etc/group and /etc/passwd files.

When I ran the rsync command below it then worked in that it retained permissions, symbolic links & ownership.

I had set up ssh keys to use passwordless ssh.

rsync -avpog user@10.1.x.x:/usr/local /usr

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.