Windows 上的 rsync 文件权限

Windows 上的 rsync 文件权限

我有一个 rsync 服务,可以将文件从远程机器同步到将其放置在网络驱动器上的机器。

我需要复制的文件具有目标文件夹的本机权限。

同步过程运行良好,但完成后,我无法访问某些文件夹 - 权限被拒绝。

我以域管理员身份登录;它也不允许我修改所述文件夹的任何权限。这是怎么回事?

运行命令:

rsync.exe  -v -rlt -z --delete "src_path" "dst_path"

答案1

(从http://www.samba.org/ftp/rsync/rsync.html

总之:要授予目标文件(新旧文件)源权限,请使用--perms

要赋予新文件目标默认权限(同时保持现有文件不变),请确保该--perms选项已关闭并使用--chmod=ugo=rwX(这可确保所有非屏蔽位都得到启用)。

如果您希望后一种行为更容易输入,您可以为其定义一个 popt 别名,例如将此行放在文件 ~/.popt 中(以下定义 -Z 选项,并包含 --no-g 以使用目标目录的默认组):

    rsync alias -Z --no-p --no-g --chmod=ugo=rwX

答案2

Cygwin 的“posix”安全性给我带来了很多 Windows NTFS 文件权限问题 - 即使--no-perms与 rsync 一起使用也是如此。

我发现新创建的文件/文件夹无法正确继承默认权限,但每个文件/文件夹最终都会<not inherited>在 Windows 文件/文件夹高级安全选项卡中留下大量条目。(而且这个问题不仅仅与 rsync 有关)。

我找到了这个相关帖子此链接两者都非常有助于了解如何使用noaclcygwin/etc/fstab文件中的选项解决这些问题。此解决方案的缺点是 cygwin 失去了设置文件/文件夹权限的能力,但在许多情况下这并不重要。

(通过谷歌搜索该主题,您可能会找到设置 CYGWIN=NONTSEC 环境变量的参考,但这是针对 cygwin v1.5 的,在 cygwin v1.7 及更高版本中不起作用。)

答案3

在 Windows 上增量复制我可以通过以下方式让它工作:

rsync --perms --chmod=a=rw,Da+x ...

它甚至适用于--recursive

答案4

rsync,至少在 Cygwin 上有以下开关:

-A, --acls 保留 ACL(隐含 --perms)

我的 Cygwin 版本是:

CYGWIN_NT-6.3 1.7.29(0.272/5/3) 2014-04-07 13:46 x86_64 Cygwin

希望这可以帮助!

相关内容