「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
ユーザが多重ログインしている場合は、上記のようにログインしている分だけユーザ名が表示されます。
コメント