Если впишем в nginx.conf: user www-data то получим такую картину: Запускается master процесс, биндит 80 порт и создаёт потомков под юзером www-data.
Это в принципе и так всем ясно. Если мы поместим nginx в chroot и запустим стандартно chroot /var/chroot/ /usr/sbin/nginx -c /etc/nginx/nginx.conf то родитель будет иметь root привилегии, а значит при взломе получится сделать second chroot и выбраться из чрута.
И вот мы подбираемся к самому интересному моменту :) Есть ли смысл сделать chroot --userspec=www-data:www-data /var/chroot/ /usr/sbin/nginx -c /etc/nginx/nginx.conf при этом биндить nginx-ом любой порт от 1024: и заворачивать трафик с 80 порта на локальный порт nginx-а DNAT-ом? При этом потомки включая родителя будут под www-data пользователем, а значит second chroot обламывается.