从 NTFS 内部 C: 复制到 NTFS 外部磁盘时,如何使用 rsync 可靠地传输权限和 ACL?

从 NTFS 内部 C: 复制到 NTFS 外部磁盘时,如何使用 rsync 可靠地传输权限和 ACL?

我可以可靠地使用 Rsync 的哪些选项/如何/将其组合到:

  • 可靠地传输“工作”,即使“有限集”的权限/ ACL 可靠且在 Cygwin Windows/NTFS 和 *Nix/Perms 等的灰色区域之间不会发生冲突,
    或者

  • 如果我不能执行上述操作,请刷新干净/让 RSync 完全避免权限/ACL 问题?

在过去十年左右的时间里,我阅读了近 50 个关于如何解决此问题的选项卡和窗口。

如何处理它似乎会根据您询问的地点和对象以及正在讨论的 Rsync 版本(时间和变化/替代代码库)而变化。

  • 同步Windows下的变化
    • (几个 *Nix 和 Windows:西格文变化,同步同步、Delta 复制/同步/Synaman、GR同步,Rsync备份,rsync.exe 软件包、Rclone、AcroSync、YInterSync)

可供选择的选项:

我从这个 QnA 中得到了关于如何针对这个特定场景执行 RSync 的答案;

但在收集了 RSync 上有关 Cygwin、NTFS、权限和 ACL 等的所有“知识”后,我不确定哪些变化会影响如何继续进行。

事实证明,为了控制您的 Windows 权限,需要一个简单的 chmod 标志。
—chmod=ugo=rwX

Rsync 选项(一些..)

 -p, --perms                 preserve permissions
 -E, --executability         preserve the file's executability
     --chmod=CHMOD           affect file and/or directory permissions

 -A, --acls                  preserve ACLs (implies --perms)
 -o, --owner                 preserve owner (super-user only)
 -g, --group                 preserve group
     --devices               preserve device files (super-user only)
     --specials              preserve special files
 -D                          same as --devices --specials


/etc/fstab(添加诺阿克


# /etc/fstab
#
#    This file is read once by the first process in a Cygwin process tree.
#    To pick up changes, restart all Cygwin processes.  For a description
#    see https://cygwin.com/cygwin-ug-net/using.html#mount-table

# This is default anyway:
# none /cygdrive cygdrive binary,posix=0,user 0 0
none /cygdrive cygdrive binary,posix=0,user,noacl 0 0

答案1

过去几天我一直在研究这个问题,在阅读了大量参考资料并实际尝试了各种标志组合后,我认为它rsync不会携带 Windows ACL。

rsync -aX src/ dst/
rsync: extended attributes are not supported on this client

我发现这个建议重新挂载本地 NTFS 驱动器的 Cygwin 视图诺阿克,但我无法让它对我有用。另一个建议使用--chmod=ugo=rwX根本没有帮助。

它似乎对于这个特定的用例,您需要使用类似的东西ROBOCOPY /SEC而不是rsync.

答案2

这也困扰了我一段时间。我正在寻找勇敢的人来尝试一下我的 rsync-ntacls 补丁。

此补丁使 Windows 上的 rsync 能够传输 NTFS 安全属性,同时提供 rsync 的增量传输。本地传输或通过 ssh 远程传输。不再需要 RoboCopy 修复工作;)

干杯! https://github.com/PreussLabsLLC/rsync-ntacls

相关内容