Typo + exo not in submissions
This commit is contained in:
parent
b459443d9e
commit
6fd83df1fd
6 changed files with 93 additions and 73 deletions
|
|
@ -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/...
|
||||
```
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue