🍨 Bash скрипт для отправки почты, когда в системе создается новая учетная запись пользователя

В настоящее время на рынке доступно множество инструментов для мониторинга с открытым исходным кодом, в том числе для мониторинга производительности систем Linux.

Они отправляют уведомление по электронной почте, когда система достигает указанного порогового значения.

Они контролируют все, например, использование ЦП, использование памяти, использование подкачки, использование дискового пространства и многое другое.

Но я не думаю, что у них есть возможность отслеживать новые действия по созданию пользователей и предупреждать о них.

Если нет, то это не имеет значения, так как мы можем написать собственный скрипт bash для достижения этой цели.

В прошлом мы добавили много полезных скриптов шелл.

Если вы хотите посмотреть их, перейдите по ссылках ниже:

Что делает скрипт?

Он отслеживает /var/log/secure и предупреждает администратора, когда в системе создается новая учетная запись.

Мы не можем часто запускать этот скрипт, поскольку создание пользователей происходит не очень часто.

Тем не менее, я планирую запускать этот скрипт один раз в день.

Таким образом, мы можем получить сводный отчет о создании пользователя.

Если в файле «/var/log/secure» для вчерашней даты была найдена строка useradd, скрипт отправит оповещение по электронной почте на указанный идентификатор электронной почты с информацией о новых пользователях.

Примечание. Вам необходимо изменить идентификатор электронной почты на свой собственный вместо нашего.

# vi /opt/scripts/new-user.sh



#!/bin/bash



#Set the variable which equal to zero

prev_count=0



count=$(grep -i "`date --date='yesterday' '+%b %e'`" /var/log/secure | egrep -wi 'useradd' | wc -l)



if [ "$prev_count" -lt "$count" ] ; then



# Send a mail to given email id when errors found in log



SUBJECT="ATTENTION: New User Account is created on server : `date --date='yesterday' '+%b %e'`"



# This is a temp file, which is created to store the email message.



MESSAGE="/tmp/new-user-logs.txt"



TO="admin@itsecforu.ru"



echo  "Hostname: `hostname`" >> $MESSAGE



echo -e "n" >> $MESSAGE



echo "The New User Details are below." >> $MESSAGE



echo "+------------------------------+" >> $MESSAGE



grep -i "`date --date='yesterday' '+%b %e'`" /var/log/secure | egrep -wi 'useradd' | grep -v 'failed adding'| awk '{print $4,$8}' | uniq | sed 's/,/ /' >>  $MESSAGE



echo "+------------------------------+" >> $MESSAGE



rm $MESSAGE



mail -s "$SUBJECT" "$TO" < $MESSAGE



fi

Установите разрешение на выполнение для файла new-user.sh.

$ chmod +x /opt/scripts/new-user.sh


Наконец добавьте cronjob, чтобы автоматизировать все это.

Он будет работать каждый день в 7 часов.

# crontab -e



0 7 * * * /bin/bash /opt/scripts/new-user.sh

# cat /tmp/logs.txt



Hostname: itsec.server10.com



The New User Details are below.

+------------------------------+

itsec.server10.com name=user1

itsec.server10.com name=user2

+------------------------------+

 



2019-07-30T13:21:30
Скрипты