将“sudo”命令添加到*目标*用户的bash历史记录中

将“sudo”命令添加到*目标*用户的bash历史记录中

多年来困扰我的事情是,如果我想在 shell 历史记录中搜索以 root 身份运行的命令,我必须检查两个不同的位置:

  1. 我得检查一下/root/.bash_history
  2. 我必须检查/brian/.bash_history命令sudo

是否有 bash 的解决方案(或者,实际上,任何shell - 我愿意切换)哪个会将sudo命令存入目标用户的 shell 历史记录中?

答案1

我假设你是操作在那种私有的unix I-am-root-and-only-user模式下,就像我一样。正是为了避免我的人格分裂,我以 root 身份登录。目前 - 我知道是这样一种安全问题。

作为系统管理员,我正忙于安装、测试等工作,以至于无法为用户提供令人满意的登录。

当我使用多个控制台和/或 xterm 时,bash 历史记录仍然会让我感到困惑。到目前为止,我唯一的组织是一个小文件,hist-keep其中包含我经常使用的几个命令。

如果我想搜索我的命令的 shell 历史记录以 root 身份运行

您只想搜索,还是想“加载”历史文件,这样您就可以历史搜索

我昨天才抬头看sudo,因为这个晦涩难懂sudo 与伪问题。我突然意识到“sudo”和“pseudo”在英语中的发音相同,当你考虑“假名”(或“别名”)时,确实存在语义联系。

Sudo 实际上是要对命令进行单独跟踪。这就是“root”检查“brian”(和其他人)以假名“root”执行的操作的方式。

但你更想合并不同的历史。

我觉得解决方案更多的是history -r处理文件,而不是将 sudo 行注入 root 的历史文件中。

急救解决方案当然是一个简单的函数/脚本搜索在这两个文件中,类似

grep $1 $root-hist
grep "sudo.*$1" $user-hist

然后你可以sudoroot-combigrep "mount"得到所有包含“mount”的相关行。 (选择您自己的易于使用制表符完成的名称)

相关内容