Eu recomendaria que você usasse a conta root em primeiro lugar. Se você configurá-lo assim:
- Configure o seu
sshd_configna máquina de destino para PermitRootLogin without-password.
- Use
ssh-keygenna máquina que executa o backup para criar uma chave privada SSH (somente se você ainda não tiver uma chave SSH). Não defina uma senha. Google um tutorial, se você precisar de detalhes para isso, deve haver uma abundância.
- Anexe o conteúdo da
/root/.ssh/id_rsa.pubmáquina de backup ao /root/.ssh/authorized_keysda sua máquina de destino.
- Agora sua máquina de backup tem acesso root à sua máquina de destino, sem precisar usar a autenticação de senha.
a configuração resultante deve ser bastante segura.
sudo, especialmente combinado com NOPASSWDo recomendado nos comentários, não possui benefícios de segurança ao usar apenas a conta raiz. Por exemplo, esta sugestão:
adicione o seguinte ao seu /etc/sudoersarquivo:rsyncuser ALL= NOPASSWD:/usr/bin/rsync
essencialmente dá rsyncuserpermissões de root de qualquer maneira. Você pergunta:
@MartinvonWittich Fácil de obter um shell raiz completo porque rsyncexecutado com sudo? Caminhe [m] e [por] isso por favor.
Bem, simples. Com a configuração recomendada, rsyncuseragora pode ser executado rsynccomo root sem sequer ser solicitada uma senha. rsyncé uma ferramenta muito poderosa para manipular arquivos, então agora rsyncusertem uma ferramenta muito poderosa para manipular arquivos com permissões de root. Encontrar uma maneira de explorar isso levou apenas alguns minutos (testado no Ubuntu 13.04, requer dash, bashnão funcionou):
martin@martin ~ % sudo rsync --perms --chmod u+s /bin/dash /bin/rootdash
martin@martin ~ % rootdash
# whoami
root
# touch /etc/evil
# tail -n1 /etc/shadow
dnsmasq:*:15942:0:99999:7:::
Como você pode ver, eu criei um shell raiz; whoamiidentifica minha conta como raiz, posso criar arquivos /etce posso ler /etc/shadow. Minha exploração foi definir o bit setuid no dashbinário; faz com que o Linux sempre execute esse binário com as permissões do proprietário, neste caso raiz.
Ter uma raiz real não é [recomendado] por boas razões. - redanimalwar 15 horas atrás
Não, trabalhar desajeitadamente na conta raiz em situações em que é absolutamente apropriado usá-la não é por boas razões. Essa é apenas outra forma de programação de cultos de carga - você realmente não entende o conceito por trás do sudo x root, aplica cegamente a crença de que "a raiz é ruim, o sudo é bom" porque você leu em algum lugar.
Por um lado, há situações em que sudodefinitivamente é a ferramenta certa para o trabalho. Por exemplo, quando você está trabalhando interativamente em uma área de trabalho gráfica do Linux, digamos Ubuntu, então é necessário ter sudobom uso nos casos raros em que às vezes você precisa de acesso root. O Ubuntu intencionalmente possui uma conta root desabilitada e obriga a usar sudopor padrão para impedir que os usuários sempre usem a conta root para efetuar login. Quando o usuário apenas deseja usar, por exemplo, o navegador da Web, fazer login como root seria uma coisa perigosa. e, portanto, não ter uma conta root por padrão impede que pessoas estúpidas façam isso.
Por outro lado, há situações como a sua, em que um script automatizado requer permissões de root para algo, por exemplo, para fazer um backup. Agora, usar sudoa solução para a conta raiz não é apenas inútil, também é perigoso: à primeira vista, rsyncuserparece uma conta comum e sem privilégios. Mas, como eu já expliquei, seria muito fácil para um invasor obter acesso root completo se ele já tivesse rsyncuseracesso. Portanto, agora você tem uma conta root adicional que não se parece com uma conta root, o que não é uma coisa boa.
rootconta em primeiro lugar.sudo, especialmente combinado comNOPASSWDo recomendado nos comentários, não melhora realmente a segurança da sua máquina.