1. 概要

マルチユーザーシステムを管理する場合、ログインアクティビティに関する詳細情報を取得したいことがよくあります。

このチュートリアルでは、lastおよびlastbコマンドを使用してログイン関連情報を取得する方法を例で学習します。

2. lastおよびlastbの概要

lastコマンドは、最後にログインしたユーザーに関する情報を表示します。 ログインアクティビティを追跡したり、セキュリティ違反の可能性を調査したりする必要がある場合に、非常に便利で便利です。

last コマンドは、デフォルトで、システムログファイル / var / log /wtmpをデータソースとして取得してレポートを生成します。

wtmp は、すべてのログインおよびログアウトアクティビティの履歴を保持する*nixオペレーティングシステム上のバイナリファイルです。

lastコマンドを使用する構文は次のとおりです。

last [options] [username...] [tty...]

lastbコマンドはlastコマンドと同じですが、デフォルトで / var / log /btmpファイルを検索する点が異なります。不正なログイン試行

通常のユーザーには、 / var / log /btmpファイルに対する読み取り権限がありません。

$ ls -l /var/log/btmp
-rw-rw---- 1 root utmp 1152 Apr  5 00:04 /var/log/btmp

したがって、 root ユーザーのみが、lastbコマンドを使用して不正なログイン試行のレポートを取得できます。

3. 出力を理解する

オプションなしでlastコマンドを実行すると、すべてのログインの履歴のレポートが生成されます。

$ last
reboot   system boot  5.5.13-arch2-1   Fri Apr 10 08:02   still running
kent     pts/0        192.168.0.63     Tue Apr  7 22:01 - 23:03  (01:02)
reboot   system boot  5.5.8-arch1-1    Tue Mar 10 20:49 - 20:49  (00:00)
kent     pts/5        tmux(6716).%6    Thu Mar 26 18:58 - 19:01 (7+23:02)
root     tty1                          Fri Feb 21 18:45 - down   (00:01)
kent     pts/0        80.242.164.60    Thu Feb 20 11:39 - 11:43  (00:04)
guest    pts/0        192.168.0.63     Sun Jan 26 19:15 - 21:32  (02:17)
kent     pts/2        tmux(2044).%1    Wed Jan  8 22:39 - 01:09  (02:29)
....

次に、上記で生成されたログインレポートを見て、各列の意味を理解しましょう。

1列目にはログインしているユーザーの名前が表示されます。

2番目の列は、ユーザーがシステムに接続する方法を示します。たとえば、 pts(疑似端末)または tty(テレタイプライター)を介します。 ただし、再起動アクティビティの場合は、システムブートが表示されます。

3番目の列は、ユーザーがから接続した場所をに示します。 値は次のようになります。

  • ホスト名またはIPアドレス–ユーザーがリモートコンピューターから接続した場合
  • 空の値–ユーザーがttyを介して接続した場合
  • カーネルバージョン–再起動アクティビティの場合
  • アプリケーション固有の値–たとえば、 tmux(6716)。%6 はProcessName(PID).WindowIDを意味します

4番目の列は、ログインアクティビティが発生したときのを報告します。

5列目はログアウト時間を示しています。 次の値である可能性があります。

  • タイムスタンプ–ユーザーがログアウトした場合
  • まだ実行中-システムブートがまだ実行中の場合
  • まだログインしています–ユーザーがまだログインしている場合
  • down –システムは正常にシャットダウンされます
  • crack / var / log /wtmpファイルにログアウトエントリがない場合。 これは通常、システムがクラッシュしたことを意味します

最後の列は、ユーザーがにログインした時間(時間:分)の形式で表示されます。

4. 出力の行数を制限する

マルチユーザーシステムでは、wtmpファイルに多くのログインエントリが記録されている可能性があります。 最新のログインアクティビティのいくつかを調べたい場合は、 -n オプションを使用して、lastコマンドの出力の行を制限できます。

$ last -n 5
kent     pts/0        192.168.0.63     Sat Apr 11 14:58   still logged in
kent     pts/0        192.168.0.63     Sat Apr 11 12:28 - 14:31  (02:03)
kent     pts/0        192.168.0.63     Sat Apr 11 12:07 - 12:09  (00:02)
kent     pts/0        192.168.0.63     Sat Apr 11 11:59 - 12:01  (00:01)
kent     pts/0        192.168.0.63     Sat Apr 11 11:50 - 11:50  (00:00)

wtmp begins Sun Dec 15 18:56:55 2013

5. 出力のIPアドレスまたはホスト名の列を抑制します

last コマンドの出力の3番目の列には、IPアドレス、ホスト名、またはシステムブートアクティビティの場合はカーネルバージョンなど、ユーザーの出身地に関する情報を含めることができることを以前に学びました。

この情報を抑制したい場合は、-Rオプションを使用できます。

$ last -n 5 -R
kent     pts/0        Sat Apr 11 14:58   still logged in
kent     pts/0        Sat Apr 11 12:28 - 14:31  (02:03)
kent     pts/0        Sat Apr 11 12:07 - 12:09  (00:02)
kent     pts/0        Sat Apr 11 11:59 - 12:01  (00:01)
kent     pts/0        Sat Apr 11 11:50 - 11:50  (00:00)

