각종 에러들을 해결 해 보자

Ubuntu | scp: Permission denied, 폴더 및 파일의 소유자 변경하기

토오오끼 2024. 11. 3. 18:03
728x90
반응형

 

종종 도커 컨테이너에서 작업을 한 결과물을 다른 서버로 옮길 때 scp를 사용하는데 scp: Permission denied를 마주할 때가 있다..

 

도커 컨테이너 내에서 생성된 폴더 및 파일들이 전부 root 계정에서 생성 되었기 때문에 생기는 문제로 두 가지 방법으로 해결할 수 있다.

 

1. 권한 부여

먼저 이동하고자 하는 폴더 및 파일의 권한을 확인 후 쓰기 권한이 없다면 부여 해 주면 된다.

r은 읽기 권한, w는 쓰기, x는 실행 권한으로 옮기고자 하는 대상에 w 권한이 없다면 부여 해 줘야 한다.

sudo chmod 777 "target file"

 

 

2. 소유자 변경

권한을 부여했는데도 동일한 에러가 발생한다면 소유자를 변경 해 줘야 한다.

root 계정에서 생성한 파일을 user 계정으로 scp를 통해 옮기려고 할 때도 ssh permission denied가 발생하는데 이때 root에서 생성한 파일의 소유자를 user로 변경 해 주면 된다.

sudo chown "user name":"user group" "target file"

 

마찬가지로 scp를 통해 파일을 전달 받을 서버의 폴더의 소유자도 root라면 permission denied가 발상하기 때문에 전달 받은 서버의 폴더 또한 user로 소유자를 변경 해 줘야한다.

 

 

이렇게 해 주면 scp 시 permission denied 없이 제대로 사용할 수 있게 된다.

 

p.s) 두 방법 모두 직접적으로 적용하기 부담스러운 환경이라면 해당 파일 또는 폴더를 임시 폴더에 복사를 해 둔 후 복사한 파일들의 권한 및 소유자를 변경 시켜주면 된다.

728x90
반응형