如何rsync和保留目标文件的所有者

时间:2013-08-03 14:41:15

标签: permissions rsync su

我想通过ssh使用rsync将文件从 source-machine 复制到 dest-machine (两个Linux盒子)。由于我无法控制的安全策略, dest-machine 上的文件必须归 user1 所有,但 user1 不允许记录in。我是 user2 并且可以通过ssh登录到两台机器, user2 user1 在同一组中,并且两个用户都在两台机器。登录到任一计算机 user1 后,首先执行 sudo -s (无密码提示),然后 su user1 EM>

这些文件通常具有以下权限:

source-machine:
-rw-rw-r-- user2  group1  file.txt

dest-machine:
-rw-rw-r-- user1  group1  file.txt

Rsync始终将 dest-machine 的所有权更改为user2,因为我正在使用

/usr/bin/rsync -rlvx --delete --exclude-from ignore-file.txt --rysnc-path="/usr/bin/rsync" /path/to/files/ -e ssh user2@dest-machine.example.com:/path/to/files/

作为rsync命令的一部分。目前,我必须确定哪些文件已被复制并将所有权更改回 user1

我在this discussion中看到可以使用

--rsync-path='sudo -u user2 rsync'

但我需要 sudo -s 的中间步骤。

有没有办法让rsync将文件保留在 user1 所拥有的 dest-machine 上?

更新:感谢mnagel的评论,我尝试了这种排列,当它不起作用时,我正在探索原因并添加了两个排列:(1)我在 source-machine 作为根和(2)我不知何故不包括-go作为选项。 (我没有使用-a,因为安全策略不允许保留时间)。当完全放入时,它的工作原理。

0 个答案:

没有答案