chroot
mais é executado como root. Então você tem que dividir seu script em dois, um que está fazendo o teste unitário (myapp-unit-test.sh) e um que será executado como root (myapp-unit-test-chroot.sh).
Em / etc / sudoers, adicione:
www-data ALL=(ALL) NOPASSWD:/path/to/myapp-unit-test-chroot.sh
Em myapp-unit-test-chroot.sh faça algo como:
chroot /new/root sudo -u test-user /path/to/myapp-unit-test.sh
Desta forma, você limitará a parte que está sendo executada como root.