Falha no rsnapshot remoto com erro de "Permissão negada"

1

Estou tentando configurar backups remotos com o rsnapshot do meu servidor doméstico. Eu quero o meu servidor para se conectar ao meu laptop e fazer backups sobre SSH. Tudo está configurado corretamente e eu posso conectar-se do meu servidor para o laptop perfeitamente.

O problema é que estou recebendo um erro de permissão quando executo sudo rsnapshot -v hourly (do servidor):

...
rsync: opendir "/foo/bar" failed: Permission denied (13)
...

Eu criei um usuário backup separado no meu laptop e estou conectando o ssh com esse usuário. Este é o meu ~/.ssh/config que o rsnapshot está usando:

Host macbookpro
    HostName macbookpro
    PreferredAuthentications publickey
    User backup
    Identity File ~/.ssh/keys/macbookpro.id_rsa

Eu também adicionei o seguinte ao meu arquivo sudoers no meu laptop que deve permitir que o rsync seja executado como root quando chamado remotamente pelo rsnapshot:

backup  ALL=(root)      NOPASSWD:       /usr/bin/rsync

mas sempre que executo o rsnapshot, continuo a receber erros de permissão. Alguém vê o que está errado?

    
por Timmy O'Mahony 21.08.2014 / 20:39

1 resposta

0

Ok, parece que eu descobri. Pesquisando no meu laptop, tentei executar o comando rsync (que rsnapshot normalmente invocaria sobre o ssh) manualmente como o usuário backup e notei que também estava recebendo erros de permissão localmente.

Parece que, mesmo se você tiver a entrada em seu arquivo sudoers para permitir explicitamente que um usuário execute um determinado binário sem uma senha, ainda será necessário inserir o comando com sudo . (Eu estou em um macbook, então não tenho certeza se isso é particular para OSX)

Não parece ser uma boa maneira de fazer isso em rsnapshot.conf , então eu segui as instruções em tutorial

Eu fiz um arquivo no meu laptop chamado rsync_sudo.sh e adicionei o seguinte:

/usr/bin/sudo /usr/bin/rsync "$@";

em seguida, um link simbólico para /usr/bin/ e de volta para o meu servidor. Adicionei o seguinte a /etc/rsnapshot.conf :

rsync_long_args         --rsync-path=rsync_sudo.sh --delete --numeric-ids --relative --delete-excluded

e agora tudo parece estar funcionando

    
por Timmy O'Mahony 21.08.2014 / 21:10