![系统管理员收到有关每个用户连接和断开连接的通知的正确方法是什么?](https://linux22.com/image/76385/%E7%B3%BB%E7%BB%9F%E7%AE%A1%E7%90%86%E5%91%98%E6%94%B6%E5%88%B0%E6%9C%89%E5%85%B3%E6%AF%8F%E4%B8%AA%E7%94%A8%E6%88%B7%E8%BF%9E%E6%8E%A5%E5%92%8C%E6%96%AD%E5%BC%80%E8%BF%9E%E6%8E%A5%E7%9A%84%E9%80%9A%E7%9F%A5%E7%9A%84%E6%AD%A3%E7%A1%AE%E6%96%B9%E6%B3%95%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
为了监视机器,我希望在每次任何用户连接到机器或从机器断开连接时(甚至是根用户)收到例如电子邮件通知?
它是一台 Linux 机器,但我也很感兴趣是否也有适用于 BSD 的通用方法。
我是机器的管理员,但也有其他管理员。
谢谢!
答案1
您可能会使用 and 破解一些复杂的东西tail -F
,awk
但最简单的方法是使用perl
,因此您可以使用该File::Tail
模块(以监视相应的系统日志文件)和许多邮件发送模块之一(例如Mail::Send
或Net::SMTP
)来发送邮件它注意到用户已登录或注销。或者无法成功登录。或您希望收到通知的任何其他事件。
该File::Tail
模块包含的示例脚本已经可以完成您想要的大约 90% 的功能,它们可以轻松地进行调整以满足您的具体需求。
要监视的确切日志文件因发行版而异,例如,在 Debian 上您将监视/var/log/auth.log
,在其他发行版上它将是/var/log/syslog
或/var/log/messages
。
请注意,freebsd 默认情况下没有安装 perl,但它可以通过例如pkg add perl5.22
.这仅安装基本的 perl 语言,您必须使用 CPAN 来安装File::Tail
pr等库模块Mail::Send
。