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