GNU/Linux >> Linux の 問題 >  >> Linux

ユーザーが実行したすべてのコマンドをログに記録するにはどうすればよいですか?

解決策 1:

ログインを担当する pam 構成 (redhat ベースのディストリビューションでは system-auth) にこの行を追加します

session    required     pam_tty_audit.so enable=*

何が行われたかを調べるには、

を使用できます。
ausearch -ts <some_timestamp> -m tty -i

これにより、次のような出力が生成されます:

 type=TTY msg=audit(11/30/2011 15:38:39.178:12763684) : tty pid=32377 uid=root
 auid=matthew major=136 minor=2 comm=bash data=<up>,<ret>

これの唯一の欠点は、少し読みにくいことですが、理論的にはセッション全体を記録するために使用できるため、ほとんどの提案されたソリューションよりもはるかに優れています.

編集:ああ、aureport を使用して、より役立つリストを生成できます。

# aureport --tty
...
12. 11/30/2011 15:50:54 12764042 501 ? 4294967295 bash "d",<^D>
13. 11/30/2011 15:52:30 12764112 501 ? 4294967295 bash "aureport --ty",<ret>
14. 11/30/2011 15:52:31 12764114 501 ? 4294967295 bash <up>,<left>,<left>,"t",<ret>

解決策 2:

あなたの問題に対する最善の解決策は、Linux に組み込まれている監査システムです。 man 8 auditd を使用 または、このページで詳細を確認してください:http://linux.die.net/man/8/auditd.

また、このチュートリアルを確認することもできます - 質問の範囲から少し外れていますが、監査システムがどのように機能するかを示しています。

解決策 3:

スヌーピーを使うことができます。

これは単純なコマンド ログ ライブラリであり、適切な監査ソリューションではありません (簡単に回避されます)。開示:私は現在スヌーピーのメンテナーです。

解決策 4:

あまり知られていないトリックですが、最も素晴らしいのは、sudo の組み込みの監査機能を使用することです。 . Sudo は sudoreplay で出荷されます セッションの再生を簡単にするコマンド。 vim も中継します セッション(あなたが提案するように)。

いくつかの簡単な手順で使用する方法は次のとおりです:

<オール>
  • sudosh をインストール システム上で;これは sudo のシェルラッパーです ユーザーを sudo にするコマンド 自分自身 (root ではありません) ) であり、システム ログイン シェルとして使用できます
  • sudo を有効にする ロギング。 /etc/sudoers.d/sudosh を編集 : Defaults log_output Defaults!/usr/bin/sudoreplay !log_output Defaults!/sbin/reboot !log_output

  • このコマンドを /etc/shells に追加します それを使用してログインを許可するには: /usr/bin/sudosh

    ヒント :ユーザーが他のシェルを使用してログインできないようにするには、それらの他のシェルを /etc/shells から削除します .

  • ユーザー foobar を更新します sudosh を使用するには shell. chsh -s /usr/bin/sudosh foobar

  • 詳細については、https://github.com/cloudposse/sudosh/ を参照してください。


    Linux
    1. DebianでSudoユーザーを作成する方法

    2. Bashに入力されたすべてのコマンドとすべてのファイル操作をログに記録する方法は?

    3. RockyLinux8でSudoユーザーを作成する方法

    1. sudo を使用して非 root ユーザーが特定のコマンドを実行できるようにする方法

    2. Linux ですべてのシェル コマンドをログに記録する方法

    3. 「sudo su」からログアウトするにはどうすればよいですか?

    1. Linuxでユーザーを作成する方法[ユーザー管理]

    2. 入力したすべてのコマンドをログに記録するにはどうすればよいですか?

    3. sudoers で引用符を含むコマンドをユーザーに実行させるにはどうすればよいですか?