![如何最好地跟踪新手管理员的冒险经历](https://linux22.com/image/71715/%E5%A6%82%E4%BD%95%E6%9C%80%E5%A5%BD%E5%9C%B0%E8%B7%9F%E8%B8%AA%E6%96%B0%E6%89%8B%E7%AE%A1%E7%90%86%E5%91%98%E7%9A%84%E5%86%92%E9%99%A9%E7%BB%8F%E5%8E%86.png)
我的这个用户的 sudo 权限有限,但他时不时就会搞砸。我想密切关注他的冒险经历,这样我就可以通过更少的挖掘来扭转任何损害。理想情况下,我希望服务具有以下功能,并且能够很好地集成和呈现
- 跟踪 shell 输入和输出
ttyrec
(或script
或sudo
如果设置了日志记录),并且可以重播会话,如 ttyplay(或scriptreplay
或sudoreplay
) 与 ncurses 程序的兼容性会很好,但不是必需的,ttyrec
显然可以做到这一点。 - 跟踪文件访问、创建和修改。理想情况下,它还可以在每次更改或删除文件时备份文件。
到目前为止,我已经找到了一些工具,我必须设置它们才能获得大部分所需的功能,但我还没有遇到可以很好地集成它们的 OSS 产品(Lynis 社区版在功能上并不是很清楚) 。
- 我可以将
ttyrec $(mktemp)
,script $(mktemp)
或sudo -u $USER -i
(设置 sudo 日志记录)放在他的日志中.bashrc
来记录 shell IO。 - 设置审核以跟踪某些目录中的文件访问,例如
/usr
、/etc
、/var
。 - 当他登录时创建 LVM 快照,但这有点过分了,可能会降低系统性能。
编辑: ttyrec
似乎是一个更好的替代方案script
,它可以满足我所有的 IO 日志记录要求。现在我需要找到一种记录文件操作的好方法。
如果您有任何建议或最佳实践建议,我将不胜感激。
答案1
也许你可以鼓励你行政使用良好的日志记录实践。Gnu 屏幕这做得很好。它添加了比您想要的更多的功能,并且还能够切换日志记录,因此如果他愿意,他可以自己将其关闭。它缺乏重播功能,但它可能是解决方案的一部分,因为它在日志记录打开时跟踪大多数输入和输出。
在您的用例中,您需要添加deflog on
到 screenrc 文件以使新的窗口默认登录。
然而,这有一个缺点,即可以由用户切换。
您可以使用以下方式完成文件监控莫尼特,它监视文件校验和的更改,还可以检查各种服务的条件。将其与 cronjob 上的 rsync 之类的东西结合起来(因为无论如何你都应该有类似的东西),并且你对服务器上到底发生了什么有一个相当扎实的了解,特别是如果你在屏幕上打开非常严格的时间戳并信任你的用户不要摆弄日志记录设置。
通过组合这些工具,您应该拥有一个相当强大且轻量级的系统,让您可以密切关注用户,同时确保基本水平的可挽救性。