我正在寻找从CLI跟踪用户的程序。 也许目前有一些解决scheme,分析日志文件和.bash_history文件打印摘要他们已经做了什么,当他们已经login等?
我可以看到3种不同的方式来做你想做的事情:
我个人更喜欢使用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的组合。