143 lines
5.6 KiB
Bash
143 lines
5.6 KiB
Bash
#!/bin/bash
|
|
|
|
if [ "$#" -lt 3 ] ; then
|
|
echo 'Usage: $0 <seed> <eleve> [root] <dir> [pw]'
|
|
echo '<seed>: seed directory'
|
|
echo '<eleve>: student name'
|
|
echo "<dir>: 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=$4
|
|
pw="/root/config/passwords.txt"
|
|
|
|
if [[ "$#" == 5 ]] ; then
|
|
pw=$5
|
|
fi
|
|
|
|
mkdir -p enonces/$eleve prof/$eleve
|
|
|
|
function ex1() {
|
|
#cd quelque part et touch un fichier
|
|
|
|
folder=$(head -n 1 $seed/$eleve/folders.seed)
|
|
|
|
echo -e "\tEXERCICE 1\n\nRends-toi dans le dossier $folder et crée un fichier dont le nom est ton prénom (avec une majuscule au début, et des tirets à la place des espaces).\n\tEx: $folder/Jean-claude" > enonces/$eleve/ex1.txt
|
|
|
|
echo -e "#!/bin/bash \nls $folder | grep -i $eleve ; exit \$?" > prof/$eleve/ex1.sh
|
|
}
|
|
|
|
function ex2() {
|
|
#cd quelque part, ls et touch un fichier
|
|
|
|
folder=$(head -n 2 $seed/$eleve/folders.seed | tail -n 1)
|
|
int=$(head -n 1 $seed/$eleve/ints.seed)
|
|
|
|
echo -e "\tEXERCICE 2\n\nRends-toi dans le dossier $folder.\nListe les fichiers présents.\nCrée le fichier qui continue la suite logique.\n\tEx: 1.txt 2.txt 3.txt" > enonces/$eleve/ex2.txt
|
|
|
|
for i in $(seq 1 $int) ; do
|
|
touch $folder/$i.txt
|
|
done
|
|
|
|
((i=int+1))
|
|
|
|
echo -e "#!/bin/bash \nls $folder | grep -i $i.txt ; exit \$?" > prof/$eleve/ex2.sh
|
|
}
|
|
|
|
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)
|
|
filename2=$(head -n 2 $seed/$eleve/filenames.seed | tail -n 1)
|
|
|
|
echo -e "Va créer un fichier $filename.txt dans le dossier $folder." > $folder2/$filename2
|
|
|
|
echo -e "Suis les instructions du fichier $folder2/$filename2" > enonces/$eleve/ex3.txt
|
|
|
|
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
|
|
|
|
|