当在Windows下面安装好cwRsync之后,也设置好了同步密码文件,当执行同步的时候遇到这个标题描述的问题:
“password file must be owned by root when running as root”
我的解决办法是查找服务端(如果您安装了是客户端服务端整合的4.05版,则直接进入到安装目录下的Bin目录下)寻找是否存在chomd.exe这个文件(比如E:\Program Files (x86)\ICW\Bin这样的路径),然后,在当前路径下开启CMD(可能需要提升权限)。
执行:
chmod -c 600 /cygdrive/e/pass.txt(注意下面还需要执行chown administrator /cygdrive/e/pass.txt)
其中/cygdrive/e/pass.txt 表示 Windows下面的展示路径e:\pass.txt,请一定要转换成这个样式!
您将会看到如下反馈信息表示添加已经添加新的权限到该密码同步文件
mode of `/cygdrive/e/pass.txt' changed to 0600 (rw-------)
紧接着继续执行:
chown administrator /cygdrive/e/pass.txt
同时该命令无反馈信息
这样在继续执行我的同步命令就会顺利进行:
执行:
rsync -uvzrtopg --delete --progress /cygdrive/e/backup root@10.5.83.52::backup --password-file=/cygdrive/e/pass.txt
得到反馈信息:
building file list ...
8 files to consider
经过这样的处理,在Windows下面执行rsync的同步命令将会非常顺利。
后续内容,当我查看了对应的密码同步文件的安全属性,下面是截图:
图示1:我们可以看到继承被关闭,同时添加了三种用户的特殊权限,以及所有者变成了Administrator。
而特殊权限集中在以下信息
图示2:全部为针对文件的一些权限。
可以看到该同步工具对于权限的依赖还是很重要的,同时方便来自于Linux、Unix上的用户做Windows上面的实施,也方便的加入了他们熟悉习惯的CHOMD、CHOWN的Windows编译版。
-=EOB=-
20130616补充说明:
由于一些未知原因,导致您手动添加权限后可能还会遇到相应的错误提示,经过观察时该chmod会在某些版本的Windows下面再添加一个叫做NONE的账户,如果遇见手动添加失败的情况,还请使用该命令进行一次权限的重新赋予。