JENKINS 다른 계정 홈디렉토리

 

AWS의 기본 사용자는 ec2-user이다.

ec2-user의 기본 홈디렉토리는 /home/ec2-user이다.

 

젠킨스 배포시 사용되는 사용자는 jenkins이다.

jenkins의 기본 홈디렉토리는 /var/lib/jenkins이다.

 

하지만! 내가 기존에 설정했던 모든 것들이 ec2-user의 홈디렉토리 안에 있다.

무엇이 있냐면... 컴파일용 shell 파일, 서버 시작 shell 파일, 운영서버용 설정파일...

그리고 외부에서 바라보는 경로또한 ec2-user의 홈디렉토리다.

무엇이 이 경로를 바라보고 있느냐면 현재는 gitweb, systemctl에서 이곳을 바라보고 있다.

 

그래서 jenkins유저가 ec2-user의 홈디렉토리에 읽기, 쓰기, 실행 권한을 가져야한다.

뿐만아니라 sudo 권한도 가져야한다.

 

$ sudo visudo

    - 이 명령은 /etc/sudoers 라는 파일을 수정하는 명령이다.

    - 처음에는 'root ALL=(ALL) ALL' 만 한 줄 있는데 그 밑에 'jenkins ALL=(ALL) NOPASSWD: ALL' 이라고 적어주자

    - 이제 jenkins 유저가 sudo 명령을 사용할 수 있다.

 

홈디렉토리의 권한을 확인해보자

$ cd /home

$ ls -al

보면... ec2-user 폴더의 권한이 ec2-user에게 읽기,쓰기,실행 권한이 있고 ec2-user그룹이나 게스트는 어떤 권한도 없다.

그리고 ec2-user 폴더의 소유자는 ec2-user이고 권한 그룹은 ec2-user그룹이다.

소유자 말고 그룹에게도 권한을 주겠다.

 

$ sudo chmod 775 ec2-user

$ ls -al

/home, /home/ec2-user, /home/ec2-user/블라블라 모든 폴더의 권한을 확인해라! 그리고 다 바꿔라.

이제 같은 그룹은 읽기,쓰기,실행 권한이 생겼다.

※ 위에 그룹권한 주면 안된다. 이후에 EC2 접속할때 접속 못한다... 아래 권한을 확인해라.

이 글은 참고만하자. 유저홈에 프로젝트 만들지 말고 이글은 참고만해서 다른 곳에 만들어라.

다음은 올바른 권한 목록입니다.

  • 예를 들어, Linux 홈 디렉터리(/home)는 (0755/drwxr-xr-x)여야 합니다.
  • 사용자의 홈 디렉터리(/home/ec2-user/)는 (0700/drwx------)여야 합니다.
  • .ssh 디렉터리 권한(/home/ec2-user/.ssh)은 (0700/drwx------)여야 합니다.
  • authorized_keys 파일 권한(/home/ec2-user/.ssh/authorized_keys)은 (0600/-rw-------)여야 합니다.

https://aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-server-refused-our-key/

 

 

 

 

자! 다음은 jenkins의 그룹을 확인하고 ec2-user그룹에 넣어줄것이다.

 

$ sudo cat /etc/group | grep -e jenkins -e ec2-user

    - 해당명령으로 나오는 결과의 첫번째 항목이 그룹명이다.

    - 두번째 항목이 비밀번호 (x는 없다는 뜻)

    - 세번째 항목이 Group ID

    - 네번째 항목이 기타 - 그룹에 속한 유저들

 

이제 jenkins유저를 ec2-user그룹에 추가해 주자.

 

$ sudo usermod -a -G ec2-user jenkins

   - 그룹명이 ec2-user인 Group에 jenkins를 add

 

다시 확인해보자

$sudo cat /etc/group | grep -e jenkins -e ec2-user

jenkins가 jenkins그룹과 ec2-user그룹에 속해있다.

기본적으로 userName과 같은 이름을 가지는 groupName에는 해당 user가 속해있다.

확인해보려면 아래 명령!

$ id

jenkins 유저가 sudo 권한과 ec2-user 홈디렉토리의 읽기,쓰기,실행 권한도 가지게 되었다.

이제 jenkins에서 빌드가 끝난 녀석들을 스크립트를 통해 ec2-user의 홈디렉토리로 옮기고 gradle로 빌드하고 서버를 재시작하도록 준비가 끝났다.

 

 

 

 

 

 

'Jenkins' 카테고리의 다른 글

Jenkins CD  (0) 2022.05.17
Jenkins - Plugin : Post build task  (0) 2022.05.07
Jenkins item 생성 & Build  (0) 2022.05.04
Jenkins Global Tool Configuration  (0) 2022.05.04
CentOS7 Jenkins  (0) 2022.05.02

이 글을 공유하기

댓글

Designed by JB FACTORY