使用 cygwin 和 rsync ——“密码文件不能被其他人访问”

使用 cygwin 和 rsync ——“密码文件不能被其他人访问”

我终于有了一台运行 Ubuntu 11.10 的旧计算机作为备份服务器。我计划每周使用它通过 rsync 备份我的 Windows 7 计算机。我已经安装了 cygwin,并且 rsync 工作得很好。不过,我正在按照本指南将其创建为计划任务:

http://justinsomnia.org/2007/02/how-to-regularly-backup-windows-xp-to-ubuntu-using-rsync/

我在 C:\ 中有一个 rsync.bat 脚本,如果直接从 Cygwin 中的命令行运行它,我可以使该脚本正确运行。但是,当我尝试运行 rsync.bat 脚本时,我得到以下信息:

ERROR: password file must not be other-accessible

所以这一定是秘密文件的权限问题...我按照该指南将权限设置为 600,并将其设置为 Nate[管理员]:SYSTEM。

关于可能导致问题的原因有什么想法吗?

编辑:有问题的文件实际上位于 Windows 7 计算机上。我想我应该在这里问,因为我专门处理 Cygwin 和 Rsync。

经过一番谷歌搜索后,我发现有一个“严格模式”选项告诉 rsync 不要检查秘密文件的权限,并且添加该选项是为了适应 Windows 系统。但是,在添加它并重新启动 rsyn 守护进程后,我似乎仍然遇到相同的错误。这是我的 rysncd.conf 文件:

[rsync]

path = /home/nate/backups
comment = My backups
uid = nate
gid = nate
read only = false
auth users = nate
secrets file = /etc/rsyncd.secrets
strict modes = false

根据 cygwin 的说法,还有秘密文件的权限:

-rw-------  1 Nate SYSTEM   11 Dec  9 18:48 secret

我觉得我一定错过了一些非常明显的东西。

答案1

我可以通过将行更改password-file为以下内容来解决此问题:

–password-file=/cygdrive/c/cygwin/secret

答案2

确保执行以下操作:

1) 将密码文件的模式更改为 -rw-------- ,例如在 Windows 上有一个密码文件 C:/Custom/syncjob/pwfile,使用 Cygwin,转到密码文件位置:

cd /cygdrive/c/自定义/syncjob

进而

chmod 600 ./pwfile

2) 还将密码文件的所有权更改为正在执行 rsync 作业的用户,例如“Dave”:

乔恩·戴夫./pw

3)将密码文件引用为 -password-file=/cygdrive/c/... 可能会有所帮助,就像 Nate 所写的那样。

我认为没有必要更改 rsync 配置。

Windows 的一个已知解决方法是附加

< 密码文件

到 rsync 命令的末尾。

祝你好运。

答案3

以上都没有帮助。最后我发现 pwfile 的行结尾应该如下所示:

$ od -c pwfile
0000000 个秘密 \n (Unix)
不是
0000000 个秘密 \r \n (Windows)

相关内容