사용자가 생성되면 알려주는 스크립트

사용자가 생성되면 알려주는 스크립트

서버에 추가되는 사용자를 SA에 알리기 위해 웹에서 찾은 내용을 바탕으로 스크립트를 만들었습니다. /var/log/secure 파일의 차이점을 모니터링하기 위해 5분마다 스크립트를 실행하도록 cron을 설정했지만 아무것도 변경되지 않으면 여전히 빈 이메일을 보냅니다. 변경사항이 없을 경우 이메일을 보내지 않도록 어떻게 편집할 수 있나요? 스크립트는 아래와 같습니다:

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

관련 정보