有没有程序可以跟踪 cli linux 用户?

有没有程序可以跟踪 cli linux 用户?

我正在寻找一个程序来从 CLI 跟踪用户。也许目前有一些解决方案可以解析日志文件和 .bash_history 文件以打印摘要,说明他们做了什么、何时登录等等?

答案1

我可以看到三种不同的方法来实现你想要的效果:

  1. 使用流程会计
  2. 根据脚本或者类似的东西编写一个 shell 包装器并使其成为默认 shell
  3. 或者使用史努比它使用 LD_PRELOAD 来包装 exec 系统调用并将其记录到 syslog

我个人更喜欢使用进程记账来进行这种活动监控。它也是最类似于您所寻找的内容(命令摘要、登录摘要……)。

答案2

我认为您在这里寻找的是 Linux 的审计功能。设置起来非常麻烦,但这可以让您在您选择的级别跟踪所有正在发生的事情。所有执行的命令及其参数、所有写入的文件等。如果涉及内核,您可以挂接调用。

有关此内容的“快速入门”指南,请参阅http://www.novell.com/documentation/sled10/pdfdoc/auditqs_sp2/auditqs_sp2.pdf

编辑我花了几分钟时间研究一下 auditd,并为您提供了以下方案:

auditctl -a entry,always -F arch=`arch` -F euid!=0 -S execve

这会将每个程序执行记录到审计日志中(假设 auditd 正在运行并配置)。它不会记录诸如在 bash 中将“FOO=bar”设置为变量之类的内容,但它会记录vim $FOO显示 vim 被用来打开bar。这还会捕获脚本中启动的任何内容、vim 调用的任何内容等。我添加了一个过滤器来排除由 root 运行的任何内容,因为有许多自动化进程会很快使我的系统变得混乱。您可能希望将其设置为 uid / euid >= 1000(用户而不是系统帐户的常见起点)。

值得记录的是http://www.novell.com/documentation/sled10/pdfdoc/audit_sp2/audit_sp2.pdfman auditctl

相关内容