![원격 사용자 및 sudo를 사용하여 원격에서 폴더를 복사하는 방법은 무엇입니까? [복사]](https://linux55.com/image/86257/%EC%9B%90%EA%B2%A9%20%EC%82%AC%EC%9A%A9%EC%9E%90%20%EB%B0%8F%20sudo%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%9B%90%EA%B2%A9%EC%97%90%EC%84%9C%20%ED%8F%B4%EB%8D%94%EB%A5%BC%20%EB%B3%B5%EC%82%AC%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
원격 사용자 및 sudo를 사용하여 원격에서 폴더를 복사하는 방법은 무엇입니까? 다음 중 어느 것도 권한이 있는 폴더에서는 작동하지 않으며 권한이 거부되면 실패합니다.
scp -r [email protected]:/source/ /destination/
sudo scp -r [email protected]:/source/ /destination/
원격으로 ssh를 실행하고 실행하면 sudo su
이러한 파일과 폴더를 볼 수 있습니다. scp
SSH 기반인 한 그것이 사용되었는지 여부는 나에게 중요하지 않습니다 .
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/
보안 관점에서 이러한 것을 허용하지 않는 것이 좋지만, 이를 수행해야 하는 경우 키를 사용하여 /root/.ssh/authorized_keys에 저장해야 합니다.