完全隐藏shell的历史或阻止它记录是完全可能的吗?
我试图找出谁重命名了目录以及何时重命名。问题是我的 dba 重命名了目录并且没有记下目录的时间和日期。它可能有很大帮助。
bash
将命令条目存储在HISTFILE
(默认情况下~/.bash_history
)并具有固定大小的保留数量 - HISTFILESIZE
(默认情况下500
)。如果命令(一种类型)超过该数量,则这些命令的历史记录将丢失。
命令也可以被忽略,seeHISTIGNORE
以及以空格开头的命令 -see HISTCONTROL=ignorespace
。这些永远不会存储在HISTFILE
.
如果您使用某种日志记录机制,那么避免记录命令或阻止日志条目将取决于该特定软件。
这不依赖于 Solaris,而是真正依赖于所使用的 shell。
像传统的 Bourne shell(Solaris 10 和更早版本上的 /bin/sh)这样的一些 shell 根本不记录所有命令历史记录,所以在这种情况下你很不走运。
其他 shell 可能会根据用户配置在磁盘上记录定义数量的命令(使用 csh 的 savehist、使用 ksh 和 bash 的 HISTFILE/HISTSIZE)。ksh 实时记录历史,而 bash 在 shell 退出时记录它,因此如果 shell 突然死亡,您可能会丢失历史。Bash 还有一些设置可以防止某些命令不出现在历史记录中(HISTCONTROL、HISTIGNORE、HISTFILESIZE)。如果您有多个交互式 shell 正在运行,如果没有使用 bash 设置 histappend shell 选项,命令将会丢失。