Script para notificarme cuando se crean usuarios

Script para notificarme cuando se crean usuarios

Creé una secuencia de comandos a partir de lo que encontré en la web para notificar a una SA sobre los usuarios que se agregan a un servidor. Lo configuré con un cron para ejecutar el script cada 5 minutos para monitorear las diferencias en el archivo /var/log/secure pero aún envía un correo electrónico en blanco si nada ha cambiado. ¿Cómo puedo editarlo para que no se envíe por correo electrónico si no se realizan cambios? El guión está a continuación:

file="/var/log/secure"

while cmp "$file" "${file}_bkp"; do
  sleep 2
done
diff "$file" "${file}_bkp" | grep -e useradd | mailx -s "User Added On Server" [email protected]
cp "$file" "${file}_bkp"

Respuesta1

Estoy de acuerdo con el comentario de que un método de verificación más eficaz es monitorear el /etc/passwdarchivo en lugar de analizar un archivo de registro, que potencialmente podría ser un archivo grande e intensivo de procesar. Si /etc/passwdse detecta que ha cambiado, puede realizar una copia de seguridad del archivo para ver qué ha cambiado.

Ejemplo rápido que puede personalizar según sus necesidades exactas.

# One-off initial Set up
md5 -q /etc/passwd > /etc/passwd.md5
cp /etc/passwd /etc/passwd.compare
# Cron job script logic
if [[ $(md5 -q /etc/passwd) != $(< /etc/passwd.md5) ]]
then
  # The passwd file has changed, do something!
  # 
  # Diff /etc/passwd with /etc/passwd.compare to get details, etc.
  # Send an alert with details
  # 
  # Prepare for the next time a change happens.
  md5 -q /etc/passwd > /etc/passwd.md5
  cp -f /etc/passwd /etc/passwd.compare
  #
fi

información relacionada