원격 사용자 및 sudo를 사용하여 원격에서 폴더를 복사하는 방법은 무엇입니까? [복사]

원격 사용자 및 sudo를 사용하여 원격에서 폴더를 복사하는 방법은 무엇입니까? [복사]

원격 사용자 및 sudo를 사용하여 원격에서 폴더를 복사하는 방법은 무엇입니까? 다음 중 어느 것도 권한이 있는 폴더에서는 작동하지 않으며 권한이 거부되면 실패합니다.

scp -r [email protected]:/source/ /destination/
sudo scp -r [email protected]:/source/ /destination/

원격으로 ssh를 실행하고 실행하면 sudo su이러한 파일과 폴더를 볼 수 있습니다. scpSSH 기반인 한 그것이 사용되었는지 여부는 나에게 중요하지 않습니다 .

scp아마도 이는 보안상의 이점으로 sudo 권한을 사용하는 데 따른 제한 사항일 수 있습니다. 그러나 SSH를 통해 sudo su모든 폴더를 실행하고 볼 수 있지만 원격에서 다운로드할 수 없다는 점은 정말 답답합니다 ( tar다운로드를 통해 이 문제를 해결할 수는 있지만).

답변1

자신에게 NOPASSWD 액세스 권한(모든 명령 또는 "tar" 또는 "cat"에 대한 액세스)이 있거나 부여할 수 있다고 가정하면 다음과 같이 수행할 수 있습니다.

# For a single file
ssh [email protected] 'sudo cat /source/SINGLE_FILE' > /destination/SINGLE_FILE

# for recursive copying, use tar or cpio
ssh [email protected] 'sudo tar -C /source/ -czf - .' | tar -C /destination/ -xzf -

원격 측에서 sudo를 실행한 다음 stdout을 쓰는 프로그램을 통해 파일을 stdin을 읽는 프로그램으로 전송해야 합니다.

sudo 비밀번호를 입력해야 한다면 상황이 더 나빠지지만 rsync 서버와 포트 전달을 사용하면 가능합니다.

답변2

어떤 사용자가 사용해야 하는지 확인하세요 sudo.현지의또는외딴(또는 둘 다) 사용자입니까? 즉, sudo scp영향을 미친다현지의명령을 실행할 수 있는 사용자의 권한입니다 scp.

해결 방법 - source파일을 다른 디렉터리로 이동해 보세요.외딴사용자 소유권 및 권한과 쓰기 권한 확인현지의사용자는 destination폴더가 생성되어야 하는 위치에 있습니다.

이사도 source해보세요외딴사용자의 홈 디렉터리 - 해당 디렉터리가 위치한 경로입니다 ~(아마도 서버 보안 정책의 결과일 수 있음).

답변3

얻으려는 파일에는 수정 권한(이 특정 파일 및 폴더에 대한 루트 또는 읽기 불가 권한 소유)이 있어야 하므로 이를 얻는 가장 쉬운 방법은 사용자 대신 루트로 scp를 실행하는 것입니다.

scp -r [email protected]:/source /destination/

SSH를 통해 루트 로그인 활성화(RedHat에서)

보안 관점에서 이러한 것을 허용하지 않는 것이 좋지만, 이를 수행해야 하는 경우 키를 사용하여 /root/.ssh/authorized_keys에 저장해야 합니다.

관련 정보