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

Linuxでユーザーアクティビティを監視する方法

Linux管理者は、すべてのユーザーのアクティビティを追跡する必要があります。サーバーで問題が発生した場合に役立ちます。ユーザーのアクティビティを分析および調査し、問題の根本的な原因を見つけることができます。ユーザーを監視する方法はたくさんあります。このガイドでは、GNUアカウンティングユーティリティについて説明します。 Linuxでのユーザーアクティビティの監視に使用できます。アカウンティングユーティリティは、接続、実行されたプログラム、システムリソースの使用率など、システムの使用状況に関する有用な情報を提供します。これらのアカウンティングユーティリティは、 psacctを使用してインストールできます。 またはacct パッケージ。 psacctまたはacctは同じです。 RPMベースでは、psacctとして使用でき、DEBベースのシステムでは、acctとして使用できます。

通常、ユーザーのコマンドライン履歴の詳細は .bash_historyに保存されます $HOMEディレクトリにあるファイル。一部のユーザーは、履歴を編集、変更、または削除しようとする場合があります。ただし、アカウンティングユーティリティは、ユーザーがコマンドライン履歴をクリアした場合でも、ユーザーのアクティビティを取得できます。 完全に。なぜなら、すべてのプロセスアカウンティングファイルはrootユーザーが所有しており、通常のユーザーはそれらを編集できないからです。

psacctまたはacctをインストールします

RHEL、CentOS、Fedora、Scientific Linuxで、rootユーザーとして次のコマンドを実行してpsacctをインストールします。

$ sudo yum install psacct

次のコマンドを使用して、psacctサービスを有効にして開始します。

$ sudo systemctl enable psacct
$ sudo systemctl start psacct

Debian、Ubuntu、Linux Mintでは、次のようにインストールします。

$ sudo apt-get install acct

上記のコマンドはacctをインストールし、サービスを自動的に開始します。

コマンドを使用して、起動されているかどうかを確認できます:

$ sudo systemctl status acct
ダウンロード -無料の電子書籍:「Nagiosモニタリングハンドブック」

Linuxでのユーザーアクティビティの監視

psacct(プロセスアカウンティング)パッケージには、ユーザーとプロセスのアクティビティを監視するための次の便利なユーティリティが含まれています。

  • ac -ユーザーがログオンしている時間に関する統計を表示します。
  • lastcomm -以前に実行されたコマンドに関する情報を表示します。
  • アクトン -プロセスアカウンティングをオンまたはオフにします。
  • dump-acct -出力ファイルをaccton形式から人間が読める形式に変換します。
  • dump-utmp -utmpファイルを人間が読める形式で印刷します。
  • sa -以前に実行されたコマンドに関する情報を要約します。

例を挙げてさようならを見てみましょう。

ac

ac ユーティリティは、接続時間のレポートを時間単位で表示します。ユーザーまたはユーザーのグループがシステムに接続していた時間を知ることができます。

$ ac

このコマンドは、すべてのユーザーの合計接続時間を時間単位で表示します。

total       30.62

-d を使用すると、この結果を日ごとに並べ替えることができます 以下に示すようにフラグを立てます。

$ ac -d

出力例:

Nov 24 total 0.81
Apr 12 total 0.01
Jun 20 total 9.27
Jun 30 total 0.23
Mar 11 total 5.34
Mar 16 total 0.70
Mar 21 total 9.55
Mar 23 total 1.77
Today total 3.03

また、 -p を使用して、各ユーザーがシステムに接続していた時間を表示できます。 フラグ。

$ ac -p

出力例:

sk 0.03
root 30.73
total 30.76

また、個々のユーザーの合計ログイン時間を表示することもできます。

$ ac sk

出力例:

total 0.03

個々のユーザーのログイン時間を日ごとに表示するには、次のコマンドを実行します。

$ ac -d root

出力例:

Nov 24 total 0.81
Apr 12 total 0.01
Jun 20 total 9.27
Jun 30 total 0.23
Mar 11 total 5.34
Mar 16 total 0.70
Mar 21 total 9.55
Mar 23 total 1.77
Today total 3.41

詳細については、manページを参照してください。

$ man ac

lastcomm

最後の通信 ユーティリティは、以前に実行されたコマンドのリストを表示します。最近実行されたコマンドが最初に一覧表示されます。

$ lastcomm

出力例:

sshd SF sshd __ 0.01 secs Fri Mar 24 15:09
unix_chkpwd S root __ 0.00 secs Fri Mar 24 15:09
unix_chkpwd S root __ 0.00 secs Fri Mar 24 15:09
systemd-cgroups S root __ 0.00 secs Fri Mar 24 15:09
systemd-cgroups S root __ 0.00 secs Fri Mar 24 15:09
sshd S root __ 0.06 secs Fri Mar 24 15:09
sshd SF sk __ 0.06 secs Fri Mar 24 15:09
bash sk pts/1 0.00 secs Fri Mar 24 15:09
clear sk pts/1 0.00 secs Fri Mar 24 15:09
vi sk pts/1 0.00 secs Fri Mar 24 15:09
cat sk pts/1 0.00 secs Fri Mar 24 15:09
bash F sk pts/1 0.00 secs Fri Mar 24 15:09
consoletype sk pts/1 0.00 secs Fri Mar 24 15:09
grep sk pts/1 0.00 secs Fri Mar 24 15:09
bash F sk pts/1 0.00 secs Fri Mar 24 15:09

