Сбой удаленного rsnapshot с ошибкой "Отказано в доступе"
Я пытаюсь настроить удаленное резервное копирование с помощью rsnapshot с моего домашнего сервера. Я хочу, чтобы мой сервер подключался к моему ноутбуку и делал резервные копии по SSH. Все настроено правильно, и я могу отлично подключиться с моего сервера к ноутбуку.
Проблема в том, что я получаю ошибку разрешения при запуске sudo rsnapshot -v hourly (с сервера):
...
rsync: opendir "/foo/bar" failed: Permission denied (13)
...
Я создал отдельный backup пользователь на моем ноутбуке, и я соединяюсь через ssh с этим пользователем. Это мое ~/.ssh/config этот rsnapshot использует:
Host macbookpro
HostName macbookpro
PreferredAuthentications publickey
User backup
Identity File ~/.ssh/keys/macbookpro.id_rsa
Я также добавил следующее в файл sudoers на моем ноутбуке, который должен позволить rsync запускаться от имени пользователя root при удаленном вызове rsnapshot:
backup ALL=(root) NOPASSWD: /usr/bin/rsync
тем не менее, когда я запускаю rsnapshot, я продолжаю получать ошибки разрешения. Кто-нибудь видит, что не так?
1 ответ
Хорошо, похоже, я понял это. Выискивая на своем ноутбуке, я попытался запустить rsync команда (что rsnapshot обычно вызывается через ssh) вручную как backup пользователь и заметил, что я получаю ошибки разрешения локально, а также.
Кажется, что даже если у вас есть запись в файле sudoers для явного разрешения пользователю запускать определенный двоичный файл без пароля, вам все равно нужно на самом деле предварить команду с sudo, (Я на MacBook, поэтому я не уверен, если это относится к OSX)
Кажется, не было хорошего способа сделать это в rsnapshot.conf поэтому я следовал инструкциям в этом уроке
Я сделал файл на моем ноутбуке под названием rsync_sudo.sh и добавил следующее:
/usr/bin/sudo /usr/bin/rsync "$@";
затем связал это с /usr/bin/ и вернувшись на свой сервер, я добавил следующее /etc/rsnapshot.conf:
rsync_long_args --rsync-path=rsync_sudo.sh --delete --numeric-ids --relative --delete-excluded
и теперь, кажется, все работает