wtmp begins Sun Dec 15 18:56:55 2013

6. 特定の期間のログインアクティビティを一覧表示する

last コマンドは、 -s (以降)および -t (まで)オプションをサポートしているため、特定の期間のログインエントリを印刷できます。

たとえば、昨日のログインアクティビティのみを取得できます。

$ last -s yesterday -t today
kent     pts/0        192.168.0.63     Fri Apr 10 11:31 - 11:31  (00:00)

wtmp begins Sun Dec 15 18:56:55 2013

-sおよび-tオプションは、次の時間形式を受け入れます。

  • YYYYMMDDhhmmss –例 19920808180808
  • YYYY-MM-DD hh:mm:ss –例 1992-08-08 18:08:08
  • YYYY-MM-DD hh:mm (秒はデフォルトで 00 になります)
  • YYYY-MM-DD (時間はデフォルトで深夜になります)
  • hh:mm:ss (日付はデフォルトで今日になります)
  • hh:mm (日付はデフォルトで今日になり、秒は 00 になります)

上記のlastコマンドの例では、昨日今日のの2つのエイリアスを-sに渡しました。 -tオプション。 エイリアスを使用すると、コマンドを簡単に理解できます。

last コマンドは、次の4つのエイリアスをサポートします。

  • 昨日(時刻は深夜に設定されています)
  • 今日(時刻は深夜に設定されています)
  • 明日(時刻は深夜に設定されています)

-sまたは-tオプションに相対時間を渡すこともできます。

たとえば、過去5日以内にログインアクティビティを取得したい場合:

$ last -s -5days
kent     pts/0        192.168.0.63     Sat Apr 11 14:58   still logged in
kent     pts/0        192.168.0.63     Sat Apr 11 12:28 - 14:31  (02:03)
kent     pts/0        192.168.0.63     Sat Apr 11 12:07 - 12:09  (00:02)
...

wtmp begins Sun Dec 15 18:56:55 2013

7. 特定のユーザーからのログインエントリのみを表示する

特定のユーザーからのログインアクティビティを調査したい場合があります。 そのために、lastコマンドにユーザー名を渡すことができます。

たとえば、ユーザーguestおよびrootのログインエントリを確認したいとします。

$ last guest root
guest    tty3                          Sat Apr 11 12:14   still logged in
root     tty2                          Wed Aug 15 23:07 - 23:08  (00:00)
guest    tty2                          Sat Dec 26 00:36 - 00:36  (00:00)
root     tty1                          Sat Apr 19 00:28 - crash  (00:07)
root     pts/2        localhost.locald Thu Mar 20 00:23 - 00:23  (00:00)
root     tty1                          Thu Dec 19 21:42 - down   (00:00)
root     pts/0        192.168.0.103    Sun Dec 15 21:32 - down   (00:02)
root     tty1                          Sun Dec 15 18:57 - down   (02:33)
...

wtmp begins Sun Dec 15 18:56:55 2013

8. 実行レベルの変更のみのエントリを表示する

-xオプションをlastコマンドに渡して、実行レベルの変更のログインエントリを取得できます。 たとえば、システムは次のように再起動およびシャットダウンします。

$ last -x
reboot   system boot  5.5.8-arch1-1    Thu Mar 26 18:58 - 19:01 (7+23:02)
shutdown system down  5.5.8-arch1-1    Wed Mar 25 20:02 - 20:02  (00:00)
reboot   system boot  5.4.10-arch1-1   Mon Jan 27 20:07 - 21:11  (01:04)
shutdown system down  5.4.10-arch1-1   Mon Jan 27 18:57 - 20:07  (01:09)
reboot   system boot  5.4.10-arch1-1   Sun Jan 12 22:07 - 18:57 (14+20:50)
kent     tty2                          Sun Dec 15 18:24 - down   (00:03)
....

wtmp begins Sun Dec 15 18:56:55 2013

9. 不正なログイン試行を表示する

lastbコマンドについて簡単に説明しました。 lastコマンドと同じように機能します。 唯一の違いは、 last bコマンドは失敗したログイン試行を一覧表示するだけです。

root# lastb
guest    pts/6                         Sat Apr 11 12:11 - 12:11  (00:00)
guest    pts/6                         Sat Apr 11 12:11 - 12:11  (00:00)
guest    pts/6                         Sat Apr 11 12:10 - 12:10  (00:00)
guest    pts/1                         Sun Apr  5 00:04 - 00:04  (00:00)
guest    pts/1                         Sun Apr  5 00:04 - 00:04  (00:00)
guest    pts/1                         Sun Apr  5 00:03 - 00:03  (00:00)

btmp begins Sun Apr  5 00:03:55 2020

10. 結論

lastおよびlastbコマンドは、監査証跡に役立つため、Linux管理では非常に重要です。

この記事では、これらのコマンドの一般的な使用法を例で学びました。