lastlogコマンドで最終ログイン記録を確認する方法|ユーザー別の確認と活用例


この記事の監修:宮崎智広(Linux教育歴15年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips, ログ管理 > lastlogコマンドで最終ログイン記録を確認する方法|ユーザー別の確認と活用例
サーバー管理をしていると「このユーザー、本当に最近ログインしているのか?」「不審なアカウントが使われていないか確認したい」という場面が出てきます。

Linuxでは、各ユーザーの最終ログイン時刻を記録した /var/log/lastlog ファイルが存在します。このファイルはバイナリ形式のため、catless では読めません。専用の lastlog コマンドを使って参照します。

【この記事でわかること】

・lastlogコマンドで全ユーザーの最終ログイン時刻を一覧表示できる
・-uオプションで特定ユーザーの最終ログインだけを絞り込める
・/var/log/lastlogはバイナリ形式のためcatコマンドでは読めない
・セキュリティ監査でlastlogを使う実務的な手順を解説

lastlogコマンドとは

lastlog コマンドは、/var/log/lastlog ファイルに記録された「ユーザーごとの最終ログイン情報」を読み取って表示します。/var/log/wtmp(ログイン履歴)とは異なり、あくまでも「最後にログインした記録のみ」を保持する点が特徴です。

基本的な使い方

1. 全ユーザーの最終ログインを確認する

引数なしで実行すると、システム上のすべてのユーザーとその最終ログイン時刻が表示されます。

[root@Tiger ~]# lastlog ユーザ名 ポート 場所 最近のログイン root tty1 金 8月 24 13:45:27 +0900 2012 bin **一度もログインしていません** daemon **一度もログインしていません** adm **一度もログインしていません** lp **一度もログインしていません** sync **一度もログインしていません** shutdown **一度もログインしていません** 〈中略〉 sshd **一度もログインしていません** tcpdump **一度もログインしていません** pakira pts/0 192.168.0.162 水 10月 10 12:21:19 +0900 2012

**一度もログインしていません**」と表示されているユーザーは、システムアカウントなどログインが想定されていないアカウントです。これらが突然ログイン履歴を持っていたら、権限昇格攻撃の可能性があります。

2. 特定ユーザーのみを確認する(-uオプション)

特定のユーザーの最終ログインだけを確認したい場合は、-u オプションでユーザー名を指定します。

[root@Tiger ~]# lastlog -u pakira ユーザ名 ポート 場所 最近のログイン pakira pts/0 192.168.0.162 水 10月 10 12:21:19 +0900 2012

3. 一定期間ログインしていないユーザーを確認する(-bオプション)

-b 日数 を指定すると、指定した日数より前にログインしたユーザー(長期間ログインしていないユーザー)のみ表示できます。

# 90日以上ログインしていないユーザーを表示する [root@Tiger ~]# lastlog -b 90

休眠アカウントのリストアップや定期的なユーザー棚卸しに活用できます。

応用・セキュリティ監査での実務活用

lastlogとlastコマンドの違い

混同されやすいコマンドとの違いを整理しておきます。

lastlog:ユーザーごとの「最終ログイン時刻のみ」を保持(/var/log/lastlog参照)
last:ログイン・ログアウトの全履歴を保持(/var/log/wtmp参照)
lastb:ログイン失敗の履歴(/var/log/btmp参照)

セキュリティ監査では、3つのコマンドを組み合わせて調査するのが現場の定番手順です。

不審なシステムアカウントのログインを検出する

本来ログインしないはずの bindaemon などのシステムアカウントに最終ログイン時刻が記録されていた場合、セキュリティインシデントの可能性があります。

# ログイン記録があるユーザーのみ一覧表示する [root@Tiger ~]# lastlog | grep -v "**一度もログインしていません**"

トラブルシュート

「/var/log/lastlog が存在しない」場合

/var/log/lastlog が存在しない場合、lastlogコマンドはエラーを表示します。ファイルが削除されている場合は空ファイルを作成することで記録が再開されます(過去の記録は失われます)。

# lastlogファイルを新規作成する(過去の記録は復元不可) [root@Tiger ~]# touch /var/log/lastlog [root@Tiger ~]# chmod 644 /var/log/lastlog

本記事のまとめ

lastlog:全ユーザーの最終ログイン時刻を表示(/var/log/lastlog参照)
lastlog -u ユーザー名:特定ユーザーの最終ログインを確認
lastlog -b 日数:長期間ログインしていないユーザーを抽出
・システムアカウントへの不審なログインはセキュリティインシデントの兆候
/var/log/lastlog はバイナリ形式のため cat では読めない

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

Linuxサーバーのセキュリティ管理を体系的に学びたい方へ

lastlogコマンドによるユーザー管理は、サーバーセキュリティ監査の基本の一つです。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。


無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録

宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。