如何使用rsync(chown chmod)设置目标权限


13

我正在尝试从安装点到本地文件夹执行本地rsync。我需要将所有者,组和权限设置为特定设置。这是我正在使用的:

 rsync -rtlv --chown=process:sambausers --chmod=D770,F770 /mnt/owncloud_mnt/Engineering/ /Drive_D/docs/Engineering_test

我最终在目录和文件上都获得了760的权限,并在所有权上获得了root:root(rsync作为root运行)。

我究竟做错了什么?

TIA


目标文件系统是“ Drive_D”,是否像NTFS一样?
萨米·库莫宁

目标文件系统是ext4
Roger Creasy

添加-p有帮助吗?
Sami Kuhmonen '16

-p确实使chmod在移动文件上起作用。我需要进行测试以确保它不会覆盖任何现有文件的权限。谢谢。而且,我仍然遇到问题
Roger Creasy

1
为此,您实际上需要-og我认为
Sami Kuhmonen

Answers:


19

需要告知rsync您要设置权限和所有者/组信息。假设拥有--chmod--chown会告诉他们,但事实并非如此,这是合乎逻辑的。

要传播权限,您需要--perms-p标志,对于所有者/组,需要--owner --group-og标志以设置所有者/组/权限信息。

该文档的文字有点不清楚,因此不清楚如何使用不同的组合处理权限或是否会影响现有文件。


尚不清楚,因为linux.die.net/man/1/rsync是我需要做的sudo运行,指出您只能将目标设置为与源相同。问题是,我需要将其设置为登录用户的身份,例如$(whoami)
Brian Thomas

2

我发现同一问题的StackOverflow版本更有用,因为似乎Roger和我对rsyncs的格式有不同的偏好--chmod(我的是Debian软件包中的3.1.3)。

正如Sami所说,rsync需要被告知“权限”,因此可以包含-p,也可以使用隐式包含-a。但是--chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r,要使命令实际运行,您需要(例如,对于目录755和文件644),而不是“ D755,F644”格式。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.