0

完全隐藏shell的历史或阻止它记录是完全可能的吗?

我试图找出谁重命名了目录以及何时重命名。问题是我的 dba 重命名了目录并且没有记下目录的时间和日期。它可能有很大帮助。

4

2 回答 2

1

bash将命令条目存储在HISTFILE(默认情况下~/.bash_history)并具有固定大小的保留数量 - HISTFILESIZE(默认情况下500)。如果命令(一种类型)超过该数量,则这些命令的历史记录将丢失。

命令也可以被忽略,seeHISTIGNORE以及以空格开头的命令 -see HISTCONTROL=ignorespace。这些永远不会存储在HISTFILE.

如果您使用某种日志记录机制,那么避免记录命令或阻止日志条目将取决于该特定软件。

于 2012-07-14T08:14:48.493 回答
1

这不依赖于 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 选项,命令将会丢失。

于 2012-07-14T12:31:34.000 回答