server-memo.net

【CentOS】ログイン履歴やログイン状況の確認方法

   

「CentOS」でログイン履歴や現在ログインしているユーザを確認する方法についての説明です。

ログイン履歴の確認

ログイン履歴は「last」や「lastlog」コマンドで確認することができ、ログイン失敗の履歴は「lastb」コマンドで確認することが出来ます。

lastコマンド

「last」コマンドは「/var/log/wtmp」に記録されているデータをもとに、ユーザのログイン・ログオフ情報の履歴を表示します。(システムの再起動のログも表示されます)

コマンド 説明
last すべてのログイン履歴を表示
last ユーザ名 指定したユーザのログイン履歴を表示
last -行数 指定した行数分だけログイン履歴を表示

last

何も指定せずに「last」コマンドを実行すると、「/var/log/wtmp」に記録されているユーザのログインやログオフの情報をすべて表示します。

# last
tamohiko pts/0        192.168.1.37     Fri Oct 13 22:16   still logged in
reboot   system boot  3.10.0-514.21.1. Fri Oct 13 22:15 - 22:16  (00:01)
tamohiko pts/1        192.168.1.37     Sun Jul 30 23:30 - 23:31  (00:01)
tamohiko pts/0        192.168.1.18     Sun Jul 30 10:10 - 23:31  (13:20)
root     tty1                          Sat Jul 29 20:48 - 23:31 (1+02:42)

  以下省略

表示された履歴は左から「ユーザ名」「ログイン端末」「ログイン元IP」「ログイン日時」「ログオフ日時」といった情報表示されています。

ログイン端末について

ログイン端末は「pts」は「SSH」等の仮想端末を表していて、「tty」は実端末(標準入出力端末)を表しています。

last ユーザ名

ユーザ名を指定して「last」コマンドを実行することで、表示させるユーザを絞り込むことが出来ます。

# last tamohiko
tamohiko pts/0        192.168.1.37     Fri Oct 13 22:16   still logged in
tamohiko pts/1        192.168.1.37     Sun Jul 30 23:30 - 23:31  (00:01)
tamohiko pts/0        192.168.1.18     Sun Jul 30 10:10 - 23:31  (13:20)
tamohiko pts/0        192.168.1.84     Tue Jun 20 06:01 - 22:04 (2+16:03)
tamohiko pts/0        192.168.1.81     Mon Jun 19 08:29 - 22:16  (13:47)
tamohiko pts/0        192.168.1.76     Sun Jun 18 21:04 - 02:31  (05:27)

  以下省略

ユーザ名はスペースで区切ることで複数指定することも可能です。

last -行数

行数を指定することで、表示させる履歴の数を指定することも出来ます。

# last -5
tamohiko pts/0        192.168.1.32     Sat Oct 14 10:55   still logged in
tamohiko pts/0        192.168.1.37     Fri Oct 13 22:16 - 01:37  (03:21)
reboot   system boot  3.10.0-514.21.1. Fri Oct 13 22:15 - 10:56  (12:40)
tamohiko pts/1        192.168.1.37     Sun Jul 30 23:30 - 23:31  (00:01)
tamohiko pts/0        192.168.1.18     Sun Jul 30 10:10 - 23:31  (13:20)

lastlogコマンド

「lastlog」コマンドはユーザの最終ログイン日時の一覧を「/var/log/lastlog」の中身を元に表示します。

コマンド 説明
lastlog すべてのユーザの最終ログイン情報を表示
lastlog -u ユーザ名 指定したユーザ名の最終ログイン情報を表示
last -t 日数 指定した日数以内の最終ログイン情報を表示

lastlog

何も指定せずに「last」コマンドを実行すると、「/var/log/lastlog」に記録されているユーザの最終ログイン情報をすべて表示します。

一度もログインしていないユーザについては、「**一度もログインしていません**」とか「**Never logged in**」といったように表示されます。

# lastlog
ユーザ名         ポート   場所             最近のログイン
root             pts/0                     土 10月 14 10:55:56 +0900 2017
bin                                        **一度もログインしていません**
daemon                                     **一度もログインしていません**
adm                                        **一度もログインしていません**

#####  中略  #####

sshd                                       **一度もログインしていません**
postfix                                    **一度もログインしていません**
chrony                                     **一度もログインしていません**
tamohiko         pts/0    192.168.1.32     土 10月 14 10:55:44 +0900 2017
ntp                                        **一度もログインしていません**
tamo             pts/0                     金  6月 16 07:45:30 +0900 2017
test             pts/2                     日  6月 18 18:04:43 +0900 2017
test1            pts/1                     木  6月 15 15:41:25 +0900 2017
ポートついて

