OS/Linux

[Linux] root가 아닌 nologin계정으로 Tomcat 실행하기

yeit 2024. 2. 7. 22:07
728x90

nologin란?

nologin은 로그인이 불가능하도록 설정된 특별한 사용자 계정 유형이다.
이 계정을 사용하면 특정 사용자가 시스템에 로그인하는 것을 차단하여 시스템의 보안을 강화할 수 있다.

일반 계정을 생성하면 /bin/sh 또는 /bin/bash에 할당되어, 기본적으로 쉘 로그인이 가능하다. 반면 nologin 계정은 /sbin/nologin에 할당되며 쉘 로그인 자체가 불가능하다.

 

[Linux] nologin이란? nologin 설정 방법까지 (tistory.com)

 

[Linux] nologin이란? nologin 설정 방법까지

nologin란? nologin은 로그인이 불가능하도록 설정된 특별한 사용자 계정 유형이다. 이 계정을 사용하면 특정 사용자가 시스템에 로그인하는 것을 차단하여 시스템의 보안을 강화할 수 있다. 일반

yeit.tistory.com

 

 

일반적으로 Apache, Tomcat과 같은 서비스를 실행할 때는 보안상의 이유로 root 계정으로 실행하지 않는다. root 계정은 시스템 전체에 대한 권한을 가지고 있어 위험이 크기 때문이다.
그래서 root 계정이 아닌, 특정 사용자로 서비스를 실행하는 것이 보안상 권장된다. 

 

 

추가) 톰캣 설치하는 방법은 하기 링크의 1. Tomcat 설치 참고

[NCP] NCP VPC 환경에서 3-tier 구축하기 - 2.WEB-WAS 연동까지 (tistory.com)

 

[NCP] NCP VPC 환경에서 3-tier 구축하기 - 2.WEB-WAS 연동까지

WEB - nginx 설치 1. Nginx 설치 1-1. /etc/yum.repos.d/nginx.repo 파일 생성 CentOS의 기본 저장소에는 Nginx가 포함되어 있지 않거나 최신 버전이 아닐 수 있다. 그러므로 /etc/yum.repos.d/nginx.repo 파일을 생성하고

yeit.tistory.com

 

 

 

root계정이 아닌 nologin계정으로 Tomcat 실행하기

1. tomcat라는 nologin 계정 생성

# 1. tomcat그룹 생성
# groupadd tomcat

# 2. tomcat그룹에 속하고 로그인이 불가능한 /bin/nologin 셸을 사용하는 tomcat 사용자를 생성
# useradd -M -s /bin/nologin -g tomcat tomcat

# 3. 확인
# cat /etc/passwd | grep tomcat

 

2.  Tomcat 디렉토리 권한 설정

# 1. /usr/local/tomcat 경로와 그 하위 디렉토리 및 파일의 소유자와 그룹을 tomcat:tomcat로 변경
# chown -R tomcat:tomcat /usr/local/tomcat

# 2. 확인
# ll /usr/local/tomcat

 

3. tomcat.service 데몬 등록

# vi /usr/lib/systemd/system/tomcat.service 
[Unit]
Description=tomcat9.0.4
After=syslog.target network.target

[Service]
Type=forking

ExecStart=/usr/local/tomcat/apache-tomcat-9.0.4/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

 

4. Tomcat 실행해 보기

tomcat프로세스가 root가 아닌 tomcat계정으로 실행된 것을 확인할 수 있다.

# systemctl daemon-reload 
# systemctl restart tomcat

# 확인
# ps -ef | grep tomcat

728x90