Linuxの最後のコマンド
1. 概要
マルチユーザーシステムを管理する場合、ログインアクティビティに関する詳細情報を取得したいことがよくあります。
このチュートリアルでは、lastおよびlastbコマンドを使用してログイン関連情報を取得する方法を例で学習します。
2. lastおよびlastbの概要
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管理では非常に重要です。
この記事では、これらのコマンドの一般的な使用法を例で学びました。