Script Bash, surveillance modification mot de passe

Tags: #<Tag:0x00007f50a33db940> #<Tag:0x00007f50a33db440>

Bonjour à tous,

En Bash si possible, comment surveiller la modification d’un mot de passe d’un utilisateur Debian ?
Voici quelques pistes envisageables, mais peut-être en connaissez-vous d’autres ou que vous avez des scripts à proposer ?:

  • vérification de la date de modification des fichiers /etc/passwd et /etc/shadow ;
  • création d’une clef de hachage et vérification de l’intégrité des fichiers /etc/passwd et /etc/shadow ;
  • analyse des fichiers logs (suggéré par @The_Moye dans un de ses posts)
  • analyse des fichiers historiques (notamment ceux associés à la commande sudo)
  • utilisation d’un outil open source de gestion de l’intégrité des fichiers (≠ bash)

En fonction de la pertinence des réponses et de mon emploi du temps, de mes priorités, je pourrais être amené à étendre cette liste pour le plus grand bien de tous, voir éventuellement à proposer aussi des scripts si nécessaire.

Salut,

naïvement, je pense qu’il faudrait enregistrer quelque part les hash des mots de passe (2e champ dans /etc/shadow), soit dans un fichier texte, une BDD SQLite, ou peu importe, du moment que l’accès en est suffisamment protégé. Puis comparer pour chaque ligne (donc chaque utilisateur) la valeur courante du hash avec celle qui est enregistrée.

J’utiliserais bien awk pour ce genre de chose, mais pour rester en pur bash, on doit pouvoir se servir de read

Sinon dans une autre logique, passwd --status user te donnera, dans le 3e champ, la date de dernière modification du mot de passe de user (mais seulement la date, pas l’heure).

2 J'aime

Merci @Sputnik93,

Oui, awk est bien adapté car il permet de récupérer très facilement un champ.

sudo awk -F":" '{print $2}' /etc/shadow

Les outils awk, grep, sed sont si répandus et puissants qu’il serait en effet bien dommage de ne pas faire appel à eux en cas de besoin dans un script bash.

Bonjour

Je me disais qu’on pourrait utiliser inotify pour déclencher,
au moment où un fichier sensible est ouvert, modifié, …
le lancement d’un script (type alarme ou autre).

On pourrait aussi surveiller /etc/pam.d/passwd

2 J'aime