Eu não li nada na descrição do seu problema que o impediria de criar contas de usuário diferentes para os aplicativos. Você pode usar permissões de arquivos comuns para evitar interferência:
chown app1 /var/lib/myapps/app1
chmod 700 /var/lib/myapps/app1
sudo -u app1 /var/lib/myapps/app1/run.sh
editar
Se o avaliador estiver sendo executado como root
, ele poderá simplesmente iniciar os aplicativos por meio de sudo
.
Se o avaliador não for executado como root
, os aplicativos que ele chama (no modo normal) podem ser instalados com o bit SUID (ID do usuário definido) para que o processo seja executado como o usuário que possui o arquivo binário e não como o usuário do processo de avaliação.