Você não pode fazer o backup de um arquivo que você não pode ler de outra forma, então as permissões serão devem ser alteradas ou anuladas pelo root .
Suas opções com mais detalhes:
-
Substitua as permissões por rsync'ing como
[email protected]
diretamente. ( -
... ou configurando sudo no servidor para permitir a execução sem senha do componente
rsync
do lado do servidor.me ALL=(root) NOPASSWD: /usr/bin/rsync --server --sender -vlogDtprze.iLsf . /var/www/
e
rsync --rsh="ssh [email protected] sudo" -avz /var/www/ /backups/...
-
Crie uma conta dedicada "site-backup" no servidor. Altere as permissões dos arquivos para torná-los legíveis para a conta "website-backup"; você pode usar ACLs e
setfacl
para isso. Não use essa conta para mais nada.rsync -avz [email protected]:/var/www/ /backups/sites/mysite/
-
Escreva um script no servidor que despeje / var / www / em um tarball criptografado. Novamente, isso pode ser feito como root (via crontab) ou configurando sudo para não requerer uma senha para aquele script. Por exemplo:
#!/bin/sh tar c /var/www/ | gpg -e -r [email protected]
O backup seria feito ao se puxar todo o tarball todas as vezes, o que pode ser ineficiente em sites grandes:
ssh [email protected] "sudo /usr/sbin/dump-website" > /backups/sites/mysite.tar.gpg
O requisito de senha seria removido editando sudoers :
me ALL=(root) NOPASSWD: /usr/sbin/dump-website