Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #
- #
- # Script réalisé dans le cadre du projet 3 de la formation AIC
- # d'Openclassrooms par Dalmas Gilles
- #
- # Version 0.4
- #
- #
- #set -xv
- title="Gestion des comptes sur les postes des salles Abeille et Baobab"
- # Demande le compte/password administrateur des postes afin de pouvoir manipuler les données des postes distant
- # menu principal
- set_menu_choice()
- {
- choice=$(whiptail --title "$title" --menu "Choisir une option" 25 90 16 \
- "Initialiser" "Configure les noms d'hôtes et ajoute les comptes utilisateurs." \
- "Réinitialiser" "Supprime toutes les données utilisateur et réinitialise le nom d'hôte." \
- "Quitter" "Sortir du programme" 3>&1 1>&2 2>&3)
- case $choice in
- # Configuration du hostname et création des utilisateurs sur les postes distant
- "Initialiser")
- {
- for i in $(seq 2 6); do
- ssh -q -o "StrictHostKeyChecking no" root@192.168.100.$i exit &> /dev/null
- ret_code=$?
- if [ $ret_code != 0 ] && [ $ret_code != 255 ]; then
- echo "La connexion SSH pour cet utilisateur a échoué. Arrêt du script. Code d'erreur $ret_code"
- exit $ret_code
- else :
- checkuser=$(ssh -q -o "StrictHostKeyChecking no" root@192.168.100.$i grep -c ^stagiaire$i /etc/passwd)
- if [ $checkuser -eq 1 ]; then # Vérifie si l'utilisateur existe déjà
- break 2
- else :
- ssh root@192.168.100.$i hostname PosteDuStagiaire$i && ssh root@192.168.100.$i useradd stagiaire$i
- fi
- fi
- done
- for i in $(seq 2 6); do
- ssh -q -o "StrictHostKeyChecking no" root@192.168.101.$i exit &> /dev/null
- ret_code=$?
- if [ $ret_code != 0 ] && [ $ret_code != 255 ]; then
- echo "La connexion SSH pour cet utilisateur a échoué. Arrêt du script. Code d'erreur $ret_code"
- exit $ret_code
- else :
- checkuser=$(ssh -q -o "StrictHostKeyChecking no" root@192.168.101.$i grep -c ^stagiaire$i /etc/passwd)
- if [ $checkuser -eq 1 ]; then # Vérifie si l'utilisateur existe déjà
- break 2
- else :
- ssh root@192.168.101.$i hostname PosteDuStagiaire$i && ssh root@192.168.101.$i useradd stagiaire$i
- fi
- fi
- done
- sleep 1
- echo $i
- } | whiptail --title "Initialisation des postes" --gauge "Création des utilisateurs et paramétrage des noms d'hôtes en cours" 6 60 0
- whiptail --title "$title" --msgbox "Opération terminée.\nCliquez sur OK pour revenir au menu"
- ;;
- # Suppression des données utilisateurs
- "Réinitialiser")
- {
- for i in $(seq 2 6); do
- ssh -q -o "StrictHostKeyChecking no" root@192.168.100.$i exit &> /dev/null
- ret_code=$?
- if [ $ret_code != 0 ] && [ $ret_code != 255 ]; then
- echo "La connexion SSH pour cet utilisateur a échoué. Arrêt du script. Code d'erreur $ret_code"
- exit $ret_code
- else :
- checkuser=$(ssh -q -o "StrictHostKeyChecking no" root@192.168.100.$i grep -c ^stagiaire$i /etc/passwd
- if [ "$checkuser" -eq 1 ]; then
- ssh root@192.168.100.$i hostname Default && ssh root@192.168.100.$i userdel -f stagiaire$i
- else
- break 2
- fi
- fi
- sleep 1
- echo $i
- done
- for i in $(seq 2 6); do
- ssh -q -o "StrictHostKeyChecking no" root@192.168.101.$i exit &> /dev/null
- ret_code=$?
- if [ $ret_code != 0 ] && [ $ret_code != 255 ]; then
- echo "La connexion SSH pour cet utilisateur a échoué. Arrêt du script. Code d'erreur $ret_code"
- exit $ret_code
- else :
- checkuser=$(ssh -q -o "StrictHostKeyChecking no" root@192.168.101.$i grep -c ^stagiaire$i /etc/passwd
- if [ "$checkuser" -eq 1 ]; then
- ssh root@192.168.101.$i hostname Default && ssh root@192.168.101.$i userdel -f stagiaire$i
- else
- break 2
- fi
- fi
- sleep 1
- echo $i
- done
- } | whiptail --title "Réinitialisation des postes" --gauge "suppression des comptes utilisateurs et remise par défaut des noms d'hôtes"
- whiptail --title "$title" --msgbox "Opération terminée.\nCliquez sur OK pour revenir au menu"
- ;;
- "Quitter")
- exit
- ;;
- esac
- }
- # Affiche une boite de dialogue présentant le script et installe les prérequis en arrière plan
- if [ $(whiptail --title "$title" \
- --msgbox "Ceci est un utilitaire dédié à l'initialisation ou la réinitialisation de chaque poste des salles Abeille et Baobab.\nVous devez appuyer sur OK pour continuer." 10 78) == 0 ]; then
- required=$(dpkg -l | grep -E '^ii +whiptail')
- if ! grep -q whiptail <<<"$required"; then
- apt-get install --force-yes whiptail
- fi
- set_menu_choice
- fi
Add Comment
Please, Sign In to add comment