Typo + exo not in submissions

This commit is contained in:
nemunaire 2016-10-06 03:58:52 +02:00 committed by Pierre-Olivier Mercier
commit 6fd83df1fd
6 changed files with 93 additions and 73 deletions

View file

@ -3,6 +3,9 @@
Projet et rendu
===============
Les exercices de ce TP ne sont pas à rendre.
## Sujet
**Ce projet, étalé sur ce TP et le TP suivant, constitue le cœur de la notation
@ -30,7 +33,7 @@ principalement question de faire des appels système.
### Stage 1 : Restreindre l'environnement
Après avoir mis en place les bases de votre programme, commencez par créer les
différentes hiérarchies (si vous avez un noyau récent, vous pouvez les
différentes hiérarchies (si vous avez un noyau récent, vous pouvez utiliser les
cgroups-v2) dont vous allez avoir besoin pour limiter l'utilisation de
ressources.
@ -38,8 +41,13 @@ Puis, mettez en place ces limites :
* pas plus d'1 GB de mémoire utilisée ;
* 1 seul CPU au maximum ;
* 100 PIDs ;
* ...
En bonus, vous pouvez gérer les cas où le noyau sur lequel s'exécute votre
moulinette ne possède pas tous ces *CGroup*s, au lieu de planter, ne rien faire
n'est pas forcément une mauvaise solution.
### Stage 2 : Réduire les *capabilities*
@ -61,11 +69,14 @@ rtt min/avg/max/mdev = 3.931/3.954/3.978/0.067 ms
59e714c4331e71ac3529a6502994ef1d
bash# ping 8.8.8.8
Operation not permitted
ping: icmp open socket: Permission denied
```
Astuces : `prctl(2)`, `capabilities(7)`, `capget(2)`, `capset(2)`, ...
Aidez-vous du visualisateur de *capabilities* de la partie 4, pour voir si vous
êtes sur la bonne voie.
### Stage 3 : Utilisable par un utilisateur
@ -81,16 +92,16 @@ et toutes ses bibliothèques, il faudrait utiliser un système contenant le
strict minimum. Recréez un environnement minimaliste, comme on a pu en voir
dans la partie sur les *chroot*.
**Ne rendez pas cet environnement, il vous sera seulement utile pour faire des
tests.**
**Ne mettez pas cet environnement dans votre tarball de rendu, il vous
sera seulement utile pour faire des tests.**
### Stage 4 : Isolation du pauvre
Nous n'avons pas encore vu de meilleure méthode pour mieux isoler
l'environnement que de faire un `chroot`, ajouter à votre programme cette
isolation rudimentaire. Et rendez-vous au prochain cours pour avoir de
moyen d'isolation !
isolation rudimentaire. Et rendez-vous au prochain cours pour avoir une
meilleure d'isolation !
### Stage 5 (bonus) : automatisation de la création de l'environnement
@ -127,16 +138,10 @@ placer dans une tarball (pas d'archive ZIP, RAR, ...).
Les réponses aux questions sont à regrouper dans un fichier `questions.txt` à
placer à la racine de votre rendu.
Voici une arborescence type:
Voici une arborescence type :
```
login_x-TP3/questions.txt
login_x-TP3/chroot/escape.c
login_x-TP3/pseudofs/rev_kdb_leds.sh
login_x-TP3/pseudofs/procinfo
login_x-TP3/caps/view_caps
login_x-TP3/cgroups/monitor
login_x-TP3/cgroups/monitor_init
login_x-TP3/mymoulette/README
login_x-TP3/mymoulette/...
```