当前位置: 首页 > 科技观察

用于通过电子邮件发送新用户帐户创建的Bash脚本

时间:2023-03-19 23:15:11 科技观察

出于某种原因,您可能需要在Linux上跟踪新用户的创建。同时,您可能需要通过电子邮件发送详细信息。这可能是审计目标的一部分,或者安全团队可能希望对此进行监控以进行跟踪。正如我们在上一篇文章中所描述的那样,我们可以通过其他方式来做到这一点。在系统上创建新用户帐户时用于发送邮件的Bash脚本有许多适用于Linux的开源监控工具。但我认为他们没有办法跟踪新用户创建过程并在发生时提醒管理员。那么我们该怎么做呢?我们可以编写自己的Bash脚本来实现这一点。我们过去写过很多有用的shell脚本。如果您想知道,请输入下面的链接。如何使用shell脚本自动化日常活动?这个脚本是做什么的?这将每天备份/etc/passwd文件两次(一天的开始和结束),这将使您能够获得指定日期的新用户创建详细信息。我们需要添加以下两个cron任务来复制/etc/passwd文件。#crontab-e10***cp/etc/passwd/opt/scripts/passwd-start-$(date+"%Y-%m-%d")5923***cp/etc/passwd/opt/scripts/passwd-end-$(date+"%Y-%m-%d")它使用diff命令检测文件之间的差异,如果发现与昨天有任何差异,脚本会将新用户详细信息发送到指定的电子邮件信息。我们不经常运行这个脚本,因为用户创建并不经常发生。但是,我们计划每天运行一次该脚本。这样,您可以获得有关新用户创建的综合报告。注意:出于演示目的,我们在脚本中使用了我们的电子邮件地址。因此,我们要求您使用自己的电子邮件地址。#vi/opt/scripts/new-user-detail.sh#!/bin/bashmv/opt/scripts/passwd-start-$(date--date='yesterday''+%Y-%m-%d')/opt/scripts/passwd-startmv/opt/scripts/passwd-end-$(date--date='yesterday''+%Y-%m-%d')/opt/scripts/passwd-enducount=$(diff/opt/scripts/passwd-start/opt/scripts/passwd-end|grep">"|cut-d":"-f6|cut-d"/"-f3|wc-l)if[$ucount-gt0]thenSU??BJECT="注意:新用户帐户已在服务器上创建:`date--date='yesterday''+%b%e'`"MESSAGE="/tmp/new-user-logs.txt"TO="2daygeek@gmail.com"echo"Hostname:`hostname`">>$MESSAGEecho-e"\n">>$MESSAGEecho"新用户详情如下。">>$MESSAGEecho"+-----------------------------+">>$MESSAGEdiff/opt/scripts/passwd-开始/opt/scripts/passwd-end|grep“>”|剪切-d":"-f6|切-d"/"-f3>>$MESSAGEecho"+----------------------------+">>$MESSAGEmail-s"$SUBJECT""$TO"<$MESSAGErm$MESSAGEfi向new-user-detail.sh文件添加可执行权限$chmod+x/opt/scripts/new-user-detail.sh最后添加一个cron作业以自动执行此操作。它每天早上7点运行。#crontab-e07***/bin/bash/opt/scripts/new-user.sh注意:您将在每天早上7:00收到一封电子邮件提醒,其中包含昨天的详细信息。输出:输出与下面的相同。#cat/tmp/new-user-logs.txtHostname:CentOS.2daygeek.comTheNewUserDetailsarebelow.+-----------------------------+tuser3+----------------------------+