bash_historyなしで端末で実行されたコマンドを追跡する方法

bash_historyなしで端末で実行されたコマンドを追跡する方法

私はユーザーの活動を追跡し、基本的に可能なタスクを自動化するプログラムを書いています。

現在、ユーザーがコマンドラインでよく使用するプログラムを監視しようとしています。しかし、知っているだけでは十分ではありません。そのコマンドの実行に必要な時間、作業ディレクトリなどのデータが必要です。

現在のソリューションは、起動時にPATHを繰り返し、PATH内の各プログラムに対してダミーPythonスクリプトを生成するPythonスクリプトのセットです。ユーザーがこれらのコマンドを使用しようとすると、これらのスクリプトが呼び出されます(PATHにスクリプトパスを追加することによって)。各スクリプトは、その名前と引数を情報を記録する別のスクリプトに渡し、元の端末に入力された内容を呼び出します(パスを変更することによって)。これはやや混乱した解決策です。私はこれを行ういくつかの簡単な方法があると確信しています。

また、リアルタイム(またはほぼリアルタイム)で実行されたコマンドに関するデータを取得できればよいでしょう。

ベストアンサー1

auditdを見ましたか?そうでない場合は、Linux監査システムのこのスライドを見てください。これは、あなたが説明するほとんどの機能をより標準的で完全な方法で提供します。

http://people.redhat.com/sgrubb/audit/audit_ids_2011.pdf

おすすめ記事