Files
kui-vault/content/02.Volume/Linux-Unix/어플리케이션(서비스) 실행 시 계정 구분하는 이유.md
T
2026-05-04 10:30:04 +09:00

2.2 KiB

id, created, tags
id created tags
어플리케이션(서비스) 실행 20260413 2026-04-13 14:57

[!question] Q. 리눅스에서 서비스나 어플리케이션 새로 실행할 때 계정을 따로 생성해서 그 계정으로 실행하는 이유가 뭐야? A. 리눅스에서 Gitea, Jenkins와 같은 서비스를 전용 계정(Service Account)으로 실행하는 가장 큰 이유는 보안시스템 안정성 때문입니다. 만약 루트(root) 권한으로 서비스를 실행했다가 해당 서비스가 해킹당하면 시스템 전체가 장악될 수 있기 때문이죠.

1. 최소 권한의 원칙 (Principle of Least Privilege)

가장 핵심적인 개념입니다. 특정 서비스가 작동하는 데 필요한 최소한의 권한만 부여하는 것입니다.

  • 격리: 전용 계정을 만들면 해당 계정은 자신의 홈 디렉터리와 서비스 관련 파일에만 접근할 수 있습니다.

  • 피해 최소화: 서비스에 취약점이 있어 해커가 침입하더라도, 해커는 해당 계정의 권한만 갖게 됩니다. 시스템 설정 파일을 수정하거나 다른 사용자의 데이터를 훔쳐보는 것이 차단됩니다.

2. 시스템 자원 및 프로세스 관리

전용 계정을 사용하면 관리 효율성이 높아집니다.

  • 자원 제한: 특정 계정이 사용할 수 있는 CPU, 메모리, 파일 열기 개수 등을 제한(ulimit 등)하여 하나의 서비스가 시스템 전체 자원을 독점하는 것을 방지할 수 있습니다.

  • 로그 및 모니터링: 어떤 프로세스가 어떤 계정으로 실행 중인지 명확하므로, 로그를 분석하거나 문제를 추적할 때 훨씬 수월합니다.

3. 보안 사고 발생 시 대응

  • 계정 차단: 특정 서비스 계정에서 이상 징후가 발견되면 시스템 전체를 내릴 필요 없이 해당 계정만 잠그거나 권한을 박탈하여 즉각 대응할 수 있습니다.

  • 비로그인 계정: 보통 서비스용 계정은 nologin이나 false 쉘을 부여하여, 사람이 직접 SSH 등으로 로그인하는 것을 막아둡니다. 이는 외부 공격자가 해당 계정으로 서버에 직접 접속하는 경로를 원천 차단하는 효과가 있습니다.