Я пытаюсь настроить удаленные резервные копии с rsnapshot с моего домашнего сервера. Я хочу, чтобы мой сервер соединился в мой ноутбук и взял резервные копии по SSH.Everything, настраивается правильно, и я могу соединиться со своего сервера на ноутбук отлично.
Проблема, я получаю ошибку разрешения, когда я работаю 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 работать как корень при удаленном вызове rsnapshot:
backup ALL=(root) NOPASSWD: /usr/bin/rsync
все же каждый раз, когда я выполняю rsnapshot, я продолжаю получать ошибки разрешения. Кто-либо видит что случилось?
Хорошо, похож, я понял это. Вводя по абсолютному адресу вокруг на моем ноутбуке, я пытался работать rsync
команда (это rsnapshot
обычно вызывал бы по ssh), вручную как backup
пользователь и замеченный я получал ошибки разрешения локально также.
Кажется, что, даже если у Вас есть запись в Вашем sudoers файле, чтобы явно позволить пользователю, выполняет определенный двоичный файл без пароля, все еще необходимо на самом деле снабдить команду предисловием с sudo
. (Я нахожусь на MacBook, таким образом, я не уверен, конкретно ли это к OSX),
Казалось, не было хорошего способа выполнить в этом rsnapshot.conf
таким образом, я следовал инструкциям в этом учебном руководстве
Я сделал файл на своем ноутбуке названным rsync_sudo.sh
и добавил следующее:
/usr/bin/sudo /usr/bin/rsync "$@";
затем symlinked это к /usr/bin/
и назад на моем сервере я добавил следующее к /etc/rsnapshot.conf
:
rsync_long_args --rsync-path=rsync_sudo.sh --delete --numeric-ids --relative --delete-excluded
и теперь все, кажется, работает