SSH 로그인과 다른 사용자를 사용하여 서버에 scp 파일 보내기

SSH 로그인과 다른 사용자를 사용하여 서버에 scp 파일 보내기

somefile.jar로컬 컴퓨터(cygwin)에서 원격 컴퓨터로 파일을 복사 해야 합니다 server.local. sudoer corp에 SSH 로그인이 있습니다 . 다른 사용자가 소유한 폴더 에 파일을 배치해야 합니다 .server.localserver.local/opt/alice/libs/

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

권한이 부족하여 선택한 디렉터리에 파일을 직접 업로드할 수 없습니다. 그래서 제 복사 방법은 몇 /tmp/단계 밖에 안 돼요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/

업로드를 수행하는 더 짧은 방법이 있습니까?


내 목적을 달성할 수 있는 도구가 존재하지 않는다면 *.sh이 모든 작업을 수행하는 스크립트를 만들 수도 있을까요?

답변1

sudo에 비밀번호가 필요하지 않다고 가정하고 간단한 스크립트를 만들고 싶다면 데이터를 파이프할 수 있습니다.

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

-C파일을 추출하기 전에 디렉토리를 변경하십시오. 귀하의 tar에 이것이 없으면 먼저 명시적인 것을 추가하십시오 cd /opt/alice/libs/.

답변2

이것이 유일한 방법일 가능성이 높습니다.

관련 정보