Script para me notificar quando usuários forem criados

Script para me notificar quando usuários forem criados

Eu criei um script a partir do que encontrei na web para notificar uma SA sobre usuários sendo adicionados a um servidor. Eu configurei com um cron para executar o script a cada 5 minutos para monitorar diferenças no arquivo /var/log/secure, mas ele ainda envia um e-mail em branco se nada tiver mudado. Como posso editá-lo para não enviar por e-mail se nenhuma alteração for feita. O roteiro está abaixo:

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"

Responder1

Concordo com o comentário de que um método de verificação com melhor desempenho é monitorar o /etc/passwdarquivo em vez de analisar um arquivo de log, que poderia ser um arquivo grande e intensivo para processar. Se /etc/passwdfor detectado que foi alterado, você poderá comparar um backup do arquivo para ver o que mudou.

Exemplo rápido que você pode personalizar de acordo com suas necessidades exatas.

# 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

informação relacionada