上記のコマンドは、すべてのユーザーのコマンドを表示します。次のコマンドを使用して、特定のユーザーが以前に実行したコマンドを表示できます。

$ lastcomm sk

出力例:

sshd SF sk __ 0.06 secs Fri Mar 24 15:09
bash sk pts/1 0.00 secs Fri Mar 24 15:09
clear sk pts/1 0.00 secs Fri Mar 24 15:09
vi sk pts/1 0.00 secs Fri Mar 24 15:09
cat sk pts/1 0.00 secs Fri Mar 24 15:09
bash F sk pts/1 0.00 secs Fri Mar 24 15:09
consoletype sk pts/1 0.00 secs Fri Mar 24 15:09
grep sk pts/1 0.00 secs Fri Mar 24 15:09

また、特定のコマンドが実行された回数を表示できます。

$ lastcomm vi

出力例:

vi sk pts/1 0.00 secs Fri Mar 24 15:09
vi root pts/1 0.00 secs Fri Mar 24 15:03

上記の出力からわかるように、viコマンドはrootユーザーとskユーザーによって2回実行されています。

詳細については、manページを参照してください。

$ man lastcomm

accton

このユーティリティを使用すると、アカウンティングをオンまたはオフにすることができます。

プロセスアカウンティングをオンにするには、次を実行します:

$ accton on

オフにするには、次を実行します:

$ accton off

詳細については、manページを参照してください。

$ man accton

dump-acctおよび dump-utmp

dump-acct ユーティリティは、出力ファイルをアクトン形式から人間が読める形式に表示します。

$ dump-acct /var/account/pacct

dump-utmpは、人間が読める形式でutmpファイルを表示します。

$ dump-utmp /var/run/utmp

詳細については、manページを参照してください。

$ man dump-acct
$ man dump-utmp

sa

saユーティリティは、以前に実行されたコマンドに関する情報を要約します。

$ sa

出力例:

 318 951.07re 0.01cp 0avio 15299k
 4 33.04re 0.01cp 0avio 26352k sshd
 7 2.05re 0.00cp 0avio 25184k sshd*
 2 0.01re 0.00cp 0avio 89856k dnf
 35 0.00re 0.00cp 0avio 29767k man*
 29 0.00re 0.00cp 0avio 7377k bash*
 12 0.00re 0.00cp 0avio 6259k unix_chkpwd
 12 0.00re 0.00cp 0avio 2674k systemd-cgroups
 10 0.00re 0.00cp 0avio 2260k grep
 9 166.31re 0.00cp 0avio 25375k ***other*
 9 110.33re 0.00cp 0avio 0k kworker/0:2*
 9 110.33re 0.00cp 0avio 0k kworker/0:0*
 9 0.00re 0.00cp 0avio 3830k id
 8 0.00re 0.00cp 0avio 1080k ac
 8 0.00re 0.00cp 0avio 26976k logger
 8 0.00re 0.00cp 0avio 26976k basename
 6 93.90re 0.00cp 0avio 29712k man
 6 0.00re 0.00cp 0avio 1629k clear
 5 119.94re 0.00cp 0avio 0k kworker/0:2H*
 5 93.90re 0.00cp 0avio 27568k less

ユーザーごとにプロセス数とCPU分数を出力するには、次のコマンドを実行します。

$ sa -m

出力例:

337 961.10re 0.01cp 0avio 15593k
root 286 857.82re 0.01cp 0avio 16672k
sk 45 3.88re 0.00cp 0avio 7992k
sshd 5 0.34re 0.00cp 0avio 20966k
postfix 1 99.06re 0.00cp 0avio 22272k

詳細については、manページを参照してください。

$ man sa

おすすめの記事:

  • Linuxシステムへのユーザーのアクセスを制限する方法

そして、それがすべてです。すべてのLinux管理者は、すべてのユーザーを監視するためにGNUアカウンティングユーティリティを知っている必要があります。これらのユーティリティは、トラブルシューティングに役立ちます。


Linux
  1. Linuxでユーザー名を変更する方法

  2. Arpwatchを使用してLinuxでイーサネットアクティビティを監視する方法

  3. Linuxでユーザーをグループに追加する方法

  1. Ansibleを使用してLinuxユーザーを作成する方法

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

  3. Linux でユーザー アクティビティを監視するための 5 つの便利なコマンド例

  1. Linuxでユーザーのメモリ使用量を見つける方法

  2. Linux でユーザー コマンドを制限する方法

  3. LinuxでIDでユーザー名を検索するにはどうすればよいですか?