cwRsync提示password file must be owned by root when running
当在Windows下面安装好之后,也设置好了同步密码文件,当执行同步的时候遇到这个标题描述的问题:
“ file must be owned by 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的账户,如果遇见手动添加失败的情况,还请使用该命令进行一次权限的重新赋予。
下面是其他网友给出的解决方法:
方法二:
windows客户端提示password file must be owned by root when running as root解决方法
rsync.exe -vzru4P --old-d --progress --password-file=rsyncpwd.txt root@172.18.104.96::log /cygdrive/c/bak
修改成如下:
rsync.exe -vzru4P --old-d --progress --password-file=rsyncpwd.txt<p.txt root@172.18.104.96::log /cygdrive/c/bak
方法三:
这算是个老问题了,每次在windows主机上通过cwrsync向服务端同步数据的时候都会遇到,这次总结记录下吧。错误代码为:
password file must be owned by root when running as root
在linux上设置rsync的时候,需要将passwordfile设置为600权限。所以在windows上我们也可以用其自带的chmod.exe 执行,其cwrsync客户端默认安装的位置是C:Program FilescwRsyncbin ,具体做法如下:
“C:Program FilescwRsyncbin” 600 /cygdrive/c/etc/password.txt
执行完以后,如果还有错误提示,可以使用chown.exe命令将其文件的属主做下更改。具体操作如下:
服务端:
SvcCWRSYNC为windows上的cwrsync-server安装时默认新建的一个用户。
客户端:
默认客户端上没有chown.exe这个命令,直接从cwrsync-server的安装路径里拷贝一个过来就可以用了。windows的默认用户一般都是administrator,如果你不是以administrator登录的,请将上面命令中的administrator改成你当前使用的用户名。