rsync 与 -a 执行为 sudo 不会保留文件所有权



我正在尝试通过SSH在两台机器之间进行RSYNC(来源:MacOS 10.11.6-> dest:MacOS 10.12.4(,并希望保留所有Mac特定属性作为权限和所有权。

我使用补丁,Fileflags,CRTIMES和HFS-Compression构建并安装了两台机器上的最新Rsync(3.1.2(。

我在目标计算机上进行了修改/etc/sudoers,并添加了: 用户名all =(all(nopasswd:而且这似乎可以正常工作,因为我在使用sudo时没有要求密码。(我知道我只能将其限制为rsync命令,但是在调试期间,我在这里使用(

执行:

rsync -avNHAXEx --safe-links --fileflags --protect-decmpfs --force-change --   progress --delete --rsync-path="sudo /usr/local/bin/rsync" --progress /path/to/src ssh_user@IP_of_dest:/path/to/dst

除了文件具有POSIX所有者" ssh_user",而不是目标计算机上的原始所有者。

简单

rsync -av --rsync-path="sudo /usr/local/bin/rsync" /path/to/src ssh_user@IP_of_dest:/path/to/dst

还修改了所有权,并在目标计算机上使用sudo执行的Rsync拉力给出了相同的结果。

那么,我在这里想念什么?目的地的A和超级权利是否足够?

回答以后参考,以防有人有类似的经验

在进行了更多调试之后,我认为我找到了一个答案。Rsync正在按预期执行,问题是SSH_USER和FILE_OWNER实际上都具有相同的UID。在目标计算机上列出文件时,将文件严重困惑,因为这些文件显示为属于ssh_user。使用 - 数字ID并将文件还原回源计算机给出了预期的结果。

最新更新