From 582765e6deaf922a0095f2eda8f8e5fb5d5bb683 Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Sun, 31 Oct 2021 20:51:30 +0100 Subject: [PATCH] Restructure project --- subject/2/Makefile | 2 +- subject/2/project-part1.1.md | 22 ++++++++++++++++++++++ subject/2/project-part2.md | 12 ++++++------ subject/2/project-tbc.md | 34 ++++++++++++++++++++++++++++++++++ 4 files changed, 63 insertions(+), 7 deletions(-) create mode 100644 subject/2/project-part1.1.md create mode 100644 subject/2/project-tbc.md diff --git a/subject/2/Makefile b/subject/2/Makefile index 24d884d..da1a74f 100644 --- a/subject/2/Makefile +++ b/subject/2/Makefile @@ -1,7 +1,7 @@ include ../../tutorial/pandoc-opts.mk SOURCES_PART = subject.md project-part1.md project-tbc.md sample.md -SOURCES = subject.md project-part1.md project-part1.1.md project-part2.md sample.md rendu.md end.md +SOURCES = subject.md project-part1.md project-part2.md sample.md rendu.md end.md all: partial.pdf subject.pdf diff --git a/subject/2/project-part1.1.md b/subject/2/project-part1.1.md new file mode 100644 index 0000000..e832479 --- /dev/null +++ b/subject/2/project-part1.1.md @@ -0,0 +1,22 @@ +## Palier 5 : Automatisation de la création de l'environnement (1 point) {-} + +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. + +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. + +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 : + +
+``` +42sh# ./mymoulette -I library/alpine:latest /bin/ash + ash# which apk + /sbin/apk +``` +
+ +Vous pourriez utiliser `mkdtemp(3)` pour déterminer l'emplacement de +décompression des tarballs d'image. diff --git a/subject/2/project-part2.md b/subject/2/project-part2.md index 3176484..bd9c164 100644 --- a/subject/2/project-part2.md +++ b/subject/2/project-part2.md @@ -1,4 +1,4 @@ -## Palier 6 : Une vraie isolation (2 points) {-} +## Palier 5 : Une vraie isolation (2 points) {-} En plus du `chroot`, assignez de nouveaux *namespaces* au processus que vous allez lancer : `cgroups`, `IPC`, `mount`, `net`, `PID`, `UTS`. @@ -19,7 +19,7 @@ Vous aurez besoin de déplacer le code écrit pour les premiers paliers (cgroups caps, ...), après vous être dissocié de cet espace de noms. -## Palier 7 : Empêcher les fuites d'information (2 points) {-} +## Palier 6 : Empêcher les fuites d'information (2 points) {-} Démontez tous les systèmes de fichiers qui ne sont pas nécessaires au fonctionnement de votre conteneur et remontez les partitions @@ -30,7 +30,7 @@ opération est nécessaire afin de terminer l'étape d'isolation. **Astuce\ :** `mount(2)`. -## Palier 7 bis : Volume attaché au code à moulinéter (1 point) {-} +## Palier 6 bis : Volume attaché au code à moulinéter (1 point) {-} Ajoutez une option à votre moulinette afin de lier le dossier (qui se trouve sur la machine hôte) contenant le code d'un étudiant, à l'intérieur du @@ -59,7 +59,7 @@ src/ tests/ AUTHORS configure Makefile.am README TODO **Astuce\ :** `mount(2)`, `mkdir(2)`. -## Palier 8 : Identification du conteneur (1 point) {-} +## Palier 7 : Identification du conteneur (1 point) {-} Maintenant que vous avez votre conteneur, personalisez-le un peu en lui donnant un nom unique. @@ -77,7 +77,7 @@ shie6aif2aiH -## Palier 9 : `pivot_root` (3 points) {-} +## Palier 8 : `pivot_root` (3 points) {-} Effectuez un `pivot_root(2)` de telle sorte qu'il ne reste plus de trace du système de fichiers hôte. @@ -88,7 +88,7 @@ système de fichiers hôte. `pivot_root(2)`, vous devrez donc ne les appliquer qu'après cette étape. -## Palier 10 : Bac à sable connecté (2 points) {-} +## Palier 9 : Bac à sable connecté (3 points) {-} Partant d'une liste d'interfaces sur la machine hôte similaire à : diff --git a/subject/2/project-tbc.md b/subject/2/project-tbc.md new file mode 100644 index 0000000..3a620a9 --- /dev/null +++ b/subject/2/project-tbc.md @@ -0,0 +1,34 @@ +## Palier 5 à 10 : *To be continued* {-} + +Nous verrons ensemble de meilleures techniques d'isolation au prochain cours. + +Le sujet sera mis à jour en conséquence. + + +\newpage + +Rendu +===== + +Le rendu du projet final avec tous les paliers est attendu pour le samedi 13 +novembre 2021 à 23:42. + +Il n'est pas attendu de rendu intermédiaire pour cette première partie seule. + + +Tarball +------- + +Voici une arborescence type (vous pourriez avoir des fichiers supplémentaires, +cela dépendra de votre avancée dans le projet) : + +
+``` +login_x-project2/ +login_x-project2/README +login_x-project2/Makefile +login_x-project2/src/... +``` +
+ +\newpage