启用 bash 历史记录存在安全风险,因为当您不小心将密码输入到 bash 中时,密码会存储在 bash 历史记录中。为了防止这种情况,一个好的解决方案是配置 bash 历史记录不保存未在 $PATH 中找到的命令。
到目前为止,这就是我设置历史行为的方式
# Dont Save duplicated history lines
HISTCONTROL=irgnoredups:erasedups
HISTTIMEFORMAT="%F-%M-%S --> "
HISTIGNORE="su":"su *":"sudo *":"sudo":"his":"his *":"history":"history *":"halt":"reboot":"apt-get *":"apt-cache *":"aptitude *":"dpkg *"
# need a bigger history
# uncomment these lines
#HISTSIZE=1000000
#HISTFILESIZE=1000000
有没有办法设置历史记录以便它只存储路径中的命令?
答案1
我想,您可以将所有命令放入变量中。
HISTIGNORE=${HISTIGNORE}:`find ${PATH//:/ } -printf %f: |sed s/:$//`