Непойму зачем master процесс оставляет root привилегии, когда его дети от них
отказываются.
Основной процесс не получает запросы, поэтому root в этом месте относительно
безопасен. В принципе, основной процесс можно запускать и не под root'ом.
root остаётся, потому что после изменения конфигурации, возможно, нужно:
1) открыть новые listen-порты,
2) создать логи и выполнить chown() и chmod() (эта же операция делается
во время вращения логов),
3) создать временные каталоги и выполнить chown() и chmod(),
4) создать вспомогательные файлы, типа nginx.pid и тому подобное,
5) поставить пользователя и группу для рабочих процессов,
6) поставить worker_priority, worker_cpu_affinity, worker_rlimit_nofile,
worker_rlimit_core, worker_rlimit_sigpending.
7) возможно, что-то ещё.
И ещё хотелось бы иметь опциию chroot.
Надо смотреть, как поплывут пути к конфигурации и прочая.
А что мешает запускать nginx с помощью chroot ?
Игорь Сысоев
http://sysoev.ru