El usuario nobody
se usó originalmente para NFS. Sin embargo, la gente comenzó a usarlo para ejecutar demonios que no necesitaban ejecutarse como root. Esto estaba bien cuando lo usaba un solo demonio, pero ya no se recomienda cuando se ejecutan varios demonios como ese usuario. Linux solo proporciona inter - aislamiento del usuario, no intra - aislamiento del usuario, lo que significa que el usuario X y el usuario Y no pueden manipular los procesos de otros, pero un proceso que se ejecuta como usuario X puede manipular con otro proceso que se ejecuta como usuario X. Si Docker se ejecuta como este usuario, cualquier cosa que se ejecute como el mismo usuario podrá comprometerlo, por ejemplo adjuntando depuradores y modificando la memoria mediante ptrace()
y syscalls similares, enviando señales a través de kill()
o fcntl()
, o incluso cambiar los límites de recursos a través de prlimit64()
.
La solución recomendada es ejecutar un demonio sin privilegios bajo su propio usuario o grupo.