Você não pode. O Linux REQUER você para ter acesso root para salvar um arquivo como qualquer usuário que não seja você mesmo. A única solução é tarball e depois transferir o tarball para o servidor.
Estou configurando um servidor de backup no qual quero executar o rsync sobre o ssh para fazer backup de conteúdo em outros servidores todas as noites. Gostaria de configurar as chaves ssh para torná-lo sem senha, mas quero preservar a propriedade de arquivos e permissões. Há um número de usuários no servidor para backup, que não existem no servidor de backup.
Qual seria a melhor maneira de fazer isso? Eu acho que o trabalho de backup precisará se conectar como root, mas eu não quero ativar o acesso root ssh nos servidores.
obrigado por qualquer dica,
oli
ps, todos os servidores estão executando o UBUNTU Server 12.04 LTS e estão atrás de um firewall da universidade.
Se você simplesmente não tiver acesso root ssh, mas tiver direitos sudo (8) na máquina, poderá fazê-lo.
Por exemplo, colocando username ALL= NOPASSWD:/usr/bin/rsync
em /etc/sudoers
no host remoto e fazendo:
rsync -a -e "ssh" --rsync-path="sudo rsync" localdir/ [email protected]:/remotedir
Veja esta resposta para detalhes e mais opções de fazer isso.
Além disso, como os usuários ainda não existem no remoto, você precisará usar --numeric-ids
na sua linha rsync
para que eles sejam preservados (mas você verá apenas os nomes de usuários e os grupos assim que sincronizar /etc/passwd
e /etc/group
, claro)