用户可以在bash中隐藏命令历史logging
如何禁用这个?
有几件事情,你可以做,但最终对于一个足够复杂的用户,他们可以很容易地被绕过。
您可以将相关的历史logging控制variables(HISTFILE,HISTFILESIZE,HISTSIZE,HISTCONTROL,HISTIGNORE)设置为您需要的值并使其为只读。 在用户无法编辑的方便系统范围的初始化文件中执行此操作。 所以例如你可以设置
readonly HISTFILE=~/.bash_history readonly unset HISTCONTROL
要么
readonly HISTCONTROL=ignoredupes
这虽然不会停止用户编辑$ HISTFILE并从中删除命令或删除该文件,然后将其链接到/ dev / null,以便命令再次隐藏。
你可以通过使$ HISTFILE追加到chattr来解决这个问题
chattr +a /home/alice/.bash_history
现在.bash_history不能改变,只能添加到(不要忘记修剪某种forms)。 我们可以看到用户所做的一切…不,
用户很容易绕过这些限制
bash --norc --noprofile ,绕过所有的初始化脚本,然后他们可以轻松地获取包含他们想要的设置/初始化的脚本。 你可以看到他们做了这个,但不是他们后来做的。 如果您希望能够以无法规避的方式logging用户活动,那么您需要使用审计而不是历史logging。