将用户ID添加到bash历史记录中

时间:2014-05-13 17:43:29

标签: linux bash history redhat

目前,当我做历史时,我得到:

  996  05/13/14 10:37 ls-l
  997  05/13/14 10:37 ls -l
  998  05/13/14 10:37 chmod 700 hosts.txt
  999  05/13/14 10:37 tail -5 .bash_history
 1000  05/13/14 10:37 tail -10 .bash_history
 1001  05/13/14 10:38 hisotry

是否可以在机制成为时将其更改为:

  996  username1 05/13/14 10:37 ls-l
  997  username1 05/13/14 10:37 ls -l
  998  username2 05/13/14 10:37 chmod 700 hosts.txt
  999  username3 05/13/14 10:37 tail -5 .bash_history
 1000  username1 05/13/14 10:37 tail -10 .bash_history
 1001  username4 05/13/14 10:38 hisotry

我尝试编辑PROMPT_COMMAND,但无法获得我想要的结果。

我正在处理的场景是几个用户sudo给另一个用户,每个用户运行几个命令。我需要的是跟踪哪个用户运行了哪个命令。

4 个答案:

答案 0 :(得分:3)

历史记录仅报告当前登录用户执行的命令。 您可以使用su -c history username检查系统中其他用户的历史记录。

答案 1 :(得分:2)

您可以滥用HISTTIMEFORMAT变量来完成此操作。将以下内容添加到您的.bashrc

HISTTIMEFORMAT="$USER %m/%d/%Y %H:%M "

答案 2 :(得分:0)

你可以跑:

history | sed "s/  / $UID /"

如果你想为此发出命令:

alias histuid='history | sed "s/  / $UID /"'

虽然我不确定你为什么要这样的东西,因为历史命令是一个内置的shell,它只能为当前shell的用户返回当前shell会话的历史记录

答案 3 :(得分:0)

我找到了一个对我有用的简单解决方案。在Ubuntu 18.04的/etc/bash.bashrc中,将以下内容添加到末尾或进行修改(如果存在)。

[解决方案]

export HISTTIMEFORMAT="`whoami` %m/%d/%Y %H:%M "

[结果]

1987  {omitted} 07/13/2018 - 20:10:56 history | tail -19

注意,以前的条目将被更新。 {omitted}显示用户名。 whoami用在bash命令脚本中的单引号中。