Je n'ai rien lu dans la description de votre problème qui vous empêcherait de créer des comptes d'utilisateurs différents pour les applications. Vous pouvez ensuite utiliser des autorisations de fichiers triviales pour empêcher les interférences :
chown app1 /var/lib/myapps/app1
chmod 700 /var/lib/myapps/app1
sudo -u app1 /var/lib/myapps/app1/run.sh
modifier
Si l'évaluateur s'exécute en tant que root
alors il peut simplement démarrer les applications via sudo
.
Si l'évaluateur ne s'exécute pas en tant que root
ensuite, les applications qu'il appelle (de manière normale) peuvent être installées avec le bit SUID (définir l'ID utilisateur) afin que le processus s'exécute en tant qu'utilisateur propriétaire du fichier binaire et non en tant qu'utilisateur du processus d'évaluation.
Selon votre distribution et votre noyau, vous pouvez utiliser AppArmor ou SELinux pour contenir vos applications. Dans l'ensemble, je dirais qu'AppArmor est plus pratique à configurer et à entretenir. Le wiki Ubuntu contient des articles expliquant les concepts de base.