리눅스

리눅스 설치부터 프로젝트 배포까지(3) - 우분투 톰캣(tomcat9) 일반계정 생성 및 권한 부여(배포용)

진짠 2023. 7. 3. 16:44
728x90
점검

3개의 포스팅으로 끝내고자 했던 리눅스 배포는 아파치 권한 오류의 미해결로 인해 4개의 포스팅으로 마무리 하고자 한다.

이전 포스팅을 통해 

1.JAVA설치

2.TOMCAT 설치

3.프로젝트 배포

4.APACHE 설치

5.MOD_JK 연동

6.WEB, WAS 분리하여 프로젝트 연동 확인

 

총 3번까지의 과정을 진행하였다.

 

그래서 이번에는 리눅스에 일반계정을 생성하여 배포 계정을 따로 생성하고 아파치를 설치하는 과정까지 알아보고자 한다.

 

계정을 만드는 이유

root 계정은 최상위 계정으로 톰캣 외에도 다른 프로그램들을 제어할 수 있다.이런 root 계정으로 톰캣을 실행하면 보안 측면에서 문제가 발생한다. 가령 업로드한 파일을 이용해 root 권한을 탈취하여 악의적인 공격을 할 수 있다. 때문에 톰캣을 실행하는 용도의 일반계정을 생성하고 그 계정으로만 배포를 진행한다.

 

계정 생성

계정을 생성하는 방법은 총 2개가 있다.

 

하나는 'adduser [계정이름]' 명령어를 통해 계정생성 시 필요한 기본정보를 바로 입력하여 생성한다. 하나의 명령어로 생성이 가능해서 좀 더 간편한 이점이 있다.

 

나머지 하나는 'useradd [계정이름]' 명령어로 순수 계정만 추가해주고 나머지 정보등은 옵션을 통해 따로 설정해줘야 한다. adduser 보다는 더 까다롭지만 옵션 사용이 능숙한 사용자에겐 더 익숙한 명령어라고 한다.

 

나는 useradd 명령어를 통해 일반 계정을 생성하였다.

 

$ useradd dev -g dev -s /bin/bash -m -d /home/dev 

풀이하자면, dev라는 계정을 dev라는 그룹에 지정하고 '/bin/bash' 라는 쉘(sh)을 사용하고 '/home/dev' 라는 경로의 폴더를 홈 디렉토리로 생성할 것이다, 라는 의미이다.

 

/bin/bash 라는 쉘은 계정을 생성할 때 사용하는 기본적인 쉘이다. 쉘 권한이 없는 사용자를 생성하고 싶다면 /bin/false 나 /bin/nologin 으로 지정해주면 된다.

(여담이지만 다른 포스팅에서는 전부 톰캣 일반계정을 생성할 때 쉘 권한을 주지 않았는데 이유를 모르겠다.. 쉘 권한이 있어야 톰캣을 실행시킬 수 있지 않은가? 아는 분이 계신다면 댓글을..)

 

그리고 그룹 지정 전에그룹을 만들어줘야 한다.

 

$ groupadd dev

위 명령어를 통해 dev 그룹을 생성하고 계정을 만들도록 한다.

 

계정을 만들었다면 비밀번호도 입력한다.

 

$ passwd dev

 

명령어를 입력한 후 패스워드, 패스워드 확인을 입력하면 패스워드가 입력된다.

 

그 다음엔 내가 사용할 계정이 제대로 만들어졌나 확인해본다.

 

$ cat /etc/passwd

cat 은 텍스트를 조회할 수 있는 명령어이다. 해당 폴더의 passwd 파일에 들어가면 현재 사용하고 있는 계정에 관한 정보들을 모두 볼 수 있다.

 

정상적으로 계정을 만들었다면,

 

dev:x:258:258::/home/dev:/bin/bash

이런 식으로 계정에 대한 정보가 뜨게 된다. 차례대로 보면

dev - 계정명

x - 패스워드(패스워드가 암호화 되어 /etc/shadow 파일에 저장되어 있다는 의미이다.)

258 - UID(사용자의 user id를 나타냄 root 계정의 경우 0)

258 - GID(사용자의 group id를 나타냄 root 그룹의 경우 0)

(공백) - 사용자의 이름을 나타냄. 현재 지정해주지 않아서 공백상태이다.

/home/dev - 홈 디렉토리. 보통 일반 계정을 생성하면 home 하위 폴더에 계정명과 동일하게 폴더를 만든다.

/bin/bash - 로그인 쉘. 로그인 시 사용할 쉘을 의미.

 

위 순서대로 계정의 상태를 파악할 수 있다.

 

톰캣 폴더 이동

해당 계정이 톰캣을 실행할 수 있도록 홈 디렉토리 폴더에 톰캣 폴더를 이동시켜준다.

 

$ cp -r /home/dev [현재 톰캣 폴더 경로]

/home/dev 폴더 경로로 현재 톰캣이 존재하는 폴더를 통째로 복사해오겠다는 의미이다.

 

폴더를 복사해왔다면 root 계정에 있던 권한을 dev 계정으로 옮겨야 한다.

 

$ ls -al

을 통해 소유권을 확인 후,

 

$ chown -R dev:dev /home/dev/[톰캣폴더]

명령어를 통해 톰캣 폴더에 있는 모든 권한을(-R) dev에게로 옮겨온다. ls -al을 통해 소유권이 정상적으로 이동됐는지 확인해본다.

 

이후에 dev 계정으로 톰캣을 실행시켜 프로젝트가 잘 돌아가나 확인해본다.

 

계정 이동
$ su - [계정이름]

명령어를 통해 계정을 이동한다. 첫 세팅 단계에서는 root 계정에서 해야 할 작업들이 많기 때문에 종종 명령어를 사용할 것이다.

 

아파치 설치
$ sudo apt update
$ sudo apt-get install apache2

패키지 관리 도구 업데이트 후 명령어를 통해 아파치를 설치해준다.

 

방화벽 관련 설정은 하지 않았으므로 진행하지 않았지만 필요한 경우 해제해주어야 한다. 아파치 포트는 80포트를 사용할 예정이다.

 

$ nano /etc/apache2/ports.conf

 

nano 편집기를 통해 ports.conf 파일을 확인한다. 아파치 실행 포트를 확인하는 부분이다.

 

 

요기 부분이 포트 부분이다. 현재 80포트를 사용하고 있다.

 

$ service apache2 start

위 명령어를 통해 아파치를 실행할 수 있다. (참고로 root 계정으로 이동후 진행한다.)

 

정상적으로 실행이 된다면 크롬 주소창에서 '[사용IP]:80' 을 입력했을 때  

 

이런 이미지가 나온다면 연결에 성공한 것이다.

 

다음 포스팅은 mod_jk를 이용하여 아파치와 톰캣을 연동해볼 것이다. 그리고 왜 WEB서버와 WAS서버를 분리하여 이용하는지 또한 포스팅할 예정이다.

 

모든 과정은 과거 실행한 내용을 복기한 것이며 부정확하거나 빠진 부분이 있을 수 있다.

 

 

728x90