Использование cygwin и rsync -- "файл паролей не должен быть доступен другим"

Я'наконец-то запустил свой старый компьютер в качестве резервного сервера с Ubuntu 11.10. Я'планирую использовать его для резервного копирования моей машины Windows 7 еженедельно с помощью rsync. У меня установлен cygwin, и rsync работает отлично. Однако я следую этому руководству, чтобы создать его как запланированную задачу:

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

У меня есть сценарий rsync.bat в C:\, и я могу заставить сценарий работать правильно, если запускаю его непосредственно из командной строки в Cygwin. Однако, когда я пытаюсь запустить сценарий rsync.bat, я получаю следующее:

ERROR: password file must not be other-accessible

Так что это, должно быть, проблемы с разрешениями на секретный файл... Я следовал этому руководству и установил разрешения на 600, и передал его Nate[администратору]:SYSTEM.

Есть идеи, что может быть причиной проблемы?

EDIT: Файл, о котором идет речь, на самом деле находится на машине Windows 7. Я решил, что должен спросить здесь, поскольку я имею дело именно с Cygwin и Rsync.

После некоторого гугления я обнаружил, что существует опция "строгих режимов", которая указывает rsync не проверять разрешения на секретные файлы, и она была добавлена для удобства систем Windows. Однако после добавления этой опции и перезапуска демона rsync я все еще получаю ту же ошибку. Вот мой файл 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

И разрешения на файл secrets, согласно cygwin:

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

Мне кажется, что я упускаю что-то очень очевидное.

Решение

Я смог решить эту проблему, изменив строку password-file на следующую:

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

Комментарии (0)

Обязательно выполните следующие действия:

  1. Измените режим файла паролей на -rw------- , например, имея файл паролей C:/Custom/syncjob/pwfile в Windows, используя Cygwin, перейдите к расположению файла паролей:

cd /cygdrive/c/Custom/syncjob

и затем

chmod 600 ./pwfile

  1. Также измените право собственности на файл паролей на пользователя, выполняющего задание rsync, например 'Dave':

chown Dave ./pw

  1. Может помочь обращение к файлу паролей как -password-file=/cygdrive/c/..., как написал Nate.

Я не думаю, что нужно менять конфигурацию rsync.

Известное обходное решение для Windows заключается в том, чтобы добавить

< pwfile

в конце команды rsync.

Удачи.

Комментарии (0)

Ничего из вышеперечисленного не помогло. Наконец я обнаружил, что окончания строк в pwfile должны читаться следующим образом:

$ od -c pwfile
0000000 s e c r e t s \n (Unix)
НЕ
0000000 s e c r e t s \r \n (Windows)
Комментарии (0)