我可以对 bash 历史记录执行相当于 tail -f 的操作吗?

我可以对 bash 历史记录执行相当于 tail -f 的操作吗?

我希望能够history实时观看用户的行为。我的第一个想法是用来tail -f跟踪任何文件更新历史记录。这可能吗?或者,是否有更好的选择来查看实时命令?

我所处的具体场景是我和另一位工程师被 sudo 到同一用户 - 作为该用户,我希望看到该用户执行的命令。

答案1

历史记录~/.bash_history是在注销时写入的,而不是之前。如果你想要这个,已经有答案了这里:

如果您想确保它们始终立即写入,您可以将该命令放入PROMPT_COMMAND变量中:

export PROMPT_COMMAND='history -a'

之后,如果未设置环境变量(默认位置是,但可能会更改) ,您可以创建tail -f $HISTFILE或,并且会看到命令实时添加到历史文件中。tail -f ~/.bash_history$HISTFILE~/.bash_history

答案2

你可以使用普萨克特(有些过时)或审计(更加灵活)监视用户运行的进程。 Auditd 可以立即设置,并且它将开始记录用户执行情况,尽管它是一个复杂的系统。

相关内容