Alterando usuário para root quando conectado a um servidor linux e copiando arquivos

2

Meu script é codificado de uma forma que não permite que você se conecte diretamente a um servidor por root. Este código basicamente copia arquivos de um servidor para o meu computador e funciona, mas eu não tenho acesso a muitos arquivos, porque somente o root pode acessá-los. Como posso me conectar a um servidor como um usuário e depois copiar seus arquivos alternando para o root?

Código que quero alterar:

sshpass -p "password" scp -q -r [email protected]:some_directory copy_it/here/

Em outras palavras, eu quero ser capaz de copiar remotamente arquivos que são acessíveis apenas para o root em um servidor remoto, mas não deseja acessar o servidor remoto via ssh / scp diretamente como root.

É possível apenas através do ssh e não do sshpass?

    
por Alias 29.05.2014 / 22:52

2 respostas

0

então a abordagem seria executar remotamente comandos que copiam os arquivos via sudo para / tmp na máquina remota, muda seu proprietário para o usuário conectado e, em seguida, os copia remotamente de / tmp:

 ssh [email protected] "sudo cp -R some_directory /tmp"
 ssh [email protected] "sudo chown -R username:username /tmp/some_directory"
 scp -q -r [email protected]:/tmp/some_directory copy_it/here/ 
 ssh [email protected] "rm -r /tmp/some_directory"
    
por 30.05.2014 / 22:44
0

É melhor você usar chaves (não a senha) para automatizar o login remoto.

Se você deseja obter acesso root, precisará de um "su" sem senha, ou configure melhor "sudo" para poder executar comandos com o usuário root.

Em seguida, você pode usar "ssh" (não scp) para efetuar login e executar comandos no servidor remoto. Você pode usar tar / lszrz / whatever para transferir os arquivos.

Assim:

ssh remote.server.com sudo tar fc - /path/on/the/remote/server | tar fx -

Isso deve copiar o / path / on / the / remote / server para o diretório atual.

EDITAR: Lembre-se de que permitir que seu usuário sudo tar não seja de segurança.

    
por 29.05.2014 / 23:02