parent
13796a79c4
commit
6ecee465ca
@ -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."
|
@ -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
|
Loading…
Reference in new issue