Error :: cp: cannot create regular file `/home/ec2-user/actions-runner/run-helper.sh': Permission denied 해결
문제 발단
AWS EC2 에서 git action을 활용해서 CI/CD 환경을 구축하던 도중 오류가 났다.
github configure을 연결 성공 한뒤 runner를 실행하기 위해 ./run.sh 명령어를 치니
Error :: cp: cannot create regular file `/home/ec2-user/actions-runner/run-helper.sh': Permission denied
이런 오류가 났었다. CI/CD 환경을 구축하는 적은 처음이였기에 멘붕이 왔었다. 구글링을 해봐도 내가 원하는 해답을 찾을 수 없었다.
천천히 오류를 해석을 해보기로 했다. 권한이 없어서 run-helper.sh 파일을 생성할 수 없다. -> 권한을 확인
문제 해결
일단 지금 사용하고 있는 id가 뭔지 알아보기로 했다(권한 확인).
whoami
ec2-user 였다.
그리고 파일에 권한을 확인해 보았다.
ls -ld /home/ec2-user/actions-runner
출력결과
drwxr-xr-x 5 1001 127 4096 2월 26 07:18 /home/ec2-user/actions-runner/
디렉토리 소유자와 그룹이 1001로 설정되어 있었다. 결국 문제는 지금 파일에 접근할 수 있는 id는 1001인데 내 아이디는 ec2-user 였다.
간단하게 /home/ec2-user/actions-runner/ 디렉토리 소유자와 그룹을 ec2-user로 변경하면 될 문제 였다.
권한 변경
sudo chown -R ec2-user:ec2-user /home/ec2-user/actions-runner/
출력결과
drwxr-xr-x 5 ec2-user ec2-user 4096 2월 26 07:18 /home/ec2-user/actions-runner/
권한 아이디와 그룹이 ec2-user로 변경된 걸 볼 수 있다.
이후 ./run.sh 를 해서 runner를 실행시키니 문제없이 작동하였다.
알게된점
구글링에 찾아봤을 때 나랑 똑같이 해멘 사람들이 없는 걸 보면 나의 기초 지식이 부족했던 것 같다. 문제 조차 별거 아닌 리눅스에 대한 기초 지식만 알고 있었다면 쉽게 알아 낼 수 있었던 문제였다. 리눅스는 기본 파일에 대한 권한이 있다는 것을 알게 되었고 리눅스 공부에 필요성을 느끼게 되었다.