2025년 12월 21일 일요일

[OS]리눅스서버 WAS 관련 권한 관리

[Best Practice] Linux 서버 WAS 권한 체계 구축 가이드

리눅스 환경에서 다수의 운영자가 WAS(Tomcat, Nginx 등)를 공동 관리할 때 발생하는 권한 꼬임(Permission Denied) 문제를 방지하기 위한 표준 설정법입니다.


1. 계정 및 그룹 설계 (Account & Group)

리눅스는 ‘1파일 1그룹’ 원칙을 가지므로, 모든 관리자를 하나의 **보조 그룹(Secondary Group)**으로 묶는 전략이 필수입니다.

🛠 터미널(Terminal) 명령어

Bash

# 1. WAS 관리 전용 그룹 생성
sudo groupadd webadmin

# 2. 서비스 구동용 시스템 계정 생성 (로그인 불가 설정으로 보안 강화)
sudo useradd -r -s /usr/sbin/nologin wasuser

# 3. 관리자 계정(aaaa, bbbb)을 관리 그룹에 추가 (보조 그룹 추가 옵션 -aG)
sudo usermod -aG webadmin aaaa
sudo usermod -aG webadmin bbbb
sudo usermod -aG webadmin wasuser  # 서비스 계정도 그룹에 포함


2. 폴더 소유권 및 특수 권한 설정 (Ownership & SetGID)

리눅스에는 윈도우식 상속이 없으므로, SetGID라는 특수 권한을 사용하여 새로 생성되는 파일의 그룹 소유권을 강제로 고정합니다.

🛠 설정 절차

  1. 디렉토리 소유권 변경:

    Bash

    # /app/was 폴더의 소유자를 wasuser로, 그룹을 webadmin으로 일괄 변경
    sudo chown -R wasuser:webadmin /app/was
    
    
  2. 기본 권한 부여:

    Bash

    # 소유자와 그룹 멤버에게 읽기/쓰기/실행 권한 부여 (775)
    sudo chmod -R 775 /app/was
    
    
  3. SetGID 설정 (리눅스 상속의 핵심):

    Bash

    # 하위 디렉토리에 SetGID를 걸어, 누가 파일을 만들어도 그룹이 'webadmin'으로 고정되게 함
    find /app/was -type d -exec chmod g+s {} +
    
    

3. 서비스 구성 (Systemd Service)

시스템 부팅 시 WAS가 지정된 계정으로 자동 실행되도록 systemd 서비스 파일을 설정합니다.

🛠 서비스 파일 예시 (/etc/systemd/system/tomcat.service)

Ini, TOML

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

# 핵심 설정: 서비스를 구동할 사용자 및 그룹 명시
User=wasuser
Group=webadmin

Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk
ExecStart=/app/was/tomcat/bin/startup.sh
ExecStop=/app/was/tomcat/bin/shutdown.sh

[Install]
WantedBy=multi-user.target


4. 💡 실무 핵심 요약 (Cheat Sheet)

항목

설정 권장 사항 (Best Practice)

이유

그룹 관리

모든 관리자를 보조 그룹(webadmin)에 포함

다수의 사용자가 동일한 파일 수정 가능

상속 구현

폴더에 SetGID(g+s) 권한 부여

신규 생성 파일의 그룹 소유권 자동 고정

파일 생성값

umask 값 확인 (기본 002 권한 권장)

그룹 멤버에게 쓰기 권한이 자동으로 생기도록 함

권한 적용

그룹 추가 후 로그아웃 & 로그인 필수

세션이 갱신되어야 새로운 그룹 권한이 반영됨


⚠️ 주의사항

  • umask 설정: 시스템의 umask022로 되어 있으면 그룹 멤버에게 쓰기 권한이 없습니다. 그룹 협업이 잦은 WAS 폴더 내에서는 umask 002를 권장합니다.

  • 파일 vs 폴더: chmod g+s는 반드시 디렉토리에만 적용하는 것이 보안상 안전합니다. (find 명령어 활용 권장)


댓글 없음:

댓글 쓰기

[OS]리눅스서버 WAS 관련 권한 관리

[Best Practice] Linux 서버 WAS 권한 체계 구축 가이드 리눅스 환경에서 다수의 운영자가 WAS(Tomcat, Nginx 등)를 공동 관리할 때 발생하는 권한 꼬임(Permission Denied) 문제를 방지하기 위한 표준 설정...