如何获取 Ubuntu Server 上特定用户的命令日志?

如何获取 Ubuntu Server 上特定用户的命令日志?

有没有办法找到用户在 Ubuntu 11.10 Server 上运行的所有命令的日志?我需要找出我的朋友运行了什么来安装程序。

答案1

如果您使用类似 bash 之类的命令解释器,则可以检查历史记录。

more /home/user/.bash_history

答案2

遵循这些说明(修订自这个答案)。

  1. 修改/etc/bash.bashrc

  2. 将以下行附加到该文件的末尾

     export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$(whoami) [$$]: $(history 1 | sed "s/[ ][0-9]+[ ]//" ) [$RETRN_VAL]"'
    
  3. 创建新文件

    /etc/rsyslog.d/bash.conf
    
  4. 将以下行添加到文件中

    local6.*    /var/log/commands.log
    
  5. 向文件中添加行 /etc/logrotate.d/rsyslog

    附近:

    /var/log/mail.warn
    /var/log/mail.err
    [...]
    /var/log/message   
    

    添加

    /var/log/commands.log
    
  6. 重新启动 rsyslog。

    sudo service rsyslog restart
    

相关内容