我修改后的搜索历史行旁边有一个星号。
我搜索了 unix.stackexchange.com 和 stackoverflow.com,但我渴望对我的历史中的星号进行完整的解释(除了手册页上的内容)。
带有 * 的行已被修改。
例子:
$ history | tail
11850*
11851 ./block_ip.sh '23.228.114.203' 'evil probe'
11852 ./block_ip.sh DROP '23.228.114.203' 'evil probe
$
在这个例子中,一个 shell 脚本有第三个参数,但没有错误,我在没有指定 (DROP/ACCEPT) 的情况下运行了它两次。
修改是为了清除这段历史,以便历史扩展不会导致我(再次)输入错误的命令。
我想知道更多关于这个(但我不知道我不知道什么)。
请考虑这两个角度:
- 我该如何使用它(例如,如果我需要它,我可以得到那个原始命令)?
- 一个坏人怎么能使用它(有人可以这样隐藏他们的命令历史)?
如果通用答案过于冗长,请注意我的一些设置:
EDITOR=/usr/bin/vim
HISTFILE=/home/jim/.bash_history
SHELLOPTS=braceexpand:hashall:histexpand:history:interactive-comments:monitor:vi
而这个操作系统信息(它是 RedHat ......但 Debian/Fedora/Ubuntu 不应该有太大差异......他们应该吗?):
Linux qwerutyhgfjkd 3.10.0-693.11.1.el7.x86_64 #1 SMP Mon Dec 4 23:52:40 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
我使用 bash 作为我的外壳。
这个类似的问题有两个相关的答案。
具体来说:
Eugene Yarmash 在这里回答
这个答案显示了如何通过禁用它来禁用它
mark-modified-lines
:至于您关于是否有人可以以这种方式隐藏其命令历史记录的问题,您可以看到可以设置
mark-modified-lines
以及恢复到原始命令行。因此既可以隐藏或更改历史记录,也可以恢复它。话虽如此,用户隐藏其历史记录的威胁模型是什么?用户是谁?在受管理的环境中,用户应该只对与其角色相关的功能和文件具有访问权和权限。否则,如果未经授权的用户获得了访问权限,那么查找修改过的命令行可能是管理员最不担心的事情。