“实时”编辑 ~/.bash_history 安全吗?

“实时”编辑 ~/.bash_history 安全吗?

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 创建了一个新的历史记录文件。

提示:如果您想阻止某个命令被记录在您的历史记录中,请在其前面添加一个空格。

相关内容