Se você pode sudo no controle remoto sem precisar de uma senha, você pode simplesmente adicionar a um rsync comum a opção --rsync-path=
comando remoto , por exemplo
rsync -av --rsync-path='sudo rsync' me@remote:/root/ ~/rootcopy/
Eu tenho acesso SSH a um servidor como um usuário não privilegiado. Eu tenho acesso sudo no servidor que me permite su
to root
.
Eu preciso puxar alguns arquivos do servidor. Os arquivos só podem ser lidos por root
.
Uma maneira de fazer isso (sem soluções de UI irritantes, apenas linha de comando, por favor) é logar remotamente, usar sudo
para copiar o arquivo para o diretório home do meu usuário não privilegiado, dar a cópia do arquivo acesso de leitura para minha conta sem privilégios, saia do shell remoto e use rsync
para extrair a cópia do arquivo pela rede.
Isso é muito chato. Existe uma maneira mais simples de aproveitar sudo
de acesso para puxar esses arquivos pela rede?
(Eu estou autorizado a puxar os arquivos, mas pela política da empresa eu não posso logar como root
diretamente na rede, pois impede a prestação de contas - não há registro de quem logou dessa maneira. Então eu não posso adicionar minha chave SSH para o arquivo authorized_keys
.)