建立使用者時通知我的腳本

建立使用者時通知我的腳本

我根據在網路上找到的內容創建了一個腳本,用於通知 SA 用戶被添加到伺服器。我用 cron 設定了每 5 分鐘運行一次腳本來監視 /var/log/secure 檔案中的差異,但如果沒有任何更改,它仍然會發送一封空白電子郵件。如果不進行任何更改,我如何編輯它以不發送電子郵件。腳本如下:

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"

答案1

我同意這樣的評論,即一種更有效率的檢查方法是監視/etc/passwd文件而不是分析日誌文件,日誌文件可能是一個需要處理的大而密集的文件。如果/etc/passwd偵測到已更改,您可以比較文件的備份以查看已更改的內容。

您可以根據自己的具體需求進行客製化的簡單範例。

# 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

相關內容