问题 cwRsync在Windows 7上忽略“nontsec”


我使用cwRsync将一些文件从Windows同步到Ubuntu。这个过程曾经在Vista上正常工作,但自从我升级到Windows7后,我一直在获得权限问题。

一些背景...我确实用过在Vista上获得相同的权限问题,但是通过使用 CYGWIN=nontsec 环境变量。

提交问题

rsync: failed to modify permissions on xxx: Permission denied (13)

由于Windows和UNIX文件权限不同,使用Windows权限同步文件没有意义。 rsync的作用是将UNIX端的权限设置为0(d---------)。为了防止这种情况,cygwin有了 nontsec 指示它忽略Windows文件权限的变量。

问题是,在Windows7上, nontsec 似乎没有任何影响。


10612
2018-01-23 18:23


起源



答案:


你的解决方案,我不得不做一个调整,看它对我有用 - 而不是你的etc / fstab内容,我使用你引用的论坛主题中的这些内容:

none /cygdrive cygdrive binary,posix=0,user,noacl 0 0

我正在使用cwRsync安装程序4.0.3。我很高兴它对我有用,但我不能提供一个理由,不熟悉fstab语法和选项。希望它能为其他人增加一些有用的东西。


7
2018-02-01 14:57



你的也可能是正确的答案。我也不熟悉fstab选项,所以我只是放下对我有用的东西。我认为使用的重要选项是 noacl。其余可能根据您的具体选择而有所不同。 - anushr


答案:


你的解决方案,我不得不做一个调整,看它对我有用 - 而不是你的etc / fstab内容,我使用你引用的论坛主题中的这些内容:

none /cygdrive cygdrive binary,posix=0,user,noacl 0 0

我正在使用cwRsync安装程序4.0.3。我很高兴它对我有用,但我不能提供一个理由,不熟悉fstab语法和选项。希望它能为其他人增加一些有用的东西。


7
2018-02-01 14:57



你的也可能是正确的答案。我也不熟悉fstab选项,所以我只是放下对我有用的东西。我认为使用的重要选项是 noacl。其余可能根据您的具体选择而有所不同。 - anushr


我发现导致问题的不是Windows 7。相反,cwrsync的新版本忽略了 nontsec 环境变量对于cwRsync版本 高于1.7,你需要使用 noacl 选项。 (见论坛主题: 无法访问RSYNC备份文件夹的子文件夹

解决方案涉及创建一个 fstab 用的文件 noacl 选项:

# In this example, my cwRsync dir is located at: "C:/Program Files (x86)/cwRsync"
# Filename: "C:/Program Files (x86)/cwRsync/etc/fstab"
C:/Program\040Files\040(x86)/cwRsync / ntfs override,binary,noacl 0 0
C:/Program\040Files\040(x86)/cwRsync/bin /usr/bin ntfs override,binary,noacl 0 0

就是这样!你也可以删除 CYGWIN=nontsec env var,因为它已不再使用。


2
2018-01-28 19:13





我遇到了同样的问题,从基于Solaris的webhost复制到我的本地PC。复制文件时,PC权限被破坏了。我设置了fstab文件,但没有去。

最后我意识到我正在对rsync.exe进行完整路径调用,这意味着我当前的目录没有拿起我刚刚创建的etc文件夹。为了解决这个问题,我在rsync命令的调用之上添加了这些行,它完美地运行了。

SET CWRSYNCHOME=%PROGRAMFILES%\CWRSYNC
c:
cd %CWRSYNCHOME%

现在我的文件权限正确默认为父文件夹权限没有问题。

我只想将此标记到此主题,以防将来其他人遇到同样的问题。


2
2017-07-10 17:49



这个额外的补充适用于我的情况 - justanotherdev


现在也在cwrsync FAQ中解决了这个问题: http://www.itefix.no/i2/node/11324

我也可以报告FAQ(和Raise的答案)中的修复程序也适用于我。


2
2018-05-27 20:49



我希望这能解决它,但它对我没有帮助。也许我的fstab不在正确的位置或什么的。 - Simon East


我有同样的问题,但没有一个解决方案适合我,直到我意识到我的目标文件夹在rsync文件夹之外。 (我想将文件从Linux转发到Windows。)

这对我有用:

  1. 创建一个子目录 etc 在cwRsync文件夹里面(也就是说 rsync.exe 所在)。

  2. 创建一个名为的文件 fstab (没有后缀)在该文件夹中。

  3. 在其中插入一行 fstab文件,一定要有UNIX行结尾!

    none /cygdrive cygdrive binary,posix=0,user,noacl 0 0
    
  4. 设置环境:

    SET CWRSYNCHOME=<cwRsync installation path>
    SET HOME=<Directory to save user configuration files, like ssh known_hosts>
    
  5. 在启动rsync.exe之前(这是我案例中最重要的一步):

    cd <Destination folder>
    

SET HOME 部分对于SSH很重要,它会创建一个 .ssh 子文件夹那里有一个 known_hosts 文件。


1
2018-02-15 13:45