Vyhoda je ze uz od zaciatku spustas sluzbu iba s takymi pravami ake potrebuje. Cize napriklad keby ti niekto podstrcil inu binarku alebo koli zlej konfiguracii alebo z ineho dovodu by nginx nezmenil toho pouzivatela tak system garantuje ze bude stale sluzba spustena len s pravami ake potrebuje. Keby sa napriklad v nginx objavila zranitelnost v casti kodu ktora sa vykonava este pod pravami roota (napriklad pri otvarani portov) tak opat tym zabranis niekomu zneuzit sluzbu k eskalacii prav.
Tiez je to vyhoda z pohladu manazmentu nastaveni. Je tym explicitne priamo definovane ze sluzba ma bezat s takymi a takymi pravami. Nemusis byt odbornik na nginx aby si videl ze sluzba sa spusta s nejakymi obmedzeniami a otvaranie privilegovanych portov ma vyslovene dovolene. To sa hodi zvlast ked sprava systemu a prava sluzby je v rukach samostatnej skupiny ludi.
Vseobecne si myslim, ze clanok sa prilis zameriava na toho non-root pouzivatela. Systemd ma kopec inych nastaveni ktore ti umoznia obmedzit prava a dosah tej konkretnej sluzby omnoho viac. Napriklad cez DevicePolicy=strict
vies obmedzit pristup k zariadeniam, vies nastavit limit na vyuzitie CPU/RAM. PrivateUsers
ti umozni spustit proces v samostatnom user namespace, takze sluzba bude mat vsetkych ostatnych pouzivatelov mapovanych na "nobody". PrivateTmp
da sluzbe privatny /tmp, co je inak pomerne casty vektor pouzivany na eskalaciu prav. Vies kompletne skryt obsah adresarov a povolit iba tie ktore aplikacia realne potrebuje aj ked samotny pouzivatel by inak mal pravo k takym adresarom pristupovat.. Tych moznosti je vela a konkretne zmena pouzivatela z root na nobody je jedna z tych co vie nginx spravit aj sam o sebe, tak to vyznie ako zbytocna vec.