有没有办法流式传输/监控/记录 bash 历史记录以防止有人隐藏东西?
希望监视并了解发生的每件小事,以便可以检查和查看命令列表和编辑的文件。
rsync 是否是一种理想的方式或者是否有可以安装的实际程序。
答案1
不可以,主要是因为对于任何用户来说,阻止 bash 写入历史文件都是轻而易举的事。
如果您确实想要审核系统活动,请使用auditd
守护进程;这就是它的用途。
答案2
您可能需要修改 bash shell 编程才能执行您想要的操作。尽管 bash shell 提供了历史记录,但用户可以轻松覆盖它。当然,这样用户就可以从 bash 转到另一个 shell 而无需登录。
答案3
但如果 bash 是用户唯一可用的 shell,它仍然可以工作。也许可以使用 cron 作业定期 rsync 历史文件。然而,在 1 分钟内篡改文件是相当容易的。
替代方案:设置一个名为 ~/.bash_history 的命名管道,它使用 netcat 将命令从 bash 转发到远程主机?
答案4
调查扩展文件属性 - 维基百科,自由的百科全书,这将帮助您保留用户的 .bash_history 文件而不对其进行篡改。