【问题标题】:how to monitor "create user" action on linux platform?如何在 linux 平台上监控“创建用户”动作?
【发布时间】:2014-08-14 04:20:32
【问题描述】:

目前在linux平台上,

如果某人或某个应用创建了用户。

其他应用是否能够立即收到此消息?

如果是,应用可以通过哪种方式知道用户是创建的?

提前致谢

【问题讨论】:

  • 每 x 秒轮询一次 /etc/passwd 文件对您来说足够了吗?
  • 谢谢。但这不是我想要的。我只是想知道是否有某种方案可以通知其他用户创建了新用户。

标签: linux monitor


【解决方案1】:

您可以使用类似下面的脚本来连续检查 /etc/passwd 文件。您可以改变“睡眠”命令来确定延迟。如果您在后台运行此脚本,它会在添加或删除新用户时发送邮件。您可以通过更改代码将这些结果提供给所需的应用程序。

#!/bin/bash

unalias cp &>/dev/null

OLD=`wc -l "/etc/passwd" | awk '{print $1}'` && /bin/cp -f /etc/passwd /etc/passwd.old


while true ; do

sleep 1

NEW=`wc -l "/etc/passwd" | awk '{print $1}'` && MID=${NEW} && /bin/cp -f /etc/passwd /etc/passwd.copy

 if [[ ${NEW} -gt ${OLD} ]]

   then

   DIFF=`expr ${NEW} - ${OLD}`

   USERS=`tail -n ${DIFF} "/etc/passwd.copy" | awk -F: '{ print $1 }'`

   echo -e "New user(s):\n ${USERS} " | mail -s "New Users Created! at `date +%c`" admin@mail.com

 elif [[ ${NEW} -lt ${OLD} ]]

   then

   USERS=`diff -y /etc/passwd /etc/passwd.old | awk -F">" '{print $2}'| awk -F: '{print $1}' | grep -E -v "^$"`

   echo -e "User(s)removed:\n ${USERS[@]}" | mail -s "Users removed at `date +%c`" admin@mail.com

 fi

sleep 1

OLD=${MID} && /bin/cp -f /etc/passwd.copy /etc/passwd.old

done

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多