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
    

関連情報