TL, DR: execute o backup como root. Não há nada de errado em autorizar o comando preciso rsync
via sudo, desde que você revise cuidadosamente os parâmetros; o que estaria errado seria permitir que o chamador especifique parâmetros.
Se você quiser que o usuário de backup possa ler o arquivo, consulte Permitir que um usuário leia os diretórios pessoais de outros usuários A idéia é criar um bindfs vista do sistema de arquivos onde este usuário pode ler tudo.
Mas o nível do arquivo não é o melhor para resolver esse problema específico. O problema com backups feitos por rsync
é que eles são inconsistentes: se um usuário alterar file1
então file2
enquanto o backup estiver em andamento, mas o backup atingir file2
antes de file1
, o backup conterá a versão antiga de file2
e a nova versão de file1
. Se file2
for a nova versão de file1
e file1
for removida, isso significa que esse arquivo não aparecerá no backup, o que é claramente ruim.
A solução para esse problema é criar um snapshot do sistema de arquivos e executar o backup a partir dele.
Dependendo da sua tecnologia de instantâneos, pode haver uma maneira de garantir que um usuário possa ler o instantâneo. Caso contrário, monte o instantâneo e use a solução baseada em sistemas de arquivos genéricos. E mesmo se houver, o rsync ainda é problemático, porque se você executá-lo como um usuário comum, ele não poderá fazer backup da propriedade. Portanto, se você estiver fazendo backup de vários diretórios de usuários, precisará para executar o backup como root.