본문 바로가기
[개발] Programming/Tools

젠킨스 cp failed to access Permission denied 권한 오류

by eatyourKimchi 2024. 2. 18.

 

젠킨스 빌드 후에 스크립트를 실행하려 하니 권한 오류가 발생했다.

cp 명령어로 리눅스 서버 디렉토리를 접근할 수 있는 권한이 없기 때문.

그래서 이번 글에서는 리눅스 서버에서 jenkins 계정에 권한을 부여해 본다.

 

 

젠킨스 failed to access Permission denied 권한 오류
젠킨스 cp failed to access Permission denied 권한 오류

 

 

 

젠킨스로 빌드 후에 리눅스 서버의 특정 위치를 참조하여 복사하는 스크립트를 작성했다.

즉, 빌드 후 > cp로 파일 복사

(하나의 명령어로 구성해도 되지만, 그냥 보기 좋아서 나눠봄 ㅎㅎ)

참고로 젠킨스 스크립트에 sudo su를 추가해도 소용없다.

 

 

 

 

젠킨스 아이템 저장 후에 실행하니 오류가 떴다.

로그를 해석해 보면 cp 명령어로 접근이 실패하였다.

원인은 permission denied, 즉 권한이 없기 때문.

 

이미 젠킨스가 돌고 있는 서버 내에서 파일을 이동하거나 복사하더라도

접속해 있는 계정이 jenkins 계정이라 권한이 불충분했다.

 

 

 

 

해결 방법은 간단한데,

sudoers 에 젠킨스 계정에 대해 비밀번호 없이도 접근 가능하도록 세팅해 주면 된다.

 

먼저 sudoers 파일은 읽기 전용이므로 권한을 조정해 준다.

chmod 0740 /etc/sudoers

 

다음으로 편집을 위해 vi 에디터로 파일을 연다.

vi /etc/sudoers 

 

젠킨스 failed to access Permission denied 권한 수정

 

 

 

다음 sudoers 파일 내에 한 줄만 추가해 주면 된다!

jenkins ALL=(ALL) NOPASSWD: ALL

 

젠킨스 리눅스 sudoers 권한 수정
리눅스 sudoers 젠킨스 권한 추가

 

 

 

파일 저장 후에 접근 권한은 원복 시켜 준다.

chmod 0440 /etc/sudoers

 

이제 젠킨스에서 배포 아이템을 빌드시켜 보면 성공!!

 

 

 

댓글