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 2; do
- ssh -q -o "StrictHostKeyChecking no" gilles@192.168.100."$i" exit &> /dev/null
- ret_code=$?
- if [ $ret_code != 0 ] && [ $ret_code != 255 ]; then
- whiptail --title "Connexion aux postes client" --msgbox "La connexion pour cet utilisateur a échoué. code d'erreur $ret_code." 10 78
- exit $ret_code
- else :
- checkuser=$(ssh -q -o "StrictHostKeyChecking no" gilles@192.168.100."$i" getent passwd stagiaire"$i")
- if grep -sq ^stagiaire"$i" <<< "$checkuser"; then # Vérifie si l'utilisateur existe déjà
- whiptail --title "Vérification de la présence des utlisateurs" --msgbox "L'utilisateur existe déjà sur le poste" 10 78
- sleep
- else :
- ssh gilles@192.168.100."$i" hostname PosteDuStagiaire"$i" && ssh gilles@192.168.100."$i" useradd stagiaire"$i"
- fi
- fi
- done
- for i in 2; do
- ssh -q -o "StrictHostKeyChecking no" gilles@192.168.101."$i" exit &> /dev/null
- ret_code=$?
- if [ $ret_code != 0 ] && [ $ret_code != 255 ]; then
- whiptail --title "Connexion aux postes client" --msgbox "La connexion pour cet utilisateur a échoué. code d'erreur $ret_code." 10 78
- exit $ret_code
- else :
- checkuser=$(ssh -q -o "StrictHostKeyChecking no" gilles@192.168.101."$i" getent passwd stagiaire"$i")
- if grep -sq ^stagiaire"$i" <<< "$checkuser"; then # Vérifie si l'utilisateur existe déjà
- whiptail --title "Vérification de la présence des utlisateurs" --msgbox "L'utilisateur existe déjà sur le poste" 10 78
- sleep
- else :
- ssh gilles@192.168.101."$i" hostname PosteDuStagiaire"$i" && ssh gilles@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 100
- whiptail --title "$title" --msgbox "Opération terminée.\nCliquez sur OK pour revenir au menu" 10 78
- exitstatus=$?
- if [ "$exitstatus" == 0 ]; then
- set_menu_choice
- fi
- ;;
- # Suppression des données utilisateurs
- "Réinitialiser")
- {
- for i in 2; do
- ssh -q -o "StrictHostKeyChecking no" gilles@192.168.100."$i" exit &> /dev/null
- ret_code=$?
- if [ $ret_code != 0 ] && [ $ret_code != 255 ]; then
- whiptail --title "Connexion aux postes client" --msgbox "La connexion pour cet utilisateur a échoué. code d'erreur $ret_code." 10 78
- exit $ret_code
- else :
- checkuser=$(ssh -q -o "StrictHostKeyChecking no" gilles@192.168.100."$i" getent passwd ^stagiaire"$i")
- if grep -q "^stagiaire"$i <<< "$checkuser"; then
- ssh gilles@192.168.100."$i" hostname Default && ssh gilles@192.168.100."$i" userdel -f stagiaire"$i"
- else :
- break 2
- fi
- fi
- sleep 1
- echo "$i"
- done
- for i in 2; do
- ssh -q -o "StrictHostKeyChecking no" gilles@192.168.101."$i" exit &> /dev/null
- ret_code=$?
- if [ $ret_code != 0 ] && [ $ret_code != 255 ]; then
- whiptail --title "Connexion aux postes client" --msgbox "La connexion pour cet utilisateur a échoué. code d'erreur $ret_code." 10 78
- exit $ret_code
- else :
- checkuser=$(ssh -q -o "StrictHostKeyChecking no" gilles@192.168.101."$i" getent passwd ^stagiaire"$i")
- if grep -sq ^stagiaire"$i" <<< "$checkuser"; then
- ssh gilles@192.168.101."$i" hostname Default && ssh gilles@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" 6 60 100
- whiptail --title "$title" --msgbox "Opération terminée.\nCliquez sur OK pour revenir au menu" 10 78
- exitstatus=$?
- if [ "$exitstatus" == 0 ]; then
- set_menu_choice
- fi
- ;;
- "Quitter")
- exit
- ;;
- esac
- }
- # Affiche une boite de dialogue présentant le script et installe les prérequis en arrière plan
- 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
- exitstatus=$?
- if [ "$exitstatus" == 1 ]; then
- required=$(dpkg -l | grep -E '^ii +whiptail')
- if ! grep -q whiptail <<<"$required"; then
- apt-get install --force-yes whiptail
- fi
- else :
- set_menu_choice
- fi
Add Comment
Please, Sign In to add comment