如何监控 bash_history 文件以进行手动修改?

如何监控 bash_history 文件以进行手动修改?

我正在尝试创建一个守护进程来监视用户bash_历史记录用于手动修改的文件。换句话说,如果用户打开文件并修改它,守护进程将通知此操作以采取安全措施,但当历史记录自行更新时,什么也不会发生。

我尝试的解决方案是使用inotify等待:

while true; do
    inotifywait -e close_write,move,delete ~/.bash_history && notify
done

在哪里通知是一个将执行特定通知过程的脚本。

我相信这对于大多数文件来说都可以正常工作,但在这种情况下却不行,因为通知每次历史记录更新时都会执行。

这样可以吗,还是我应该使用其他应用程序?

答案1

这是不可能的inotify。没有配置可以探测文件是否被用户或进程更改,也没有配置可以仅监视“附加到文件”。

即使存在通过一个“附加到文件”inotify 事件,一名用户可以bash_history通过创建虚假条目来注入数据echo >>,从而失去监控的所有含义。

您可以按照以下建议来强化您的历史文件,我认为这是您可以做的最好的事情:

相关内容