diff --git a/subject/2/project-part1.md b/subject/2/project-part1.md index 946f6e7..8764c12 100644 --- a/subject/2/project-part1.md +++ b/subject/2/project-part1.md @@ -48,7 +48,7 @@ Aidez-vous du visualisateur de *capabilities* de la partie 4 du TP, pour voir si vous êtes sur la bonne voie. -## Palier 3 : Utilisable par un utilisateur (1 point) {-} +## Palier bonus : Utilisable par un utilisateur (2 points) {-} Jouez avec les attributs étendus pour qu'un utilisateur non-privilégié puisse exécuter votre moulinette. Ajoutez la/les commande(s) à votre Makefile ou @@ -66,7 +66,7 @@ dans la partie sur les `chroot`. sera seulement utile pour faire des tests.** -## Palier 4 : Isolation du pauvre (1 point) {-} +## Palier 3 : Isolation du pauvre (1 point) {-} Nous n'avons pas encore vu de meilleure méthode pour mieux isoler l'environnement que de faire un `chroot`, ajoutez à votre programme cette @@ -84,7 +84,7 @@ meilleure isolation ! -## Palier 5 : seccomp (2 points) {-} +## Palier 4 : seccomp (2 points) {-} Filtrez les appels systèmes de telle sorte qu'aucun programme exécuté dans votre bac à sable ne puisse plus lancer les appels systèmes suivants : @@ -99,19 +99,25 @@ N'hésitez pas à en utiliser d'autres pour vos tests ;) **Astuces\ :** `seccomp(2)`, `seccomp_init(3)`, `seccomp_load(3)`, ... -## Palier bonus : Automatisation de la création de l'environnement (5 points) {-} +## Palier 5 : Automatisation de la création de l'environnement (1 point) {-} -Pour *moulinéter* plusieurs étudiants en parallèle, vous allez avoir besoin de -plusieurs environnements identiques. Plutôt que de recopier cet environnement, -de le nettoyer, de le recréer, pour chaque étudiant, ajoutez à votre moulinette -un support pour LVM : utilisez des *snapshots* pour figer votre environnement -et le dupliquer facilement pour chaque étudiant. +Intégrer le script `registry_play.sh`, réalisé au TP précédent, à votre +programme afin de pouvoir créer un environnement neuf à chaque nouvelle +exécution. -L'usage est laissé à votre discrétion : vous pouvez ajouter un/des paramètres à -votre *moulette* pour indiquer le volume LVM à utiliser ou le définir en dur ou -encore séparer la création de l'environnement et de la snapshot initiale dans -un programme distinct. +Vous pouvez l'utiliser tel quel, ou le réécrire pour qu'il s'intègre plus +facilement au sein du langage que vous avez choisi. -Si votre noyau dispose d'un UnionFS (AUFS ou OverlayFS par exemple), ou que -vous disposez d'une partition `btrfs`, vous pouvez utiliser l'une de ces -méthodes pour ajouter une couche en écriture, à la place de LVM. +L'appel du programme se fera alors ainsi, avec l'otion `-I` pour préciser que +l'on s'attend à trouver le nom d'une image Docker : + +