bash
将用户的命令行历史记录存储在纯文本文件中“~/.bash_history”。
假设只有一个用户使用一个终端,打开该终端是否有任何不良副作用“~/.bash_history”在基于终端的文本编辑器中,(或sed
,等人),并在该用户的实例bash
运行时保存它?
答案1
如果是单终端,只有一个用户使用,不,没有问题。
Bash历史记录可以用作日志,但它只针对用户,因此对于安全检查来说不安全,如果你想要更安全的日志你必须配置rsyslog,并考虑将你的日志放在另一个带有复制和日志旋转的分区中。
例如,尝试以某个用户身份登录,执行一些命令并运行kill -9 $$,您将看到日志未在bash历史记录中注册。
要配置 rsyslogd,您要做的基本操作是(例如在 debian 中):
cat >/etc/rsyslog.d/bash.conf
local6.* /var/log/commands.log
[CTRL+D for save the file)
然后,
editor /etc/bash.bashrc
里面(第一行之后)
export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$SSH_CLIENT $(whoami) [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'
readonly PROMPT_COMMAND
答案2
bash 历史文件只是一个简单的文本文件,保存用户帐户上处理的历史命令的日志。
应该不会有任何影响,除非您有出于某种原因处理该文件的脚本。
例如 - 我刚刚删除了 bash 历史记录并退出了终端,然后重新登录。Bash 创建了一个新的历史记录文件。
提示:如果您想阻止某个命令被记录在您的历史记录中,请在其前面添加一个空格。