プロセス アカウンティングを使用すると、CPU 時間や使用メモリなど、ユーザーが実行するすべてのコマンドの詳細なログを保持できます。セキュリティの観点から、これは、システム管理者がどのユーザーがどのコマンドをいつ実行したかに関する情報を収集できることを意味します。これは、侵入やローカル ルート侵害の評価に非常に役立つだけでなく、システムの通常のユーザーによる悪意のある動作の試みを見つけるためにも使用できます。
アカウンティング情報を要約するには、sa コマンドを使用できます。デフォルトでは、アカウンティング ログで見つかったすべてのコマンドが一覧表示され、各コマンドが実行された回数が出力されます。
# sa 14 0.04re 0.03cp 0avio 1297k troff 7 0.03re 0.03cp 0avio 422k lastcomm 2 63.90re 0.01cp 0avio 983k info 14 34.02re 0.01cp 0avio 959k less 14 0.03re 0.01cp 0avio 1132k grotty 44 0.02re 0.01cp 0avio 432k gunzip
sa コマンドの例
1. 会計情報を要約するには:
# sa
2. 並べ替えではなく、すべてを一覧表示するには:
# sa -a # sa --list-all-names
3. ユーザー時間とシステム時間の合計を呼び出し回数で割った値で出力をソートします。
# sa -b # sa --sort-sys-user-div-calls
4. コマンドのユーザー、システム、およびリアルタイム値の合計時間のパーセンテージを出力するには:
# sa -c # sa --percentages
5. インタラクティブなクエリに対するすべての回答が肯定的であると想定する。
# sa -f # sa --not-interactive
6. システムのデフォルトの savacct ファイルの情報を読み取らないようにするには:
# sa -i # sa --dont-read-summary-file
7. 呼び出しごとの秒数を出力するには:
# sa -j # sa --print-seconds
8. 出力を CPU 時間平均メモリ使用量でソートするには:
# sa -k # sa --sort-cpu-avmem
9. 出力を cpu-storage 積分で印刷およびソートするには:
# sa -K # sa --sort-ksec
10. システム時間とユーザー時間の別々の列を印刷するには:
# sa -l # sa --separate-times
11. ユーザーごとのプロセス数と CPU 分数を出力する。
# sa -m # sa --user-summary
12. 呼び出し回数で出力をソートするには:
# sa -n # sa --sort-num-calls
13. 出力項目を逆順にソートするには:
# sa -r # sa --reverse-sort
14. 要約された会計データを要約ファイル savacct および usracct にマージするには:
# sa -s # sa --merge
15. システム時間とユーザー時間の合計に対するリアルタイムの比率を出力するには:
# sa -t # sa --print-ratio
16. ユーザー ID とコマンド名を出力するには:
# sa -u # sa --print-users
17. 実行回数が num 回以下のコマンドを出力し、端末からの応答を待つには:
# sa -v 10 # sa --threshold 10
18. バージョンを確認するには:
# sa -V # sa --version
19. ヘルプを得るには:
# sa -h # sa --help
システムを監視し続けるために、まずシステムに acct パッケージをインストールします。他のいくつかの Linux ディストリビューションでは、acct に互換性がない場合、使用されるパッケージは psacct になります。ツールがインストールされて実行されると、システム上のアクティビティのログの維持が開始されます。上記のセクションで説明したコマンドを使用して、これらのログを監視できます。