Linuxのlastコマンドは、以前にサーバーにログインしたユーザーをチェックするために使用されます。このコマンドは、監査証跡に役立つため、Linuxでは非常に重要です。 Linuxシステムで何かが変更されたと仮定します。この状況では、誰が変更を行ったかがわかりません。 'last'コマンドを使用すると、特定の時間に誰がログインしたかを識別できます。
最後のコマンドは、ファイルが作成されてから「/ var / log/wtmp」にログインおよびログアウトしたすべてのユーザーのリストを表示します。 Wtmpは、すべてのログインおよびログアウトイベントをキャプチャして記録するログファイルです。これは、テキストエディタで表示できないバイナリファイルです。ユーザーやルートはファイルを思いどおりに変更できないため、このトリックは非常に賢明です。
最後のコマンドは、ログインしているすべてのユーザーの名前、tty、IPアドレス(ユーザーがリモート接続を行っている場合)の日付/時刻、およびユーザーがログインしている時間に関する情報を提供します。
最後のコマンドの実行方法
コンソールで「last」と入力するだけです。
サンプルは次のとおりです:
$ last
leni pts/0 10.0.76.162 Mon Dec 2 12:32 - 13:25 (00:53)
pungki tty1 Mon Dec 2 09:31 still logged in
reboot system boot 2.6.32-358.23.2 Mon Dec 2 09:20 - 13:25 (04:05)
最後の情報を読む方法は次のとおりです:
最初の列 -ログインしたユーザーの名前。
2番目の列 -ユーザーがどのように接続されているか(ptsまたはtty経由)に関する情報を提供してください。再起動アクティビティの例外として、ステータスは「システムブート」として表示されます。
3番目の列 -ユーザーがどこから接続したかを示します。ユーザーがリモートコンピューターから接続する場合は、ホスト名またはIPアドレスが表示されます。 :0.0または何も表示されない場合は、ユーザーがローカル端末を介して接続していることを意味します。再起動アクティビティの例外として、カーネルバージョンがステータスとして表示されます。
残りの列 -ログアクティビティが発生したときのログイン時間とデータスタンプを表示します。括弧内の数字は、接続が発生した時間と分を示しています。
pts(疑似端末)-ユーザーがSSHやtelnetなどのリモート接続を介して接続することを意味します。
tty(テレタイプライター)-ユーザーがコンピューターまたはローカル端末に直接接続して接続することを意味します。
1。行数を制限する
表示する行が多い場合は、-n
を使用して、表示する行数を制限できます。 オプション。
次のコマンドでは、現在の時刻から逆方向に3行が表示されます。
$ last -n 3
leni pts/0 10.0.76.162 Mon Dec 2 12:32 - 13:25 (00:53)
pungki tty1 Mon Dec 2 09:31 still logged in
reboot system boot 2.6.32-358.23.2 Mon Dec 2 09:20 - 13:25 (04:05)
2。ホスト名/IPアドレスを非表示にする
-R
を使用する ホスト名またはIPアドレスを印刷から非表示にするオプション。
サンプル出力
$ last -R
leni pts/0 Mon Dec 2 12:32 - 13:25 (00:53)
pungki tty1 Mon Dec 2 09:31 still logged in
reboot system boot Mon Dec 2 09:20 - 13:25 (04:05)
3。最後の列にホスト名を表示する
最後の列にホスト名またはIPアドレスを印刷するのは簡単な場合があります。これを行うには、-a
を使用できます 以下に示すオプション:
$ last -a
leni pts/0 Mon Dec 2 12:32 - 13:25 (00:53) 10.0.76.162
pungki tty1 Mon Dec 2 09:31 still logged in :0.0
reboot system boot Mon Dec 2 09:20 - 13:25 (04:05) 2.6.32-358.23.2.el6.i686
4。完全なログインとログアウトの日時を印刷する
デフォルトでは、最後のコマンドは完全な日付と時刻を表示しません。 -F
を使用できます このためのオプション。
サンプルは次のとおりです:
$ last -F
leni pts/0 10.0.76.162 Mon Dec 2 12:32:24 2013 - Mon Dec 2013 13:25:24 2013 (00:53
)
5。特定の日付間を検索
-s(以降)および-t(まで)オプションを使用して、特定の日付の間のログを検索できます。
たとえば、次のコマンドは2019年2月1日から5月1日までのログを出力します。
$sudo last -F -s 2019-02-01 -t 2019-05-01
6。特定のユーザー名を印刷する
特定のユーザーを追跡する場合は、具体的に印刷できます。最後のコマンドでユーザーの名前を入力します。
$ last leni
leni tty1 Mon Dec 2 18-42 still logged in
leni pts/0 Mon Dec 2 12:32 - 13:25 (00:53) 10.0.76.162
または、再起動がいつ行われたかを知りたい場合は、それを表示することもできます
$ last reboot
reboot system boot Mon Dec 2 09:20 - 16:55 (07:34)
reboot system boot Sun Dec 1 04:26 - 04:27 (00:01)
reboot system boot Wed Nov 27 20:27 - 01:24 (04:57)
reboot system boot Tue Nov 26 21:06 - 06:13 (09:06)
7。特定のtty/ptsを印刷する
Lastは、特定のtty/ptsに関する情報を出力することもできます。 tty
を置くだけです 最後のコマンドの後ろの名前またはpty名。
サンプル出力:
$ last tty1
pungki tty1 Mon Dec 2 09:31 still logged in
pungki tty1 Mon Dec 2 04:26 - down (00:00)
pungki tty1 Mon Dec 2 04:07 - down (00:00)
pungki tty1 Sun Dec 1 18:55 - 04:07 (09:12)
$ last pts/0
leni pts/0 10.0.76.162 Mon Dec 2 12:32 - 13:25 (00:53)
pungki pts/0 :0.0 Wed Nov 27 20:28 - down (04:56)
括弧内に値が表示されている場合は、特定の時間からシステムが再起動またはシャットダウンされるまで、ユーザーがログインしていたことを意味します。
8。 / var / log / wtmp
以外のファイルを使用してください
デフォルトでは、最後のコマンドは「/ var / log/wtmp」からの情報を解析します。最後のコマンドを別のファイルから解析する場合は、-f
を使用できます。 パラメータ。
たとえば、特定の条件の後にログをローテーションすることができます。前のファイルの名前が「/var/log/wtmp.1」であるとします。
その場合、最後のコマンドは次のようになります。
$ last -f /var/log/wtmp.1
9。実行レベルの変更を表示する
-x
があります 実行レベルの変更を表示する場合は、オプション。
出力例は次のとおりです:
pungki tty1 Mon Dec 2 19:21 still logged in
runlevel (to lvl 3) 2.6.32-358.23.2 Mon Dec 2 19:20 - 19:29 (00:08)
reboot system boot 2.6.32-358.23.2 Mon Dec 2 19:20 - 19:29 (00:08)
shutdown system down 2.6.32-358.23.2 Mon Dec 2 18:56 - 19:20 (00:23)
runlevel (to lvl 0) 2.6.32-358.23.2 Mon Dec 2 18:56 - 18:56 (00:00)
leni tty1 Mon Dec 2 18:42 - down (00:00)
実行レベルのエントリが2つあることがわかります。 to lvl 3
を持つランレベル エントリは、システムがフルコンソールモードで実行されていることを意味します。アクティブなXウィンドウまたはGUIがありません。一方、システムがシャットダウンされると、Linuxはレベル0を実行します。そのため、最後にto lvl 0
を表示します。 エントリ。
最後のシャットダウン日時を表示するには、次のコマンドを使用します。
#last -x | grep shutdown | head -1
10。不正なログインを表示する
lastコマンドは成功したログインをログに記録しますが、lastbコマンドは失敗したログイン試行を記録します。 lastbコマンドを実行するには、rootアクセス権が必要です。 Lastbは/var/ log/btmpからの情報を解析します。
これがlastbコマンドからの出力例です。
# lastb
leni tty1 Mon Dec 2 22:12 - 22:12 (00:00)
rahma tty1 Mon Dec 2 22:11 - 22:11 (00:00)
11。ロカホストのIPアドレスを表示する
-d
を使用 オプション(非ローカルログインの場合)の場合、Linuxはリモートホストのホスト名だけでなく、そのIP番号も保存します。
# last -d
root pts/1 192.168.1.100 Fri Jun 22 01:58 still logged in
root pts/0 192.168.1.100 Fri Jun 22 01:52 still logged in
12。 wtmpログを回転させる
'/ var / log / wtmp'はすべてのログインアクティビティを記録するため、ファイルのサイズが急速に大きくなる可能性があります。デフォルトでは、Linuxは毎月「/ var / log/wtmp」をローテーションします。ローテーションアクティビティの詳細は/etc/logrotate.confファイルにあります。
これが私の「/etc/logrotate.conf」ファイルの内容です。
/var/log/wtmp {
monthly
create 0664 root umtp
minsize 1M
rotate 1
}
また、「/ var / log / btmp」の場合、ローテーションアクティビティのデフォルト設定は次のとおりです
/var/log/btmp {
missingok
monthly
create 0600 root umtp
minsize 1M
rotate 1
}
最後のコマンド履歴をクリアする
wtmpに書き込むことがわかっているので、最後の履歴を削除したい場合は、
#> /var/log/wtmp
Or
#> /var/log/lastlog
結論
このチュートリアルでは、Linuxで最後のコマンドを使用してwtmpファイルからログをチェックする方法を学びました。詳細については、コンソールでman lastと入力して、最後のマニュアルページにアクセスしてください。