¿Como cuenta(s) de usuario del sistema debería(n) Discourse ejecutar procesos generados?

Hola, estoy tratando de averiguar por qué y cómo algunos de los procesos que Discourse genera se ejecutan bajo mi cuenta de usuario normal de Linux, no root:

Actualmente estoy ejecutando Discourse sobre Clear Linux, por lo que no es un sistema base estándar, pero he visto el mismo comportamiento con una instalación de Discourse en Debian. En el sistema actual, inicié sesión con mi cuenta de usuario rahim12 e hice un sudo su antes de instalar y configurar todo lo relacionado con el contenedor de Discourse. Y en mis pruebas anteriores en Debian, inicié sesión en el sistema directamente como root. Entonces, ¿es normal que algunos procesos como los trabajadores de Unicorn se ejecuten bajo mi cuenta de usuario normal, y cómo supieron usarla? ¿Se inician automáticamente bajo el UID de Linux de 1000?

Es una peculiaridad de cómo funciona Docker.
El usuario de Discourse dentro del contenedor tiene UID 1000, por lo que si miras la lista de procesos fuera del contenedor, mostrará el usuario que sea UID 1000.
En mi caso, los mostraría como claudia, ya que ese es el nombre de usuario que todos mis servidores usan para UID 1000.

6 Me gusta

Ahh, interesante, ¿así que el sistema operativo host está buscando el nombre de usuario para el UID 1000 en el host, pero en realidad pertenece a un UID 1000 diferente dentro del contenedor?

1 me gusta

Es correcto.

Y de hecho me ha pillado desprevenido algunas veces porque en uno de mis servidores de desarrollo locales tengo un contenedor de Docker que tiene procesos que se ejecutan como UID 1001 (el nombre de usuario interno del contenedor es WebDev) y en el sistema operativo host muestra una cuenta que ha estado deshabilitada desde 2019 pero que aún necesita existir por razones históricas.

3 Me gusta

Muchas gracias por explicar eso, así que esa es una peculiaridad bastante extraña de Docker. Como administrador de Linux convencional, acostumbrado a instalar y configurar manualmente cada componente de la pila, no me siento completamente cómodo con el paradigma de la contenerización opaca y sus scripts de configuración automágica que extraen dependencias y configuraciones de un millón de fuentes diferentes. Pero es difícil discutir con la velocidad y reproducibilidad de implementar Discourse y también el servidor de correo dockerizado que estoy ejecutando, así que no me quejo.

Probablemente debería haber mencionado que es una peculiaridad de Docker porque es una peculiaridad de los contenedores Linux en general.

Básicamente, son similares a las jails de BSD, pero en realidad mucho más estrictas en cómo aíslan las cosas.

Personalmente, no soy un fanático de ellos, pero entiendo perfectamente por qué Discourse usa Docker. El aislamiento en realidad hace que sea mucho más difícil que los cambios en el host afecten a Discourse. De hecho, excepto por una actualización del kernel que rompió Docker brevemente hace un tiempo, nunca he tenido una actualización del host que rompiera Discourse. :slight_smile:

2 Me gusta

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