ユーザーが次のコマンドを実行すると仮定します。
zcat file.gz | grep something | gzip > grepped.gz
execve
私はすべてのsを記録し、stdins / stdoutsを一緒にリンクし、同様の形式に再構成してsyslogに入れるカーネル関数(おそらくBPFフィルタ?)を探しています。シェルと対話せずにこれを行う方法はありますか?
答え1
プロセス会計の使用
パッケージは通常名前が付けられてpsacct
います。acct
必須パッケージのインストール
sudo apt install acct
デーモンを起動してプロセスアカウントを自動的に有効にします。
sudo systemctl enable --now acct.service
最後の実行コマンドの実行確認lastcomm
監査の使用
auditdデーモンのインストール
起動時に有効
sudo systemctl enable auditd
次のルールを追加してください。
sudo auditctl -a always,exit -F arch=b64 -S execve -k search_comment
次に、ユーザーが記録したすべてのメッセージを表示します。
sudo ausearch -k search_comment
または特定のUIDで検索
sudo ausearch -k search_comment -ui 1000