所以我已经阅读了许多与此相关的帖子,并且比以前更加困惑.有各种工具的建议,包括ttyrec,snoopy,acct,rootsh,sudosh,ttyrpld,unix审计等.
在我的情况下,我希望能够记录在系统上执行的所有命令(例如启用了时间戳的历史记录),但我也想知道谁做了什么?但是,我们都通过ssh登录到用户帐户的相同小部分(取决于我们正在做什么).如何获取命令日志,包括“谁”将给我(关于连接)的信息,以便我可以将操作跟踪到特定人员,仅仅是一个普通的“用户”?
解决方法
auditd包是为此而设计的,您可以使用PAM为每个登录分配会话ID,以便您可以将帐户上的活动追溯到原始登录(然后检查登录日志以确定该用户的登录位置),以及使用ausearch命令查找您感兴趣的事件.您可以阅读相当全面的指南
here,但需要更改一些更精细的细节以匹配您的发行版. Redhat有一个包含FAQ的网站和其他一些文档
here.
由于这不依赖于尝试记录键入shell的命令或记录用户的命令历史记录,因此它应该记录诸如打开vi(可以在X或屏幕上完成),编写脚本(可能是一个字符)用vi的剪切/粘贴命令和几次运行的时间:.!/usr/games / fortune来获取一些你可能无法记录的源数据然后运行:%!/ bin / bash命令.