【问题标题】:How to log all Bash (busybox/ash) commands by all users on a server?如何记录服务器上所有用户的所有 Bash (busybox/ash) 命令?
【发布时间】:2019-02-14 22:26:34
【问题描述】:

我们如何在本地记录所有运行的 Bash 命令以及用户和时间戳?

我正在寻找一种方法来使用我自己的别名集和诸如此类的东西来自定义 Ash 会话。 Bash 的 bashrc 文件的 Ash 等价物是什么?

标准解决方案不起作用:

export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$(whoami) [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'
  • 操作系统:linux 4.9
  • bash: .ash
  • 记录器:busybox (1.27.2) & syslog-ng (3.10)

【问题讨论】:

    标签: syslog busybox


    【解决方案1】:

    这是用于 rsyslog 的:

    1. 编辑 /etc/rsyslog.conf 并放一行

      local6.*                                  /var/log/mylog
      
    2. 代替 PROMPT_COMMAND 在 /etc/profile 中导出 PS1 例如:

      export PS1='$(RETRN_VAL=$?;logger -p local6.debug "[$$]: $(history | tail -1) [$RETRN_VAL]")\u@\h:\w\$ '
      

    当然,您可以更改命令以从历史输出中删除不必要的字符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-02
      • 2019-08-31
      • 1970-01-01
      • 2016-01-09
      相关资源
      最近更新 更多