Сбой удаленного 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

и теперь, кажется, все работает

Другие вопросы по тегам