scp file to server com usuário diferente de ssh login

1

Eu preciso copiar o arquivo somefile.jar do computador local (cygwin) para o remoto server.local . Eu tenho um login ssh corp to server.local que um sudoer em server.local . Preciso colocar o arquivo na pasta /opt/alice/libs/ de outro usuário:

[[email protected] ~]$ ls -ld /opt/alice/libs
drwxr-xr-x 2 alice alice 12288 Apr 13 11:09 /opt/alice/libs

Não consigo direcionar o arquivo de upload para o diretório escolhido devido a direitos insuficientes. Então, minha maneira de copiar tem algumas etapas com /tmp/ on server.local

$ scp ./somefile.jar [email protected]/tmp/
$ ssh [email protected]
Last login: Thu Apr 12 18:05:41 2018 from 192.168.87.34

[[email protected] ~]$ sudo chown alice:alice /tmp/somefile.jar
[[email protected] ~]$ sudo -u alice mv /tmp/somefile.jar /opt/alice/libs/

Existe uma maneira mais curta de realizar o upload?

Se uma ferramenta não existe para alcançar meus objetivos, talvez seja possível criar um script *.sh que inclua todas essas operações?

    
por Loom 13.04.2018 / 10:35

2 respostas

2

Se você quiser fazer um script simples, supondo que seu sudo não precisa de uma senha, você pode enviar os dados:

tar cf - ./somefile.jar | 
ssh -t [email protected] sudo -u alice tar xf - -C /opt/alice/libs/

O diretório -C muda antes de extrair o arquivo. Se o seu tar não tiver isso, adicione um cd /opt/alice/libs/ explícito primeiro.

    
por 14.04.2018 / 21:01
0

Essa é provavelmente a única maneira de fazer isso.

    
por 13.04.2018 / 10:46