diff --git a/README.md b/README.md index 04bddb6..0bda490 100644 --- a/README.md +++ b/README.md @@ -2,20 +2,95 @@
-Disclaimer > ⚠️ L'évaluateur ainsi que ses questions ne correspondent pas à la version de l'évaluateur utilisée lors de l'évaluation de votre SAÉ. > Ne vous reposez pas sur ce projet pour préparer votre SAÉ. -
## Description Ce projet est un simulateur visant à reproduire le comportement de l'évaluateur de la SAÉ 1.03 (Système). Il permet de vous entraîner sur quelques questions de connaissances pratiques. -
-## Installation +# 🎓 Tuto d'Installation + +## 📋 Prérequis +1. **Oracle VM VirtualBox** +2. **ISO de Debian 12** (téléchargeable ici : [Debian Officiel](https://www.debian.org/)). + +*Il est recommandé d'utiliser la version netinst - amd64 pour éviter d'exploser votre quota de votre home. (600Mb environ)* + +3. Accès aux fichiers `evaluateur.sh` et `init.sh`. + +--- + +## 1️⃣ Création d'une Machine Virtuelle Debian 12 + +### Étape 1 : Configurer la VM +1. **Ouvre VirtualBox** et clique sur `Nouvelle`. +2. **Paramètres** : + - Nom : `LeNomQueTuVeux`. + - Type : `Linux`. + - Version : `Debian (64-bit)`. + +3. **Ressources** : + - Mémoire vive : Alloue **2 Go** (2048 Mo) minimum. + - Disque dur : Crée un disque de type **VDI**, taille dynamique, avec au moins **15 Go** d’espace. + +### Étape 2 : Ajouter l'ISO Debian +1. Dans les paramètres de la VM, va dans l'onglet `Stockage`. +2. Clique sur `Vide` sous le contrôleur IDE. +3. Ajoute l’ISO en cliquant sur `Choisir un fichier disque` et sélectionne ton fichier **Debian 12 ISO**. + +### Étape 3 : Installer Debian +1. Lance la VM et démarre l’installation : + - Choisis `Graphical Install` (si tu préfères une installation graphique). + - Langue : **Français**. + - Partitions : Automatique. + - Logiciels à inclure : Outils de base + **Serveur SSH** (important pour transférer des fichiers). + +2. Configure un utilisateur avec mot de passe et termine l’installation. + +--- + +## 2️⃣ Préparer l’Environnement dans la VM + +### Mettre à Jour le Système +Connecte-toi dans la VM et exécute : +```bash +sudo apt update && sudo apt upgrade -y +``` + +## 3️⃣ Récupérer les Scripts +```bash +git clone https://codefirst.iut.uca.fr/git/remi.lavergne/sae103-evaluateur.git +``` + +## 4️⃣ Lancer les Scripts +1. **Donner les Permissions d’Exécution** : +```bash +cd sae103-evaluateur/scripts +chmod +x evaluateur.sh init.sh +``` + +2. **Exécuter le Script `init.sh`** : +```bash +./init.sh +``` + +3. **Exécuter le Script `evaluateur.sh`** : +```bash +./evaluateur.sh +``` + +## 5️⃣ Sauvegarder l’Environnement pour Revenir à un État Propre (Avancé) +> Une fois l’environnement configuré, crée un instantané dans VirtualBox : + +> Menu Machine > Outils > Instantanés > Prendre un instantané + +> Nomme-le pour y revenir facilement si nécessaire. + +Il te suffira juste de restaurer cet instantané pour retrouver un environnement propre.

