# Discourse가 생성한 프로세스는 어떤 시스템 사용자 계정으로 실행해야 하나요?

**URL:** https://meta.discourse.org/t/which-system-user-account-s-should-discourse-spawned-processes-run-as/252723
**Category:** Self-hosting
**Created:** [1월 24, 2023, 1:26오후 UTC](https://meta.discourse.org/t/which-system-user-account-s-should-discourse-spawned-processes-run-as/252723 "2023-01-24T13:26:27Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![rahim123](https://avatars.discourse-cdn.com/v4/letter/r/df705f/32.png) [@rahim123](https://meta.discourse.org/u/rahim123)
#### Post date: [1월 24, 2023, 1:26오후 UTC](https://meta.discourse.org/t/which-system-user-account-s-should-discourse-spawned-processes-run-as/252723/1 "2023-01-24T13:26:27Z")

</div>

안녕하세요. Discourse가 생성하는 일부 프로세스가 제 일반(비 루트) Linux 사용자 계정으로 실행되는 이유와 원리가 궁금합니다:

 ![Screenshot from 2023-01-24 08-13-39](https://global.discourse-cdn.com/meta/original/4X/c/0/b/c0bfcf1c8f1772e272f105576d06ef99851ee8b6.png)

현재 저는 Clear Linux 환경에서 Discourse를 실행 중이라 표준 베이스 시스템과는 약간 다릅니다. 하지만 이전에 Debian에서 Discourse를 설치했을 때도 동일한 현상을 확인했습니다. 현재 시스템에서는 `rahim12` 사용자 계정으로 SSH로 접속한 후 `sudo su`를 실행하여 Discourse 컨테이너와 관련된 모든 설치 및 설정 작업을 수행했습니다. 그리고 이전 Debian 테스트에서는 `root` 계정으로 직접 SSH로 접속했습니다. 따라서 Unicorn 워커와 같은 일부 프로세스가 제 일반 사용자 계정으로 실행되는 것이 정상적인가요? 그리고 어떻게 해당 계정을 사용하도록 설정되었나요? 자동으로 Linux UID `1000`으로 실행되도록 설정되는 건가요?

---

<div class="post-metadata">

### Author: ![ClawdiaWolf](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/clawdiawolf/32/262518_2.png) [@ClawdiaWolf](https://meta.discourse.org/u/ClawdiaWolf)
#### Post date: [1월 24, 2023, 4:20오후 UTC](https://meta.discourse.org/t/which-system-user-account-s-should-discourse-spawned-processes-run-as/252723/2 "2023-01-24T16:20:04Z")

</div>

Docker의 작동 방식에 따른 특이한 현상입니다.

컨테이너 내부의 discourse 사용자는 UID 1000을 가지므로, 컨테이너 외부에서 프로세스 목록을 확인하면 UID 1000에 해당하는 사용자로 표시됩니다.

제 경우, 모든 서버에서 UID 1000에 할당된 사용자 이름이 claudia이므로 claudia로 표시됩니다.

---

<div class="post-metadata">

### Author: ![rahim123](https://avatars.discourse-cdn.com/v4/letter/r/df705f/32.png) [@rahim123](https://meta.discourse.org/u/rahim123)
#### Post date: [1월 24, 2023, 5:03오후 UTC](https://meta.discourse.org/t/which-system-user-account-s-should-discourse-spawned-processes-run-as/252723/3 "2023-01-24T17:03:44Z")

</div>

아, 흥미롭네요. 즉, 호스트 OS가 호스트에서 UID `1000`에 해당하는 사용자 이름을 조회하고 있는데, 실제로는 컨테이너 내부에서 다른 UID `1000`에 속하는 것이죠?

---

<div class="post-metadata">

### Author: ![ClawdiaWolf](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/clawdiawolf/32/262518_2.png) [@ClawdiaWolf](https://meta.discourse.org/u/ClawdiaWolf)
#### Post date: [1월 24, 2023, 5:08오후 UTC](https://meta.discourse.org/t/which-system-user-account-s-should-discourse-spawned-processes-run-as/252723/4 "2023-01-24T17:08:24Z")

</div>

맞습니다.

실제로 몇 번 당해본 적이 있습니다. 제 로컬 개발 서버 중 하나에는 UID 1001로 실행되는 프로세스가 있는 Docker 컨테이너가 있는데(컨테이너 내부 사용자 이름은 WebDev), 호스트 OS에서는 2019년부터 비활성화되었지만 역사적 이유로 인해 계속 존재해야 하는 계정으로 표시됩니다.

---

<div class="post-metadata">

### Author: ![rahim123](https://avatars.discourse-cdn.com/v4/letter/r/df705f/32.png) [@rahim123](https://meta.discourse.org/u/rahim123)
#### Post date: [1월 24, 2023, 5:16오후 UTC](https://meta.discourse.org/t/which-system-user-account-s-should-discourse-spawned-processes-run-as/252723/5 "2023-01-24T17:16:00Z")

</div>

그걸 설명해 주셔서 정말 감사합니다. Docker의 꽤 특이한 특성인 것 같네요. 스택의 각 구성 요소를 수동으로 설치하고 설정하는 데 익숙한 전통적인 리눅스 관리자로써, 불투명한 컨테이너화 패러다임과 수많은 출처에서 의존성과 설정을 가져오는 자동 설정 스크립트에는 완전히 편안하지 않습니다. 하지만 Discourse와 제가 실행 중인 Docker화 메일 서버의 배포 속도와 재현성은 논쟁의 여지가 없으므로, 불평은 하지 않습니다.

---

<div class="post-metadata">

### Author: ![ClawdiaWolf](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/clawdiawolf/32/262518_2.png) [@ClawdiaWolf](https://meta.discourse.org/u/ClawdiaWolf)
#### Post date: [1월 25, 2023, 4:18오전 UTC](https://meta.discourse.org/t/which-system-user-account-s-should-discourse-spawned-processes-run-as/252723/6 "2023-01-25T04:18:35Z")

</div>

사실 이것은 Docker의 특이점이라는 점을 언급했어야 했는데, 더 넓게 보면 [Linux Containers](https://www.redhat.com/en/topics/containers/whats-a-linux-container) 전반에 걸린 특이점입니다.

기본적으로 \*BSD의 jails와 유사하지만, 실제로는 격리 방식을 훨씬 **엄격하게** 적용합니다.

개인적으로는 Docker를 선호하지 않지만, Discourse가 Docker를 사용하는 이유를 충분히 이해합니다. 격리 덕분에 호스트 환경의 변경이 Discourse에 영향을 미치는 일이 훨씬 어려워집니다. 실제로 몇 년 전 Docker가 잠시 깨진 커널 업데이트를 제외하고는, 호스트 업그레이드로 인해 Discourse가 망가진 적이 한 번도 없습니다. 🙂

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [2월 24, 2023, 4:19오전 UTC](https://meta.discourse.org/t/which-system-user-account-s-should-discourse-spawned-processes-run-as/252723/7 "2023-02-24T04:19:32Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
