A adição do usuário backups
ao grupo de usuários sudo
não fornece automaticamente acesso à conta a todos os arquivos no sistema. Ele concede ao usuário a permissão para executar o comando sudo
.
Como você está usando autenticação de chave pública (presumivelmente sem uma frase secreta), eu abordaria isso com segurança e facilidade de implementação em mente. Usar ssh
permite restringir o usuário a executar apenas comandos muito específicos. Nesse caso, você pode permitir que o usuário backups
execute rsync
com permissões de superusuário.
Você já executou a troca de chaves e a autenticação verificada foi bem-sucedida. No arquivo authorized_keys
no host remoto do qual você está fazendo o backup do diretório /home
, você pode adicionar uma diretiva command=
à chave usada pelo usuário backups
. Esta diretiva permitirá somente que o comando seja executado quando essa chave é usada para autenticação. Então, o primeiro campo da chave seria semelhante a este:
command="/path/to/sudo /path/to/rsync -az /home /local/folder" ssh-rsa AAAAB3NzaC1yblahblahblah
Você pode ir ainda mais longe e adicionar mais opções à chave, como from=myhost,no-pty,no-X11-forwarding
.
Isso deve fornecer segurança decente e não exigir que você modifique as permissões do sistema de arquivos subjacente. Você provavelmente precisará jogar com o comando que você colocou no arquivo authorized_keys
até que ele funcione como esperado; Pode demorar um pouco para envolver seu cérebro em torno dele. O comando especificado em authorized_keys
basicamente substituirá as opções rsync
que você passará do host de conexão.
Muita informação boa em man sshd
. Você deseja ler especificamente a seção AUTHORIZED_KEYS FORMAT.