В некоторых целях вам может потребоваться отслеживать детали создания новых пользователей в 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
$ chmod +x /opt/scripts/new-user-detail.sh
# 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 +------------------------------+
v deve povesil uje?
Да надо бы)
а в деве то зачем?)