Linux/네트워크 및 서비스의 활용

Apache 서버의 실행 사용자(www-data)를 ubuntu 그룹의 일원으로 추가

Linuxpia4U 2025. 6. 24. 16:49
반응형

Apache 서버의 실행 사용자(www-data)를 ubuntu 그룹의 일원으로 추가

sudo usermod -a -G ubuntu www-data

이 명령어는 Apache 서버가 Django 프로젝트 파일에 접근할 수 있게 만드는 핵심 조치입니다.
아파치와 장고의 연결 과정에서 흔히 간과되지만, 실제 배포 환경에서는 이 권한 문제가 상당히 중요한 역할을 합니다.


🔍 명령어 설명

sudo usermod -a -G ubuntu www-data

 

구성 요소 의미
sudo 관리자 권한으로 실행
usermod 리눅스 사용자 정보를 수정하는 명령
-a 기존 그룹에 추가로 그룹을 더한다 (append)
-G ubuntu 대상 그룹: ubuntu 그룹
www-data 수정할 사용자: Apache 웹서버의 실행 계정

📌 즉, Apache 서버의 실행 사용자(www-data)를 ubuntu 그룹의 일원으로 추가하는 작업입니다.


🔧 이 명령어가 해결한 문제

💥 문제 상황

  • EC2에서 Ubuntu 사용자로 작업한 파일들(예: /home/ubuntu/madang/)은 기본적으로 ubuntu 사용자 및 그룹 소유
  • Apache는 www-data 사용자로 실행되며, 다른 사용자 디렉토리에 기본 접근 권한이 없음
  • 결과: 403 Forbidden, Permission Denied, mod_wsgi 오류 발생

✅ 해결 효과

www-data가 ubuntu 그룹의 구성원이 되면서…

  • /home/ubuntu/madang/ 내 파일들을 그룹 권한으로 읽고 실행 가능
  • Django의 WSGI 파일, 정적 파일 등에 Apache가 접근 가능
  • 403 Forbidden → 해결됨

🔐 실제 동작 예시

# 기존 상태
ls -ld /home/ubuntu/madang
# drwxr-x---  ubuntu ubuntu ...

# www-data는 이 디렉토리에 접근 불가

# 그룹에 추가 후
sudo usermod -a -G ubuntu www-data

# 시스템을 다시 로그인하거나 Apache 재시작 시 적용
sudo systemctl restart apache2

⚠️ 주의사항

  • 이 명령어는 -a를 생략하면 기존 그룹이 모두 사라지고 ubuntu 그룹만 남는 심각한 오류를 일으킵니다.
    • 잘못된 예: usermod -G ubuntu www-data ❌
  • 반드시 -a -G 조합으로 사용해야 합니다.

🧾 요약

항목 설명
목적 Apache(www-data)가 ubuntu 사용자 파일에 접근하도록 허용
효과 Django 소스, 정적 파일, wsgi.py 접근 가능해짐
중요성 WSGI 연동에서 발생하는 403, 500 오류 해결 핵심
주의 -a 없이 쓰면 기존 그룹 제거됨. 항상 -a -G 사용

이 한 줄이 배포에서 결정적인 차이를 만들어냅니다.


이제 Apache + Django 조합이 완전히 동작 가능한 안정 상태에 접어든 것입니다.

 

반응형