「pts」は「SSH」等の仮想端末を表していて、「tty」は実端末(標準入出力端末)を表しています。

lastlog -u ユーザ名

「-u」オプションを使用してユーザ名を指定することで、指定したユーザの情報のみを表示させることが出来ます。

# lastlog -u tamohiko
ユーザ名         ポート   場所             最近のログイン
tamohiko         pts/0    192.168.1.32     土 10月 14 10:55:44 +0900 2017

lastlog -t 日数

「-t」オプションを使用して日数を指定することで、指定した日数以内にログインがあったユーザのみを表示させることが出来ます。

# lastlog -t 5
ユーザ名         ポート   場所             最近のログイン
root             pts/0                     土 10月 14 10:55:56 +0900 2017
tamohiko         pts/0    192.168.1.32     土 10月 14 10:55:44 +0900 2017

上記の例は、5日以内にログインしたユーザの情報を表示させています。

lastbコマンド

「lastb」コマンドは、ログインに失敗したユーザの履歴を「/var/log/btmp」の情報を元に表示します。

インターネットに接続されたサーバでこの情報を確認してみると、どんなユーザ名で不正アクセスを試されているのかが分かって面白いですよ。

コマンド 説明
lastb ログインに失敗した情報をすべて表示
lastb ユーザ名 ユーザを指定してログイン失敗情報を表示
lastb -行数 指定した行数分だけログイン失敗情報を表示

lastb

何も指定せずに「lastb」コマンドを実行すると「/var/log/wtmp」に記録されているデータをもとに、ログイン失敗の履歴を表示します。

# lastb
guest    ssh:notty    192.168.1.37     Fri Oct 13 22:20 - 22:20  (00:00)
guest    ssh:notty    192.168.1.37     Fri Oct 13 22:20 - 22:20  (00:00)
admin    ssh:notty    192.168.1.37     Fri Oct 13 22:20 - 22:20  (00:00)
admin    ssh:notty    192.168.1.37     Fri Oct 13 22:19 - 22:19  (00:00)
admin    ssh:notty    192.168.1.37     Fri Oct 13 22:19 - 22:19  (00:00)
tamohiko ssh:notty    192.168.1.18     Sun Jul 30 10:10 - 10:10  (00:00)

lastb ユーザ名

ユーザ名を指定して「lastb」コマンドを実行することで、表示させるユーザを絞り込むことが出来ます。

# lastb tamohiko
tamohiko ssh:notty    192.168.1.18     Sun Jul 30 10:10 - 10:10  (00:00)
btmp begins Sun Jul 30 10:10:40 2017

lastb -行数

行数を指定することで、指定した分だけ履歴を表示させることが出来ます。

# lastb -2
guest    ssh:notty    192.168.1.39     Mon Oct 16 21:47 - 21:47  (00:00)
guest    ssh:notty    192.168.1.39     Mon Oct 16 21:47 - 21:47  (00:00)

上記は2行分だけログイン失敗履歴を表示させてみた例となります。

現在ログインしているユーザの確認

現在ログインしているユーザは「w」「who」「users」コマンドで確認することが出来ます。

wコマンド

「w」コマンドは現在ログインしているユーザと、そのユーザが何を行っているかの情報を表示します。

コマンド 説明
w 現在ログインしている全てのユーザ情報を表示
w ユーザ名 指定したユーザの情報を表示

w

何も指定せずに「w」コマンドを実行すると、現在システムにログインしている全てのユーザ一覧を表示します。

# w
11:10:02 up 12:55,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      11:09   10.00s  0.00s  0.00s -bash
tamohiko pts/0    192.168.1.32     10:55    2.00s  0.06s  0.06s sshd: tamohiko

w ユーザ名

ユーザ名を指定することで、そのユーザの情報のみを表示することが出来ます。

# w tamohiko
 22:03:04 up  5:45,  1 user,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
tamohiko pts/0    192.168.1.39     16:17    0.00s  0.05s  0.03s sshd: tamohiko

whoコマンド

「who」コマンドは現在システムにログインしているユーザの一覧を表示します。

# who
root     tty1         2017-10-14 11:09
tamohiko pts/0        2017-10-14 10:55 (192.168.1.32)

users

「users」コマンドは「/var/run/utmp」の内容を読み込んで、現在システムにログインしているユーザの一覧を表示します。

# users
root tamohiko tamohiko test

ユーザが多重ログインしている場合は、上記のようにログインしている分だけユーザ名が表示されます。

 - サーバ運用