gpt4 book ai didi

linux - 用于清除 .bash_history 中的密码的脚本或单行代码

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:10:19 26 4
gpt4 key购买 nike

我有时会在 linux 终端中错误地输入我的 su 密码,该终端会回显输入的字符。它被记录在 ~/.bash_history 中,这让我感到不安全。有没有人有一个简短的脚本(bash one-liner?)来清除任何纯文本密码的 .bash_history

使用 sed 在 .bash_history 文件中留下它自己的痕迹,但如果可以暂时禁用 readline 和/或历史服务,这可能会起作用:

sed -ir -e 's/su_password/PASSWORD_REMOVED/g' ~/.bash_history

如果密码经常用作其他短语/单词的一部分,这可能会产生其他问题/漏洞。

理想情况下,脚本应该只细读散列密码列表 (/etc/shadow) 来创建搜索词列表。然后它必须散列它正在检查的文件的部分 (.bash_history) 以进行比较。问题是在比较期间知道文件中有多少文本要散列,因为密码的长度是未知的。或者,它可以在执行 grep/sed 之前以安全的方式请求密码,就像 passwd 那样。

最佳答案

不完全是单行代码,而是一个函数:

eh () { history -a ; vi + ~/.bash_history ; history -r ; }

将此行添加到您的 .bashrc 或 .bash_profile。什么时候运行

  1. 将缓冲区保存到您的 .bash_history
  2. 在 vi 中打开 .bash_history,除了文件底部的指针。
  3. 将编辑后的文件恢复到你当前的历史缓冲区

在 vi 中,您可以使用箭头键上下移动,使用 dd 删除一行,然后使用 [Esc] :wq 关闭并写入文件

现在你只需要在命令行输入eh然后编辑你的历史

eh 代表“编辑历史”

关于linux - 用于清除 .bash_history 中的密码的脚本或单行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7183801/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com