diff --git a/scripts/evaluateur.sh b/scripts/evaluateur.sh new file mode 100644 index 0000000..471efd1 --- /dev/null +++ b/scripts/evaluateur.sh @@ -0,0 +1,141 @@ +#!/bin/bash +# Script d'évaluateur de la SAE 1.03 +# Auteur: Rémi LAVERGNE + +print_status() { + if [ "$1" -eq 0 ]; then + echo -e "\\e[32mOK\\e[0m - $2" + else + echo -e "\\e[31mKO\\e[0m - $2" + fi +} + +history -a # Pour sauvegarder l'historique des commandes dans le fichier ~/.bash_history +clear + +echo -e "\\e[33mSi certains tests sont toujours en rouge, faites la commande 'history -a' puis relancez l'évaluateur.\\e[0m" + +# ======================================== +# Section 1 +# ======================================== +echo -e "\\e[1mSection 1: Installation des outils/paquets\\e[0m" + +# Étape 1: Outils pour éditer une image vectorielle (Inkscape ou GIMP) +[ -x /usr/bin/inkscape ] || [ -x /usr/bin/gimp ] +print_status $? "Avoir (au moins) un outil pour éditer une image vectorielle." + +# Étape 2: Outils pour compiler un programme C (gcc, g++, clang) +[ -x /usr/bin/gcc ] || [ -x /usr/bin/g++ ] || [ -x /usr/bin/clang ] +print_status $? "Avoir (au moins) un outil pour compiler un programme C." + +# Étape 3: Navigateur web (Firefox ou Chromium) +[ -x /usr/bin/firefox-esr ] || [ -x /usr/bin/chromium ] +print_status $? "Avoir un navigateur web." + +# Étape 4: Lister les paquets installés +grep -Fq 'apt list --installed' ~/.bash_history +print_status $? "Lister les paquets installés." + +# Étape 5: Savoir supprimer un paquet +dpkg -s nano &> /dev/null +print_status $? "Supprimer le paquet 'nano', utiliser VIM." + +# Etape 6: Mettre à jour les paquets disponibles +grep -Fq 'apt update' ~/.bash_history +print_status $? "Mettre à jour la liste des paquets disponibles." + +# Etape 7: Mettre à jour les paquets installés +grep -Fq 'apt upgrade' ~/.bash_history +print_status $? "Mettre à jour les paquets installés." + + + + +# ======================================== +# Section 2 +# ======================================== +echo -e "\\n\\e[1mSection 2: Utilisateurs et groupes\\e[0m" + +# Étape 1: Créer un utilisateur +grep -q '^bob:' /etc/passwd +print_status $? "Créer l'utilisateur 'bob'." + +# Étape 2: Modifier un mot de passe +grep -Fq 'passwd bob' ~/.bash_history +print_status $? "Modifier le mot de passe de l'utilisateur 'bob'." + +# Étape 3: Créer un groupe +grep -q '^dev:' /etc/group +print_status $? "Créer le groupe 'dev'." + +# Étape 4: Ajouter un utilisateur à un groupe +grep -q '^dev:' /etc/group && grep -q '^bob:.*dev' /etc/group +print_status $? "Ajouter l'utilisateur 'bob' au groupe 'dev'." + +# Etape 5: Supprimer un utilisateur +grep -q '^john:' /etc/passwd +if [ $? -eq 0 ]; then + echo -e "\\e[31mKO\\e[0m - L'utilisateur 'john' existe encore, il doit être supprimé." +else + echo -e "\\e[32mOK\\e[0m - L'utilisateur 'john' a été supprimé." +fi + + + + +# ======================================== +# Section 3 +# ======================================== +echo -e "\\n\\e[1mSection 3: Manipulation de fichiers\\e[0m" + +# Etape 1: Afficher l'espacement disque disponible +grep -Fq 'df' ~/.bash_history +print_status $? "Afficher l'espace disque disponible." + + + + +# ======================================== +# Section 4 +# ======================================== +echo -e "\\n\\e[1mSection 4: Partitions\\e[0m" + +# Etape 1: Afficher les partitions sur le disque (option -l) +grep -Fq 'fdisk -l' ~/.bash_history +print_status $? "Afficher les partitions." + +# Etape 2: Partitionner un disque pour créer une partition primaire +grep -Fq 'fdisk' ~/.bash_history +print_status $? "Partitionner un disque (partition primaire)." + +# Etape 3: Créer un système de fichier +grep -Fq 'mkfs' ~/.bash_history +print_status $? "Créer un système de fichier dans une partition." + +# Etape 4: Créer une partition SWAP +grep -Fq 'mkswap' ~/.bash_history +print_status $? "Créer une partition d'échange (SWAP)." + + + + +# ======================================== +# Section 5 +# ======================================== +echo -e "\\n\\e[1mSection 5: Clé USB & périphériques\\e[0m" + +# Etape 1: Lister le matériel présent sur la machine (lspci ou lshw) +grep -Fq 'lspci' ~/.bash_history || grep -Fq 'lshw' ~/.bash_history +print_status $? "Lister le matériel présent sur la machine." + +# Etape 2: Savoir identifier sur quels bus ils sont connectés (lspci -b) +grep -Fq 'lsusb' ~/.bash_history +print_status $? "Lister les bus connectés pour le matériel." + +# Etape 3: Vérifier quel module gère un périphérique (lspci -nnv) +grep -Fq 'lspci -nnv' ~/.bash_history +print_status $? "Vérifier quel module gère un périphérique." + +# Etape 4: Lister les modules chargés +grep -Fq 'lsmod' ~/.bash_history +print_status $? "Lister les modules chargés en mémoire." \ No newline at end of file diff --git a/scripts/init.sh b/scripts/init.sh new file mode 100644 index 0000000..2cf55fc --- /dev/null +++ b/scripts/init.sh @@ -0,0 +1,38 @@ +#!/bin/bash +# Script d'initialisation de la machine virtuelle pour la SAE 1.03 +# Auteur: Rémi LAVERGNE + +# Vérification des droits +if [ "$EUID" -ne 0 ]; then + echo "Ce script doit être lancé avec des droits supérieurs (sudo/root)." + exit 1 +fi + +# Installer nano si absent +if ! dpkg -s nano &> /dev/null; then + apt update && apt install -y nano +fi + + +if ! id "franck" &> /dev/null; then + useradd -m franck +fi + +# Création de l'arborescence +sudo -u franck mkdir -p /home/franck/{Documents,Images,Musique,Vidéos} +sudo -u franck touch /home/franck/Documents/{notes.txt,TODO.txt} + +sudo -u franck bash -c "echo '- Faire les courses' >> /home/franck/Documents/TODO.txt" +sudo -u franck bash -c "echo '- Appeler le plombier' >> /home/franck/Documents/TODO.txt" +sudo -u franck bash -c "echo '- Installer Arch' >> /home/franck/Documents/TODO.txt" + +sudo -u franck bash -c "echo 'Réunion du 12/12/2019' >> /home/franck/Documents/notes.txt" +sudo -u franck bash -c "echo 'Présents: Bob, Alice, Franck' >> /home/franck/Documents/notes.txt" +sudo -u franck bash -c "echo 'Absents: John' >> /home/franck/Documents/notes.txt" +sudo -u franck bash -c "echo 'Sujet: Préparation du projet' >> /home/franck/Documents/notes.txt" +sudo -u franck bash -c "echo 'Date de la prochaine réunion: 19/12/2019' >> /home/franck/Documents/notes.txt" + +# Créer un deuxième utilisateur +if ! id "john" &> /dev/null; then + useradd john +fi \ No newline at end of file