有程序来跟踪cli linux用户吗?

我正在寻找从CLI跟踪用户的程序。 也许目前有一些解决scheme,分析日志文件和.bash_history文件打印摘要他们已经做了什么,当他们已经login等?

我可以看到3种不同的方式来做你想做的事情:

  1. 使用进程会计
  2. 编写一个基于脚本或类似的shell包装,使其成为默认的shell
  3. 或者使用使用LD_PRELOAD的snoopy来包装exec系统调用并将其logging到syslog中

我个人更喜欢使用stream程会计来处理这种活动监控。 它也是最接近你正在寻找的东西(命令摘要,login摘要…)。

我认为你在这里找的是作为Linux一部分的审计function。 build立起来是完全不愉快的,但是这会让你跟踪你所select的一切事情。 执行的所有命令及其参数,写入的所有文件等。如果涉及到内核,则可以挂接该呼叫。

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

编辑我花了几分钟玩了审计,并为您提出这个食谱:

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

这将logging每个程序执行到审计日志(假设auditd正在运行和configuration)。 它不会logging像在bash中设置“FOO = bar”这样的variables,但是它会loggingvim $FOO显示vim是用来打开的。 这也可以捕获任何在vim中调用的脚本中启动的任何东西。我添加了一个filter来排除由root运行的任何东西,因为有很多自动化的进程会在我的系统上快速混乱。 您可能希望将其设置为uid / euid> = 1000(用户的常用起点而不是系统帐户)。

有价值的文档是http://www.novell.com/documentation/sled10/pdfdoc/audit_sp2/audit_sp2.pdf和man auditctl的组合。