👤 Bash скрипт для отправки почты о создании новой учетной записи пользователя

В некоторых целях вам может потребоваться отслеживать детали создания новых пользователей в Linux.

Также вам может понадобиться отправить эти детали по почте.

Это может быть частью аудита, или команда безопасности может захотеть контролировать это для своих шкурных целей.

Мы можем сделать это другим способом, как мы уже описали в предыдущей статье.

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

Для Linux доступно множество инструментов мониторинга с открытым исходным кодом.

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

Итак, как мы можем этого достичь?

Мы можем написать наш собственный скрипт Bash для достижения этой цели.

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

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

Скрипты для Linux , автоматизация и безопасность

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

Он будет делать резервную копию файла «/etc/passwd» два раза в день (начало дня и конец дня), что позволит вам получить новые данные о создании пользователя на указанную дату.

# crontab -e



1 0 * * * cp /etc/passwd /opt/scripts/passwd-start-$(date +"%Y-%m-%d")

59 23 * * * cp /etc/passwd /opt/scripts/passwd-end-$(date +"%Y-%m-%d")

Он использует команду «difference» для обнаружения различий между файлами, и, если обнаружится какая-либо разница со вчерашней датой, скрипт отправит оповещение по электронной почте на электронный адрес с указанием новых данных пользователя.

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

Однако мы планируем запускать этот скрипт один раз в день.

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

Примечание. Мы использовали наш электронный идентификатор в скрипте лишь для демонстрации.

Поэтому мы просим вас использовать вместо этого свой электронный адрес.

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



#!/bin/bash

mv /opt/scripts/passwd-start-$(date --date='yesterday' '+%Y-%m-%d') /opt/scripts/passwd-start

mv /opt/scripts/passwd-end-$(date --date='yesterday' '+%Y-%m-%d') /opt/scripts/passwd-end

ucount=$(diff /opt/scripts/passwd-start /opt/scripts/passwd-end | grep ">" | cut -d":" -f6 | cut -d"/" -f3 | wc -l)

if [ $ucount -gt 0 ]

then

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

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

TO="itsecforu@mydickbigger.com"

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

echo -e "n" >> $MESSAGE

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

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

diff /opt/scripts/passwd-start /opt/scripts/passwd-end | grep ">" | cut -d":" -f6 | cut -d"/" -f3 >>  $MESSAGE

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

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

rm $MESSAGE

fi

Установите исполняемое разрешение на файл «new-user-detail.sh».

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

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

Ежедневно в 7 утра.

# crontab -e



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

Примечание. Вы будете получать оповещения по электронной почте каждый день в 7 часов утра, в которых указана дата вчерашнего дня.

Вывод: вывод будет таким же, как и приведенный ниже.

# cat /tmp/new-user-logs.txt



Hostname: testLinux.itsecoforu.ru



The New User Details are below.

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

tsarev

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

  • Добавить в Словарь

    • Новый список слов для Русский -> Русский…
    • Создать новый список слов…

  • Копировать