L' nobody
utente è stato originariamente utilizzato per NFS. Tuttavia, le persone hanno iniziato a usarlo per eseguire daemon che non dovevano essere eseguiti come root. Questo andava bene se usato da un solo demone, ma non è più raccomandato quando più demoni sono in esecuzione come quell'utente. Linux fornisce solo inter - isolamento utente, non intra - isolamento utente, il che significa che utente X e utente Y non possono manomettere i processi dell'altro, ma un processo in esecuzione come utente X può manomettere con un altro processo in esecuzione come utente X. Se Docker è in esecuzione come questo utente, qualsiasi elemento in esecuzione come lo stesso utente sarà in grado di comprometterlo, ad esempio collegando i debugger e modificando la memoria tramite ptrace()
e syscalls simili, inviando segnali tramite kill()
o fcntl()
, o anche modificando i limiti delle risorse tramite prlimit64()
.
La soluzione consigliata è eseguire un demone non privilegiato con il proprio proprio utente o gruppo.