Eduardo Juan
2007-Dec-10 13:59 UTC
Different results depending on the user launching rsync
Hi Exactly the same command shows different rsync results depending on the user executing the rsync. If I execute rsync as root I get a proper result but if I execute as user_x there seems to be many files that require updating. Here is the command I execute /opt/local/bin/rsync -avuzhn --relative -e ssh --exclude-from=/TT_TCM/SEA/scripts/LMI/backup_exclude_files_norelative.t xt --rsync-path=/opt/local/bin/rsync /sea_bete_disk/LMI_IRELAND/ seaserv1lmi: I'm using rsync version 2.6.9 protocol version 29. I would appreciate someone pointing me in the right direction. Has anyone seen this problem before ? The only explanation I can find is that when I execute as user_x all the files on the destination directory will have the owner changed to the user executing rsync. If this is so is there a way avoid it and preserve file ownership. Best regards, Eduardo de Juan
Matt McCutchen
2007-Dec-10 18:03 UTC
Different results depending on the user launching rsync
On Mon, 2007-12-10 at 14:32 +0100, Eduardo Juan wrote:> Exactly the same command shows different rsync results depending on the > user executing the rsync. > If I execute rsync as root I get a proper result but if I execute as > user_x there seems to be many files that require updating. > > Here is the command I execute > > /opt/local/bin/rsync -avuzhn --relative -e ssh > --exclude-from=/TT_TCM/SEA/scripts/LMI/backup_exclude_files_norelative.t > xt --rsync-path=/opt/local/bin/rsync /sea_bete_disk/LMI_IRELAND/ > seaserv1lmi:The difference probably occurs because your destination is given as the remote user's home directory and (by default) ssh logs in as the remote user with the same name as the local user. Naturally, if root and user_x have different home directories on seaserv1lmi , the command will put the files in different places. If you want the same behavior regardless of the local user, either specify the remote user by prepending USER@ to the seaserv1lmi: or append an absolute destination path to the seaserv1lmi: .> The only explanation I can find is that when I execute as user_x all the > files on the destination directory will have the owner changed to the > user executing rsync. If this is so is there a way avoid it and preserve > file ownership.This is another issue. Most operating systems will not let a non-root receiving user set file ownership arbitrarily, so the receiving rsync will not try to preserve ownership unless it is running as root. If you want ownership preserved, either run the receiver as root or obtain a copy of rsync that supports --fake-super and use that option. Matt