Rsync 未正确设置 Windows 文件夹的权限
Posted
技术标签:
【中文标题】Rsync 未正确设置 Windows 文件夹的权限【英文标题】:Rsync does not properly set permissions on Windows folder 【发布时间】:2011-07-11 11:38:26 【问题描述】:我在 Windows 7 上使用 rsync(特别是 cwrsync)。我正在使用一个简单的命令:
rsync -r --perms --delete /cygdrive/c/Users/Michael/Documents/Personal/ /cygdrive/c/Users/Michael/Documents/Personal_Backup/
递归副本工作正常,除非我要(右键单击/属性/安全选项卡)在目标上由 rsync 创建的任何文件夹;我收到以下弹出消息:
folderName 上的权限排序不正确,这可能会导致 一些条目无效。
我也尝试了 --acls 选项,但收到以下错误:
recv_acl_access:值超出范围:ff rsync 错误:rsync 中的错误 acls.c(690) [Receiver=3.0.] 处的协议数据流(代码 12)。同步: 连接意外关闭(到目前为止已收到 9 个字节)[发件人] rsync 错误:rsync 协议数据流(代码 12)中的错误 io.c(610) [发件人=3.0.8]
无论如何,我只想正确使用 rsync,以便在 Windows 中查看安全权限不会引发错误。
【问题讨论】:
【参考方案1】:迈克尔,
This solution 建议您不要使用--perms
,而应使用--chmod=ugo=rwX
。
祝你好运!
多坦
【讨论】:
【参考方案2】:一个字,Robocopy。
我在使用 cwRsync 时遇到了完全相同的权限问题,尝试了很多方法,但似乎都没有,所以我最终放弃了。
这是默认的 Windows 工具,具有类似(出于您的目的,相同)功能集。
我昨晚发现了它并完全放弃了 rsync。它是为类 unix 构建的,因此在 Windows 上可能会遇到一些麻烦。
这让我开始了:
http://www.sevenforums.com/tutorials/187346-robocopy-create-backup-script.html
这是我为自己制作的小backup script,用于将我的分区镜像到外部驱动器。
不要再回头看 rsync。
【讨论】:
【参考方案3】:在复制发生后,我使用现已弃用的 cacls 重新添加自己。
rsync -avASPC sourceDir/* destDir
cacls destDir /t /e /r doej
cacls destDir /t /e /g doej:f
其中 sourceDir 是源目录,destDir 是目标目录,doej 是用户名。使用icacls可能会更好,但我还没有学会。
我也尝试过 robocopy,但我似乎没有完成这项工作所需的权限。
用于 rsync 的标志
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
-r, --recursive recurse into directories
-l, --links copy symlinks as symlinks
-p, --perms preserve permissions
-t, --times preserve modification times
-g, --group preserve group
-o, --owner preserve owner (super-user only)
-D same as --devices --specials
--devices preserve device files (super-user only)
--specials preserve special files
-v, --verbose increase verbosity
-S, --sparse handle sparse files efficiently
-A, --acls preserve ACLs (implies -p, which is also implied by -a)
-P same as --partial --progress
--progress show progress during transfer
--partial keep partially transferred files
-C, --cvs-exclude auto-ignore files in the same way CVS does
从 CACLS 使用的标志
/T Changes ACLs of specified files in
/E Edit ACL instead of replacing it.
/R user Revoke specified user's access rights (only valid with /E).
/P user:perm Replace specified user's access rights.
Perm can be: ...
F Full control
【讨论】:
以上是关于Rsync 未正确设置 Windows 文件夹的权限的主要内容,如果未能解决你的问题,请参考以下文章
Rsync在Windows系统和Linux系统间进行文件同步操作