Sistema: ubuntu fresco e atualizado Xenial Xerus 16.04.2. Começou a partir de um sistema mínimo limpo, onde apenas o openssh foi instalado. Para instalar o backuppc 3.3.2 eu fiz o seguinte:
apt-get install backuppc rsync libfile-rsyncp-perl par2 smbfs
O Apt fez o resto, instalando dependências como apache2 e perl. Se você acha que pode ser importante, editarei a pergunta e colarei as linhas relevantes dos logs do apt.
Depois disso, fiz todas as configurações necessárias para fazer backup do primeiro host, e depois de alguns dias voltei ao laboratório de testes para verificar como estava. Devo dizer que o backuppc é um belo software e fez exatamente - ou até melhor do que - o que eu esperava!
Acabei de notar que os gráficos do pool da tela inicial não eram exibidos; a solução de problemas me retornou apenas uma informação dos logs do apache:
ERROR: opening '/var/lib/backuppc/log/pool.rrd': Permission denied
Definitivamente um problema de permissões: /var/lib/backuppc é de propriedade de backuppc:backuppc enquanto o apache é executado na conta www-data.
A busca do erro no Google retornou essa correção:
Resource | Actual perms | Solution's perms
/var/lib/backuppc | 2750 | 2751
/var/lib/backuppc/log | 750 | 751
/var/lib/backuppc/log/pool.rrd | 640 | 754
Essas alterações de permissões corrigiram o problema e agora os gráficos são exibidos. De qualquer forma, ainda estou preocupado com a segurança do serviço exposto após as alterações de permissão. Neste caso estou planejando uma implementação em um ambiente seguro e isolado, mas e se o cliente pedir para expor o serviço, ou pior se ele mesmo expor? Eu não quero deixar uma brecha de segurança potencial exatamente onde eles irão para recuperação se algo der errado no ambiente de produção.
Outra solução pode ser adicionar o usuário do backuppc ao grupo www-data, mas isso pode ser ainda pior do ponto de vista da segurança.
Outra solução pode ser corrigir o código executado pelo backuppc para lidar com esse problema (e, talvez, algumas linhas no arquivo sudoers), mas não tenho habilidades de programação nem posso ler nada além de scripts bash.
Então, minha pergunta é: Qual é a solução mais segura para obter a exibição de gráficos?
Se esse arquivo for o único que está causando dores de cabeça, você também pode mover a pasta de log para um local onde o usuário www-data possa lê-lo e o usuário backuppc possa gravá-lo. Em seguida, faça um link simbólico.
É melhor abrir seu /var/lib/backuppc/ inteiramente para todos os usuários do sistema, especialmente se os subdiretórios e arquivos nessa pasta dependem da segurança da pasta principal ser restrita apenas a backuppc:backuppc.
Em relação a adicionar backuppc ao grupo www-data, não permitiria que www-data acesse o arquivo de propriedade de backuppc. Você quis dizer o contrário? De qualquer forma, eu concordaria que seria uma má ideia, a menos que todos os dados confidenciais sejam lidos apenas pelo usuário do backuppc e não pelo grupo.
Por que o guia que você seguiu sugeriu alterar /var/lib/backuppc/log/pool.rrd de 640 -> 754 (executável por proprietário e grupo) e não 640 -> 644 me bate.
NOTA: Já faz alguns anos desde que usei o BackupPC, então não me lembro bem como as permissões estavam na pasta /var/lib/backuppc ou outras informações potencialmente confidenciais que o diretório de logs contém.
Espero que isto ajude!
Restrinja o acesso ao gráfico usando .htaccess. você só pode permitir o acesso aos seus clientes usando .htaccess.