diff --git a/Dockerfile b/Dockerfile index 5450b5f..57aea88 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,7 +5,11 @@ WORKDIR /root RUN addgroup eleve RUN apt-get update && apt-get install -y \ + nano \ + netcat \ + nginx \ ssh \ + vim \ && rm -rf /var/lib/apt/lists/* diff --git a/docker-compose.yml b/docker-compose.yml index 76f2eed..ed9292b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,5 +6,6 @@ services: - ./config:/root/config - ./home_eleves:/home - ./exercices:/root/exercices + - ./http:/root/http network_mode: "host" restart: "unless-stopped" diff --git a/exercices/gen_arbo.sh b/exercices/gen_arbo.sh old mode 100755 new mode 100644 index fad643b..653012b --- a/exercices/gen_arbo.sh +++ b/exercices/gen_arbo.sh @@ -8,28 +8,33 @@ fi cd $1 -#rm -rf * - mkdir -p viens/voir/par/ici/si/jy/suis echo "faites demi-tour avec prudence" > viens/voir/par/ici/si/jy/suis/ah_bah_non -mkdir chez ; cd chez -mkdir moi toi lui elle ellui eux nous iels ; cd .. -mkdir Trash ; cd Trash -mkdir tmp info files prefecture ; cd .. -mkdir unix ; cd unix -mkdir bin boot dev etc home home/user home/root home/sudo home/user2 lib media mnt opt proc root run sbin srv sys tmp usr var +mkdir -p chez ; cd chez +mkdir -p moi toi lui elle ellui eux nous iels ; cd .. +mkdir -p Trash ; cd Trash +mkdir -p tmp info files prefecture ; cd .. +mkdir -p unix ; cd unix +mkdir -p bin boot dev etc home home/user home/root home/sudo home/user2 lib media mnt opt proc root run sbin srv sys tmp usr var touch initrd.img vmlinuz ; cd .. -mkdir Images +mkdir -p Images touch Images/thisisBASHyoulowlycasual -mkdir TrucSuperImportant +mkdir -p TrucSuperImportant echo -e "La vie ? \nUn sacré sac de petits tracas et de grandes contrariétés. \n\nMais avec des pauses crêpe, ça passe." > TrucSuperImportant/la_verite_se_trouve_ici.txt mkdir -p "Video/My_Little_Pony-Friendship_is_Magic" ; cd "Video/My_Little_Pony-Friendship_is_Magic" touch "1_-_Friendship_Is_Magic_(Part_1).webm" "2_-_Friendship_Is_Magic_(Part_2).webm" "3_-_The_Ticket_Master.webm" "4_-_Applebuck_Season.webm" "5_-_Griffon_the_Brush-Off.webm" "6_-_Boast_Busters.webm" "7_-_Dragonshy.webm" "8_-_Look_Before_You_Sleep.webm" "9_-_Bridle_Gossip.webm" "10_-_Swarm_of_the_Century.webm" "11_-_Winter_Wrap_Up.webm" "12_-_Call_of_the_Cutie.webm" "13_-_Fall_Weather_Friends.webm" "14_-_Suited_for_Success.webm" "15_-_Feeling_Pinkie_Keen.webm" "16_-_Sonic_Rainboom.webm" "17_-_Stare_Master.webm" "18_-_The_Show_Stoppers.webm" "19_-_A_Dog_and_Pony_Show.webm" "20_-_Green_Isn't_Your_Color.webm" "21_-_Over_a_Barrel.webm" "22_-_A_Bird_in_the_Hoof.webm" "23_-_The_Cutie_Mark_Chronicles.webm" "24_-_Owl's_Well_That_Ends_Well.webm" "25_-_Party_of_One.webm" "26_-_The_Best_Night_Ever.webm" cd ../.. -mkdir secrets +mkdir -p secrets echo -e "https://www.infokiosques.net : Mine d'or de documentation anarchiste sur tous les sujets de luttes actuelles, passées et futures. Enfin une façon d'apprendre sans s'encombrer de l'école \!\nhttps://www.lamuledupape.com : média indépendant et entêté, qui donne des nouvelles du sud dont on n'entendra jamais parler à la télé ni la radio\nhttps://www.lepoing.net : journal participatif montpeliérain\nhttps://www.rebellyon.fr : actualités des luttes dans la région lyonnaise et le reste de la France\nhttps://www.lemediatv.fr : site de journalisme et actualités en vidéo, fait par des idéalistes indépendant.es" > secrets/ne_pas_ouvrir.txt - +mkdir -p Musique +touch Musique/Joey_Gluten_-_Le_Pouvoir_des_Pierres +touch Musique/Trotsky_tulsky +touch Musique/Merryl_coucou +touch Musique/kriill_macarena +touch Musique/Mona_Haydar_-_Hijabi +touch Musique/Aya_Nakamura +touch Musique/Mili_World.execute(me) diff --git a/exercices/gen_enonces.sh b/exercices/gen_enonces.sh old mode 100755 new mode 100644 index cb2d43f..73ec953 --- a/exercices/gen_enonces.sh +++ b/exercices/gen_enonces.sh @@ -1,16 +1,23 @@ #!/bin/bash -if [ "$#" -lt 2 ] ; then - echo 'Usage: $0 [root]' +if [ "$#" -lt 3 ] ; then + echo 'Usage: $0 [root] [pw]' echo ': seed directory' - echo ': home directory' - echo '[root]: unused. Please dont try to feed it! You have been warned.' + echo ': student name' + echo ": student's home directory" + echo '[pw]: password storage file. Default=/root/config/passwords.txt' + echo '[root]: Kept starved. Please do not feed it. You have been warned.' exit 1 fi seed=$1 eleve=$2 -root=$3 +root=$4 +pw="/root/config/passwords.txt" + +if [[ "$#" == 5 ]] ; then + pw=$5 +fi mkdir -p enonces/$eleve prof/$eleve @@ -42,7 +49,8 @@ function ex2() { } function ex3() { - +#cat a file for instructions, the more cd and touch + folder=$(head -n 3 $seed/$eleve/folders.seed | tail -n 1) filename=$(head -n 1 $seed/$eleve/filenames.seed) ; folder2=$(head -n 4 $seed/$eleve/folders.seed | tail -n 1) @@ -55,12 +63,80 @@ function ex3() { echo -e "#!/bin/bash \nls $folder | grep -i $filename ; exit \$?" > prof/$eleve/ex3.sh } +function ex4() { +#use echo "blah" > file to write something in a given file + + folder=$(head -n 1 $seed/$eleve/folders.seed) + + echo -e "Inscris le mot de passe avec lequel tu t'es connecté.e au début de la séance dans le fichier de l'exercice 1.\n\nRappel : ton fichier est censé se trouver dans le dossier $folder" > enonces/$eleve/ex4.txt + + echo "#!/bin/bash" > prof/$eleve/ex4.sh + echo "file=\$(ls $folder | grep -m 1 -o -i $eleve)" >> prof/$eleve/ex4.sh + echo "pass=\$(cat $pw | grep -i $eleve | cut -d = -f 2)" >> prof/$eleve/ex4.sh + echo "cat $folder/\$file | grep -w \$pass" >> prof/$eleve/ex4.sh + echo "exit \$?" >> prof/$eleve/ex4.sh + +} + +function ex5() { +# use cp to make a backup copy + + folder=$(head -n 1 $seed/$eleve/folders.seed) + filename=$(head -n 3 $seed/$eleve/filenames.seed | tail -n 1) + + echo -e "Nous allons maintenant manipuler le fichier de l'exercice 4 et le déplacer dans l'arborescence de dossiers. \nMais avant toute chose, il s'agit d'une information sensible (ton mot de passe inscrit en clair, tout de même !), nous allons donc en faire une copie de sauvegarde.\nCrée dans le même dossier une copie du fichier $eleve qui s'appellera $eleve.$filename." > enonces/$eleve/ex5.txt + + echo -e "#!/bin/bash\ntest -s $folder/$eleve -a \$(cat $folder/$eleve) = \$(cat $folder/$eleve.$filename)\nexit \$?" > prof/$eleve/ex5.sh +} + +function ex6() { +#use mkdir + + filename=$(head -n 4 $seed/$eleve/filenames.seed | tail -n 1) + echo -e "Il est temps de protéger un peu ces données personnelles e tde s'inquiéter de la sécurité de tes données informatiques.\nCrée un dossier $filename dans $root/unix/home/sudo, puis le sous-dossier password-storage dans $root/unix/home/sudo/$filename.\nCe sera l'emplacement futur des données sensibles." > enonces/$eleve/ex6.txt + + echo -e "#!/bin/bash\ntest -d \"$root/unix/home/sudo/$filename/password-storage\"\nexit \$?" > prof/$eleve/ex6.sh +} + +function ex7() { +#use mv + + folder=$(head -n 1 $seed/$eleve/folders.seed) + folder2=$root/Video/My_Little_Pony-Friendship_is_Magic + filename=$(head -n 5 $seed/$eleve/filenames.seed | tail -n 1) + echo -e "Maintenant que cette piste alléchante a été déposée pour lurer d'éventuels intrus.es, on va ranger ton mot de passe là où personne n'ira jamais le chercher :\nDéplace le fichier $folder/$eleve contenant ton mot de passe dans le dossier $folder2 en le renomant $filename" > enonces/$eleve/ex7.txt + + echo -e "#!/bin/bash\n\nexit \$?" > prof/$eleve/ex7.sh + + echo "#!/bin/bash" > prof/$eleve/ex7.sh + echo "pass=\$(cat $pw | grep -i $eleve | cut -d = -f 2)" >> prof/$eleve/ex7.sh + echo "if [[ -e $folder/$eleve ]] ; then " >> prof/$eleve/ex7.sh + echo " exit 1" >> prof/$eleve/ex7.sh + echo "else" >> prof/$eleve/ex7.sh + echo " cat $folder2/$filename | grep -w \$pass" >> prof/$eleve/ex7.sh + echo "fi" >> prof/$eleve/ex7.sh + echo "exit \$?" >> prof/$eleve/ex7.sh +} + +function ex8() { +#use rm + + folder=$(head -n 1 $seed/$eleve/folders.seed) + filename=$(head -n 3 $seed/$eleve/filenames.seed | tail -n 1) + + echo -e "Maintenant que tes données sont bien sécurisées et à l'abri de tout.e hackeur.euse mal intentionné.e (ahem...), on peut se débarasser de la copie de sauvegarde que l'on avait faite à l'exercice 5.\nRetourne supprimer le fichier $folder/$eleve.$filename pour effacer tes traces." > enonces/$eleve/ex8.txt + + echo -e "#!/bin/bash\ntest ! -e $folder/$eleve.$filename\nexit \$?" > prof/$eleve/ex8.sh + +} + ex1 ex2 ex3 - - - - +ex4 +ex5 +ex6 +ex7 +ex8 diff --git a/exercices/gen_seed.sh b/exercices/gen_seed.sh old mode 100755 new mode 100644 diff --git a/exercices/haddock.list b/exercices/haddock.list index 9838a3c..1494834 100644 --- a/exercices/haddock.list +++ b/exercices/haddock.list @@ -216,14 +216,3 @@ zèbre zigomar zouave Zoulou -anthropopithèque -flibustier -particulier -sinapisme -anthropopithèque -boit-sans-soif -cornichon -froussard -maraud -paltoquet -sapajou