用户可以通过以下方式隐藏 Bash 中的命令历史记录
- 在命令前添加一个空格
- 取消设置 HISTFILE
我怎样才能禁用此功能?
答案1
您可以做几件事,但最终对于足够老练的用户来说,这些事情很容易被绕过。
您可以将相关历史控制变量(HISTFILE、HISTFILESIZE、HISTSIZE、HISTCONTROL、HISTIGNORE)设置为所需的值,并将其设为只读。在用户无法编辑的方便的系统范围初始化文件中执行此操作。例如,您可以设置
readonly HISTFILE=~/.bash_history
readonly unset HISTCONTROL
或者
readonly HISTCONTROL=ignoredupes
但这并不能阻止用户编辑 $HISTFILE 并从中删除命令或删除文件然后将其链接到 /dev/null 以便再次隐藏命令。
您可以通过使 $HISTFILE 仅附加以下内容来解决这个问题聊天室
chattr +a /home/alice/.bash_history
现在 .bash_history 无法更改,只能添加(别忘了进行某种修剪)。我们可以看到用户所做的一切... 不,
用户很容易绕过这些限制
- 他们可以运行另一个 shell(有多个可用 shell)。当然,您可以阻止他们执行这些 shell,但这也可能导致其他地方出现意外问题。
- 他们可以
bash --norc --noprofile
绕过所有初始化脚本运行,然后可以轻松获取包含所需设置/初始化的脚本。您将能够看到他们这样做了,但看不到他们随后做了什么。
如果你想以一种用户无法规避的方式记录用户的活动,那么您需要使用审计不是历史。