scp 동안 사용자 변경


16

Linux 컴퓨터간에 파일을 복사해야합니다. 로그인하는 데 사용하는 사용자 ( myuser)가 파일에 액세스 할 수있는 사용자와 다른 문제입니다 .

ssh기계로 방금 전환하면을 사용하여 사용자를 전환 sudo su someuser할 수 있습니다. 어떻게 할 수 scp있습니까?

WinSCP를 사용하는 동안 SCP / Shell을 구성하여이 작업을 수행 했으므로 순수 쉘을 통해 유사한 방법이 필요하다고 생각합니다.


혼란 스러워요. 파일을 조작하는 사용자로 로그인하지 않는 이유는 무엇입니까?
rahmu

다른 사용자를 사용하여 로그인 할 수 없기 때문입니다.
Tarlog

다음과 같은 연결 ssh및 실행 scpssh myuser@host "sudo scp ..."어떻습니까?
rahmu

어쩌면 여기에 대답이 그런 상황에서 효과가 있습니까? unix.stackexchange.com/questions/43094/... @Tarlog이 원격 시스템 자체에, 당신은 결과 someuser을 ssh를 수 있다고 가정 @ 원격
베른하르트

답변:


9

ssh 할 수있는 사용자가 대상 사용자에게 sudo를 sudo하기 위해 암호가 필요하지 않다고 가정하면 다음을 시도 할 수 있습니다.

dd if=myfile | ssh some.host "sudo -u targetuser dd of=myfile" 

... targetuserSSH를 통해 scp / sftp / rsync 만 허용 하도록 구성 하고 인증을 위해 RSA 키 쌍을 사용하는 것이 더 나은 옵션이 아니라는 것을 여전히 확신하지 못합니다.


1
또는 tar -cvf - * | ssh user@host "sudo -u targetuser tar -C /targetdir -xf -"많은 파일들
Matt

또한 사실, 나는 우리가 여부를 논의 할 수 있다고 가정 -z또는 -j양쪽에 연결 속도와 컴퓨터 하드웨어에 따라 유용 ...
Shadur

3

다른 사용자 ( someuser) 의 자격 증명을 알고 있으면 scp통화시 자격 증명을 지정할 수 있습니다 .

로부터 man scp페이지 :

파일 이름에는 파일이 해당 호스트에서 복사되거나 해당 호스트에서 복사 될 것임을 나타내는 사용자 및 호스트 사양이 포함될 수 있습니다. ':'를 호스트 지정자로 포함하는 파일 이름을 scp로 처리하지 않도록 절대 또는 상대 경로 이름을 사용하여 로컬 파일 이름을 명시 적으로 만들 수 있습니다. 두 원격 호스트 사이의 사본도 허용됩니다.

사용 된 구문은 다음과 같습니다.

[[user@]host:]/path/to/file

user를 사용하여 파일 /home/foo/barhost1로컬 호스트 로 복사하려면 someuser다음 명령을 사용 하십시오.

scp someuser@host1:/home/foo/bar .

인증 (암호, 키 등)을 요구합니다.


1
다른 사용자로 로그인 할 수 없습니다.
Tarlog

그런 다음 RSA 키를 사용하여 scp / rsync 전용 로그인을 설정하십시오.
Shadur

1
다른 종류의 로그인을 사용하여 다른 사용자를 사용하는 것은 불가능합니다. 다른 경우에는 이미 ssh / scp에 RSA 키를 사용하고 있습니다.
Tarlog

1

아마 가능할 수도 있지만, 그것에 대해 매우 어색한 방법이라고 말하고 싶습니다.

내 제안은 그 사용자로 로그인하는 것입니다. 해당 사용자의 비밀번호가 없더라도 자신의 공개 ssh 키를 authorized_keys에 추가 한 다음 rahmu가 보여주는 것처럼 해당 키를 사용하여 scp를 수행 할 수 있습니다.

그것이 가능하지 않다면, 두 번째 제안은 ssh로 로그인하고 사용자에게 sudo하고 복사하려는 파일의 tarfile을 작성하여 자신의 사용자가 읽을 수있는 곳에 두는 것입니다. 그런 다음 해당 tarfile을 내려 받으십시오.


다른 사용자는 로그인 할 수 없습니다. 네, 나는 두 번째 제안을 스스로 알아 냈습니다. 쉬운 방법을 찾고 :)
Tarlog

그러면 gcb가 게시 한 링크가 사용 중이어야합니다. 적어도이 작업을 두 번 이상 수행하려는 경우. 또는 파일에 대한 액세스 권한을 변경하여 자신의 사용자에게 파일에 대한 액세스 권한을 부여 할 수도 있습니다.
Jenny D

글쎄, 나는 다른 사용자가 사용할 스크립트 (물론 여러 번 사용될 예정 임)를 만들려고합니다. 따라서 내게 액세스 권한을 부여해도 실제로 도움이되지는 않습니다. '다른 사용자를 sudo su'할 수있는 사람은 누구나 스크립트를 실행할 수 있어야합니다.
Tarlog

알았어 gcb의 링크로 시작한 다음 스크립트에 문제가 있으면 게시하고 도움을 얻을 수 있는지 확인하십시오.
Jenny D


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.