Hello. I long time discover strange to me behavior. If I add --fake-super option on both sides rsync start always set owner and group of symlink. What interesting there no error, but it done each time as it has been changed. Simple reproduce: $ mkdir rsync.symlinks $ echo 'file content' > rsync.symlinks/file.itself $ ln -s file.itself rsync.symlinks/file.symlink Then try to transfer it on remote host: $ rsync -apr --links --itemize-changes --fake-super -M--fake-super rsync.symlinks [hidden email]:~/temp/rsync.symlinks cd+++++++++ rsync.symlinks/ <f+++++++++ rsync.symlinks/file.itself cL+++++++++ rsync.symlinks/file.symlink -> file.itself And again: .L....og... rsync.symlinks/file.symlink -> file.itself I had tried use --rsync-path="rsync --fake-super" instead of -M--fake-super what unsurprisingly give me same result: $ rsync -apr --links --itemize-changes --fake-super --rsync-path="rsync --fake-super" rsync.symlinks [hidden email]:~/temp/rsync.symlinks .L....og... rsync.symlinks/file.symlink -> file.itself Please note all symlinks correct: $ LANG=en_US.utf-8 ls -l rsync.symlinks total 4 -rw-rw-r--. 1 pasha pasha 13 Oct 11 06:10 file.itself lrwxrwxrwx. 1 pasha pasha 11 Oct 11 06:11 file.symlink -> file.itself $ cat rsync.symlinks/file.symlink file content It also correct on receiver side. P.S. Asked long time ago in ML - http://samba.2283325.n4.nabble.com/rsync-always-try-change-owner-and-group-of-symlink-in-fake-super-mode-td4692664.html
(In reply to Pavel Alexeev from comment #0) The listing at the end of your report is presumably on the sending side; on the receiver, you should see that the transfer has converted the symlink into a plain file, which is how fake-super has worked ever since commit 6e310d38fcdeacb8055bb7e83d4e64c37fd54a38 Author: Wayne Davison <wayned@samba.org> Date: Wed Sep 2 09:06:29 2009 -0700 Have --fake-super turn a symlink into a file when NO_SYMLINK_XATTRS is defined. (unless the destination system supports xattrs on symlinks?) The expected result on a Linux destination would be: $ LANG=en_US.utf-8 ls -l rsync.symlinks total 4 -rw-rw-r--. 1 pasha pasha 13 Oct 11 06:10 file.itself -rwxrwxrwx. 1 pasha pasha 11 Oct 11 06:11 file.symlink $ cat rsync.symlinks/file.symlink file.itself i.e. the symlink would be transformed into a plain file containing the text of the link path (unfortunately, still with mode 0777!). Fake-super mode would also (try to) create an xattr named "user.rsync.%stat", but that wouldn't work if the filesystem object has been created as a symlink. Maybe failing to find the xattr causes rsync to think there's a uid/gid mismatch. At all events, this doesn't happen (for me) with version 3.1.3 (or 3.1.1). .Dave.