Quali account utente di sistema dovrebbero eseguire i processi generati da Discourse?

Ciao, sto cercando di capire perché e come alcuni dei processi che Discourse genera vengano eseguiti sotto il mio account utente Linux normale non root:

Attualmente sto eseguendo Discourse su Clear Linux, quindi non è un sistema di base del tutto standard, ma ho visto lo stesso comportamento anche con un’installazione di Discourse su Debian. Nel sistema attuale ho effettuato l’accesso con il mio account utente rahim12 e ho eseguito un sudo su prima di installare e configurare tutto ciò che riguarda il container di Discourse. E nei miei test precedenti su Debian ho effettuato l’accesso al sistema direttamente come root. Quindi è normale che alcuni processi come i worker di Unicorn vengano eseguiti sotto il mio account utente normale, e come hanno saputo usarlo? Vengono automaticamente avviati sotto l’UID Linux di 1000?

È una stranezza di come funziona Docker.
L’utente discourse all’interno del container ha UID 1000, quindi se guardi la lista dei processi all’esterno del container, mostrerà quale utente è UID 1000.
Nel mio caso, li mostrerebbe come claudia poiché questo è il nome utente che tutti i miei server usano per UID 1000.

6 Mi Piace

Ahh, interessante, quindi il sistema operativo host sta eseguendo una ricerca del nome utente per l’UID 1000 sull’host ma in realtà appartiene a un UID diverso 1000 all’interno del container?

1 Mi Piace

Corretto.

E in realtà mi ha tratto in inganno un paio di volte perché su uno dei miei server di sviluppo locali ho un container Docker che ha processi in esecuzione come UID 1001 (il nome utente interno del container è WebDev) e sul sistema operativo host mostra un account che è stato disabilitato dal 2019 ma deve ancora esistere per motivi storici.

3 Mi Piace

Grazie mille per la spiegazione, quindi questa è una stranezza piuttosto insolita di Docker. Come amministratore Linux convenzionale, abituato a installare e configurare manualmente ogni singolo componente dello stack, non sono del tutto a mio agio con il paradigma di containerizzazione opaco e i suoi script di configurazione automatici che richiamano dipendenze e configurazioni da un milione di fonti diverse. Ma è difficile discutere con la velocità e la riproducibilità del deployment di Discourse e anche del server di posta Dockerizzato che sto eseguendo, quindi non mi lamento.

Probabilmente avrei dovuto menzionare che è una stranezza di Docker perché è una stranezza dei container Linux in generale.

Essenzialmente sono simili alle *jail BSD, ma in realtà molto più rigorose nel modo in cui isolano le cose.

Personalmente, non mi piacciono, ma capisco perfettamente perché Discourse usa Docker. L’isolamento rende molto più difficile che le modifiche all’host influiscano su Discourse. Infatti, ad eccezione di un aggiornamento del kernel che ha temporaneamente interrotto Docker un po’ di tempo fa, non ho mai avuto un aggiornamento dell’host che abbia interrotto Discourse. :slight_smile:

2 Mi Piace

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