Objectif : modifier le mot de passe root (ou d’un autre compte...) dans l’ensemble d’un parc de serveurs.
modifMdpRoot.sh
#!/bin/bash
echo "Modification du mot de passe root dans l'ensemble des serveurs"
read -s -p "nouveau mot de passe : " mdp
echo ""
if test -z "$mdp" ; then
echo "le mot de passe ne peut être vide"
exit
fi
read -s -p "retapez le mot de passe (vérification) : " mdp2
if test "$mdp" != "$mdp2" ; then
echo "Les mots de passe saisis ne correspondent pas"
exit
fi
echo "Lancement de la modification"
SERVEUR=/root/scripts/listeserveurs
for serveur in `cat $SERVEUR|grep "^[^#].*$"`
do
echo 'Traitement dans '$serveur
ssh $serveur "echo root:$mdp|chpasswd"
done
Quelques explications :
le fichier /root/scripts/listeserveurs contient la liste des serveurs, selon la forme suivante :
serveur1
serveur2
#serveur_non_traité_ou_réformé
la connexion ssh doit avoir été paramétrée par échange de clés, sinon vous serez obligé de saisir le mot de passe root à chaque connexion (le script devient alors sans intérêt...) ;
vous pouvez fournir une liste des comptes et des mots de passe à modifier, en les indiquant dans un fichier texte (compte:mot_de_passe). La commande chpasswd traitera toutes les lignes du fichier passé en paramètre.
et...
une fois la modification effectuée, testez que la connexion fonctionne bien, avant de fermer votre console !