防止 Linux 中的 bash(和 ksh)历史更改

Mei*_*Mei 3 linux shell bash history ksh

从表面上看,修复 ksh 以使历史更改不可能是相当容易的。我已经看到了将 HIST* 环境变量设置为只读的所有建议,以及使用 chattr 将历史文件设置为仅附加(使用 chattr +a .sh_history)的所有建议。

然而,Bash 有两件事似乎无法阻止历史更改:历史命令(带有 history -c 和 history -d)和将历史文件与实际运行时历史分开(保存在内存中) . 我还在 serverfault 上读到,如果您杀死当前的 shell,则不会写出历史记录。

有没有办法防止 Bash 的历史更改?我希望能够保存所有用户命令,而用户无法从历史记录中删除任何内容。

也欢迎任何有关 Korn shell 的提示。(我知道ksh-93审计...不知道我们是否可以使用它。)

use*_*517 5

如果你想记录你的用户在做什么,那么看看snoopy。它也可以作为 CentOS 安装的软件包。