Un petit script d'automatisation de la surveillance d'une modification éventuelle d'un fichier et prévient l'administrateur grâce à un mail. Ce script peut-être utilisé pour surveiller si une personne mal intentionnée modifie un fichier de configuration.
Dans l'exemple ci-dessous, nous allons surveiller la date de dernière modification du fichier /etc/resolv.conf car nous voulons être informer si une personne non autorisée modifie ce fichier en vue d'un acte mal intentionné.
#! /bin/bash # modif-fichier.sh # montuy337513 - CHG-WEB # Version 1.00 # Configuration #Nom du fichier à surveiller NOM_FICHIER="/etc/resolv.conf" # Date de la dernière modification du fichier ci-dessus DERNIERE_MODIF=$(date -r ${NOM_FICHIER} '+%d/%m/%Y %H:%M') # Adresse mail de l'administrateur ou de la personne à prévenir MAIL_ADMIN="miel@chg-web.com" # Date a laquelle le fichier à bien été modifié par vos soins DATE_MODIF="14/12/2014 11:50" # Test si les deux dates sont identiques if [ "${NOM_FICHIER}" != "${DATE_MODIF}" ]; then # Si différente, envoi du mail d'alerte CORPS_MESSAGE="Alerte, le fichier ${NOM_FICHIER} a été modifié le ${DERNIERE_MODIF}"; echo "$CORPS_MESSAGE" | mail -s "Alerte surveillance modification de fichier" "${MAIL_ADMIN}"; fi
Les commentaires sont sensés être suffisamment fournis pour que vous puissiez comprendre le code ci-dessus.
Pour ce faire, vous copiez/collez le code ci-dessus dans un fichier que vous appellerez modif-fichier.sh (vous pouvez créer ce fichier dans le répertoire root, dans l'exemple ci-après, ce sera ce cas de figure qui sera utilisé).
Un fois le fichier créé, on s'occupe de lui attribuer les droits d'exécution, pour l'utilisateur root
chmod 700 /root/modif-fichier.sh
Ensuite, on lance l'exécution du fichier pour voir si il n'y a pas d'erreur.
/root/modif-fichier.sh
Et pour terminer, on programme une tâche cron avec la commande
crontab -e
Nous rajoutons la ligne suivante pour lancer le script de façon automatique. Dans l'exemple ci-dessous, on fait le test toute les heures. Vous pouvez consulter la fiche sur CRON pour personnaliser la commande.
1/* * * * * /root/modif-fichier.sh
C'est un exemple simple, mais vous pouvez très bien le modifier pour rendre le script plus autonome avec par exemple les fonctionnalités suivantes :
Autres liens rapides pouvant vous intéresser