Jost Do It.

그냥 IT해.

서버 및 환경/Git

[gitlab] gitlab runner의 permission denied 문제

그냥하Jo. 2024. 5. 22. 12:41
반응형

상황

Ubuntu에서 정상적으로 동작하던 ci script가 CentOS 환경에서는 permission denied 가 발생했다.

 

 

원인

Ubuntu에서는 디렉터리 읽기 권한이 있어 해당 디렉터리에 접근이 가능했지만, CentOS에서는 권한이 없어 접근이 거부된 것이다.

 

확인 과정은 아래와 같다.

우선 .gitlab-ci.yml 파일에 echo $(whoami) 명령어를 통해 해당 스크립트를 실행하는 주체가 누구인지 파악했다.

  • gitlab-runner 라는 유저로 runner가 실행되는걸 확인할 수 있다.

 

 

gitlab-runner 유저의 정보를 확인해보자.

  • gitlab-runner는 자기자신 외의 다른 그룹에는 속해있지 않다.

 

 

Ubuntu 환경에서는 cd가 문제없었기 때문에 각 경로의 권한 확인을 진행했다.

  • 소유자 뿐만 아니라 그룹, 사용자에 대해 읽기 권한이 열려있다.

 

 

CentOS 환경에서의 권한을 확인해보자. 

  • Ubuntu와 달리 mining 유저 외에는 home 디렉터리에 읽기/쓰기/실행 권한이 없는걸 확인했다.

 

 

해결방법

1. gitlab-runner 유저를 mining 그룹에 추가해준다.

sudo usermod -G mining gitlab-runner

id gitlab-runner
>>> uid=987(gitlab-runner) gid=980(gitlab-runner) groups=980(gitlab-runner),1000(mining)
  • group이 추가된걸 확인

 

2. mining의 홈 디렉터리를 그룹에 대해 읽기/실행 권한을 부여한다.

sudo chmod 775 /home/mining

 

3. 정상적으로 ci가 동작함을 확인

 

Reference

반응형