GNU/Linux >> Linux の 問題 >  >> Linux

Linuxで最後にログインしたユーザーを見つける方法

このチュートリアルでは、 lastを使用してLinuxで最後にログインしたユーザーを見つける方法を説明します。 、 lastb およびlastlog 例を含むコマンド。

はじめに

Linuxシステム管理者は、Linuxサーバーのユーザーのログイン日時を定期的に確認する必要があります。アクティブなユーザーの数、非アクティブなユーザーの数、いつログインするか、どのくらいの時間ログインするかなど、いくつかの役立つ詳細が表示されます。

一部のユーザーアカウントが長期間使用されていない場合、不要になった場合は単にロックすることができます。 Linuxサーバーを監査するときに最終ログイン日を使用して、問題の原因となった可能性のあるユーザーを調査することもできます。

幸い、GNU / Linuxオペレーティングシステムには、 lastというトリプレットコマンドが含まれています。 、 lastb およびlastlog 最近のユーザーのログイン日を表示します。

1。最後のコマンドでLinuxに最後にログインしたユーザーのリストを表示する

名前が示すように、 last コマンドは、LinuxおよびUnixライクなシステムで最後にログインしたユーザーを表示するために使用されます。 / var / log / wtmpを読み取ります ファイルを作成し、そのファイルが作成されてからログインおよびログアウトしたすべてのユーザーを検索します。特定のユーザーの最近のログイン日を一覧表示したり、Linuxシステムを再起動したユーザーを見つけたりすることもできます。 lastの助けを借りて コマンド。

システムはwtmpにのみ情報を記録することに注意してください ファイル。このファイルが何らかの理由で利用できない場合は、 touchで作成してください。 以下のようなコマンド:

$ sudo touch /var/log/wtmp

ここで、 lastを使用して最近のログイン日時を確認しましょう コマンド。

Linuxシステムでの最後のログイン、その継続時間、およびその他の情報を表示するには、次のコマンドを実行します。

$ last

出力例:

ostechni pts/0        192.168.225.37   Thu Jan  7 08:30   still logged in
ostechni tty1                          Thu Jan  7 08:29   still logged in
reboot   system boot  5.4.0-53-generic Thu Jan  7 08:20   still running
reboot   system boot  5.4.0-48-generic Fri Nov 20 10:13 - 11:44  (01:31)
.
.
.
reboot   system boot  5.4.0-33-generic Wed Jul  8 08:49 - 11:41  (02:52)
ostechni web console                   Mon Jul  6 08:19 - 08:20  (00:00)
ostechni pts/2        192.168.225.37   Mon Jul  6 08:14 - 08:30  (00:15)
ostechni pts/0        192.168.225.37   Mon Jul  6 07:41 - 12:27  (04:45)
reboot   system boot  5.4.0-33-generic Mon Jul  6 07:21 - 12:27  (05:06)
ostechni pts/3        192.168.225.37   Sat Jul  4 12:01 - 12:12  (00:10)
ostechni pts/2        192.168.225.37   Sat Jul  4 11:14 - 13:01  (01:46)
ostechni pts/0        192.168.225.37   Sat Jul  4 07:55 - 13:01  (05:05)
reboot   system boot  5.4.0-33-generic Sat Jul  4 07:53 - 13:03  (05:09)
ostechni tty1                          Fri May 29 10:07 - down   (00:00)
reboot   system boot  5.4.0-33-generic Fri May 29 10:06 - 10:07  (00:01)
ostechni pts/0        192.168.225.37   Fri May 29 09:36 - 10:06  (00:29)
ostechni tty1                          Fri May 29 09:36 - down   (00:29)
reboot   system boot  5.4.0-31-generic Fri May 29 09:35 - 10:06  (00:30)
ostechni tty1                          Sun May 24 13:17 - down   (00:02)
reboot   system boot  5.4.0-31-generic Sun May 24 13:16 - 13:20  (00:03)

wtmp begins Sun May 24 13:16:52 2020

上記の出力にあるように、最後のコマンドは最近のログインの次の詳細を表示します。

  • ユーザーの名前。まだログインしているユーザーがいる場合は、その詳細も表示されます。
  • セッションが行われた端末デバイスのタイプ(ttyやptsなど)。
  • ユーザーがログインしたソースIPアドレスまたはホスト名。
  • ログインの日付とタイムスタンプ(つまり、ログインセッションの開始時間と停止時間)。
  • セッションの合計時間。
  • 最後の行は、 wtmpで最初に記録されたセッションの日付と時刻を示します ログファイル。

上記の出力では、 restartという名前の特別なユーザーのログインエントリがあることに気付いたかもしれません。 。 last コマンドは、コンピューターが起動するたびにこのユーザーの記録を保持します。

lastを実行すると オプションを指定せずにコマンドを実行すると、ログ出力全体が表示されます。好みに応じて、出力をフィルタリング、フォーマット、および制限するための多くのオプションがあります。最も一般的なオプションの例を含めました。

1.1。出力を特定のユーザーに制限する

すでに述べたように、 last コマンドは、 wtmpに記録された最近のすべてのログインを一覧表示します ファイル。特定のユーザーの最近のログインを表示する場合(つまり、特定のユーザーによるすべてのログインを表示する場合)、たとえば ostechnix 、コマンドは次のようになります:

$ last ostechnix

出力例:

ostechni pts/0        192.168.225.37   Thu Jan  7 08:30   still logged in
ostechni tty1                          Thu Jan  7 08:29   still logged in
ostechni pts/0        192.168.225.37   Wed Jan  6 11:02 - 13:31  (02:28)
[...]

以下のように、カンマで区切って複数のユーザー名を指定することもできます。

$ last ostechnix sk

1.2。出力を特定のttyまたはptsに制限する

last コマンドは、セッションが行われた端末デバイスのタイプ(ttyやptsなど)の記録を保持します。

たとえば、ユーザーがローカルまたはssh経由でLinuxマシンにログインした可能性があるとします。出力を特定のttyに制限する場合 、単に実行します:

$ last tty1

出力例:

ostechni tty1                          Thu Jan  7 08:29   still logged in
ostechni tty1                          Wed Jan  6 11:00 - down   (02:31)
ostechni tty1                          Fri Nov 20 11:52 - down   (00:38)
[...]

ttyの名前は省略できます。たとえば、 last 1を実行できます last tty1の代わりに 。

同様に、 ptsのみを一覧表示するには セッションのログイン、実行:

$ last pts/0
ostechni pts/0        192.168.225.37   Thu Jan  7 08:30   still logged in
ostechni pts/0        192.168.225.37   Wed Jan  6 11:02 - 13:31  (02:28)
sk       pts/0        192.168.225.37   Wed Jan  6 11:02 - 11:02  (00:00)
[...]

以下のように、ttyを使用して複数のユーザー名を指定することもできます。

$ last ostechnix sk pts/0 tty1

1.3。出力を特定の行数に制限する

wtmp ログファイルには多数のエントリが含まれる可能性があります。 lastの出力を制限したい場合 特定の行数にコマンドを送信するには、 -nを使用します 以下のようなフラグ:

$ last -n 5

または、

$ last -5

上記のコマンドは、出力に5行のみを表示します。

ostechni pts/0        192.168.225.37   Thu Jan  7 08:30   still logged in
ostechni tty1                          Thu Jan  7 08:29   still logged in
reboot   system boot  5.4.0-53-generic Thu Jan  7 08:20   still running
ostechni pts/0        192.168.225.37   Wed Jan  6 11:02 - 13:31  (02:28)
sk       pts/0        192.168.225.37   Wed Jan  6 11:02 - 11:02  (00:00)

wtmp begins Sun May 24 13:16:52 2020

1.4。 IPアドレスの代わりにホスト名を表示する

デフォルトでは、 last コマンドは、ユーザーがログに記録したソースIPを表示します。 IPアドレスの代わりにホスト名を表示する場合は、 -dを使用します (または-dns )オプション:

$ last -d -5

-w を使用して、出力に完全なユーザー名とドメイン名を表示することもできます。 (または-fullnames )オプション。

1.5。ホスト名とIPアドレスを非表示にする

ホスト名またはIPフィールドを抑制するには、 -Rを使用します オプション。

$ last -5 -R

出力例:

ostechni pts/0        Thu Jan  7 08:30   still logged in
ostechni tty1         Thu Jan  7 08:29   still logged in
reboot   system boot  Thu Jan  7 08:20   still running
ostechni pts/0        Wed Jan  6 11:02 - 13:31  (02:28)
sk       pts/0        Wed Jan  6 11:02 - 11:02  (00:00)

wtmp begins Sun May 24 13:16:52 2020

1.6。特定の時間にユーザーのログインレコードを表示する

-p (または-present )オプションは、現在または指定された時間に誰がログインしたかを検索するために使用されます。

たとえば、次のコマンドを実行して、今日の8時30分に最後にログインしたユーザーを一覧表示します。

$ last -p 08:30

出力例:

ostechni tty1                          Thu Jan  7 08:29   still logged in
reboot   system boot  5.4.0-53-generic Thu Jan  7 08:20   still running

wtmp begins Sun May 24 13:16:52 2020

現在ログに記録されているユーザーを一覧表示するには(つまり、このコマンドの実行時に、次のコマンドを実行します:

$ last -p now

1.7。特定の時間間隔内にログインしているユーザーを表示する

last コマンドには2つのオプションがあります。つまり-s-since )および -t -until )特定の期間内にログインしたユーザーを表示します。 -s オプションは、指定された時間以降のログインの状態と -tを表示するために使用されます オプションは、指定された時間までのログインの状態を表示するために使用されます。

たとえば、 2021-01-07から行われた最後のログインを表示する場合 2021-01-11へ 、コマンドは次のとおりです:

$ last -s 2021-01-07 -t 2021-01-11

出力例:

ostechni pts/0        192.168.225.37   Thu Jan  7 08:30 - 13:16  (04:46)
ostechni tty1                          Thu Jan  7 08:29 - down   (04:47)
reboot   system boot  5.4.0-53-generic Thu Jan  7 08:20 - 13:16  (04:56)

wtmp begins Sun May 24 13:16:52 2020

昨日からの最近のログインを表示するには 今日へ 、実行:

$ last -s yesterday -t today

2021年1月7日から現在までのログインレコードのみを一覧表示する場合は、次を実行します。

$ last -s 2021-01-07
ostechni pts/0        192.168.225.37   Mon Jan 11 06:39   still logged in
reboot   system boot  5.4.0-59-generic Mon Jan 11 06:37   still running
ostechni pts/0        192.168.225.37   Thu Jan  7 08:30 - 13:16  (04:46)
ostechni tty1                          Thu Jan  7 08:29 - down   (04:47)
reboot   system boot  5.4.0-53-generic Thu Jan  7 08:20 - 13:16  (04:56)

wtmp begins Sun May 24 13:16:52 2020

1.8。最後にログインしたユーザーを完全な日付と時刻で表示する

-F-フルタイム )オプションは、完全なログインとログアウトの日時を lastで表示するために使用されます コマンドの出力。

$ last -5 -F

出力例:

ostechni pts/0        192.168.225.37   Mon Jan 11 06:39:29 2021   still logged in
[...]

1.9。最後の列にホスト名を表示する

-a-hostlast )オプションは、切り捨てを防ぐためにホスト名列を最後に表示するために使用されます。

$ last -d -a
ostechni pts/0        Mon Jan 11 06:39   still logged in    ostechnix
[...]

1.10。疑似ユーザー「再起動」の最終ログインレコードを表示する

前に述べたように、最後のコマンドは「reboot」と「shutdown」という名前の特別な疑似ユーザーの記録を保持します。

「再起動」および「シャットダウン」ユーザーの最終ログインの詳細を表示するには、次のコマンドを使用します。

$ last reboot
$ last shutdown

2。 Linuxでlastbを使用して失敗したログイン試行を表示する

lastb lastと同じです コマンドですが、すべての不正なログイン試行のみが一覧表示されます。 / var / log / btmpから失敗したログインの詳細を取得します ファイル。

システムはbtmpにのみ情報を記録することに注意してください 存在する場合はファイル。このファイルが何らかの理由で利用できない場合は、 touchで作成してください。 以下のようなコマンド:

$ sudo touch /var/log/btmp

これで、次のようにlastbコマンドを使用して失敗したログイン試行を表示できます。

$ sudo lastb

出力例:

UNKNOWN  tty1                          Mon Jan 11 07:51 - 07:51  (00:00)
sk       tty1                          Mon Jan 11 07:51 - 07:51  (00:00)
UNKNOWN  tty1                          Mon Jan 11 07:51 - 07:51  (00:00)
sk       tty1                          Mon Jan 11 07:51 - 07:51  (00:00)
ostechni ssh:notty    192.168.225.37   Mon Jan 11 07:49 - 07:49  (00:00)
ostechni ssh:notty    192.168.225.37   Mon Jan 11 07:49 - 07:49  (00:00)
ostechni ssh:notty    192.168.225.37   Mon Jan 11 07:49 - 07:49  (00:00)
UNKNOWN  tty1                          Wed Jan  6 10:59 - 10:59  (00:00)

btmp begins Wed Jan  6 10:59:57 2021
を開始します

上記のコマンドは、Linuxシステムのすべてのユーザーによるすべての失敗したログイン試行を一覧表示します。 SSH経由で行われたログイン試行の失敗も表示されます。

3。 lastlogコマンドを使用してLinuxで最後にログインしたユーザーを検索する

最後のログ コマンドは、LinuxおよびUnixライクなオペレーティングシステムのすべてのユーザーまたは特定のユーザーの最新のログインを表示します。 / var / log / lastlogから最後にログインしたユーザーのリストを取得します ファイルを作成し、結果を標準出力で表示します。

すべてのユーザーの最新のログインを表示するには、次のコマンドを実行します:

$ lastlog

出力例:

Username         Port     From             Latest
root                                       **Never logged in**
daemon                                     **Never logged in**
bin                                        **Never logged in**
[...]
systemd-coredump                           **Never logged in**
ostechnix        tty1                      Mon Jan 11 07:51:46 +0000 2021
lxd                                        **Never logged in**
dnsmasq                                    **Never logged in**
libvirt-qemu                               **Never logged in**
libvirt-dnsmasq                            **Never logged in**
cockpit-ws                                 **Never logged in**
cockpit-wsinstance                           **Never logged in**
libvirtdbus                                **Never logged in**
_flatpak                                   **Never logged in**
sk               pts/0    192.168.225.37   Wed Jan  6 11:02:17 +0000 2021
root                                       **Never logged in**
nobody                                     **Never logged in**

上記の出力にあるように、 lastlog コマンドは、システムユーザーアカウントと binなどの他のサービスアカウントの最終ログインレコードを表示します 、デーモン sys mail nobody など

lastlog コマンドは、ユーザーがログインしたログイン名、ポート、送信元IPアドレス、および最後のログイン日時を出力します。ユーザーがログインしたことがない場合は、メッセージ ** Never login **が出力されます。 出力のポートと時間の代わりに。

なぜ多くのサービスアカウントがログインしたことがないのか疑問に思われるかもしれません。これは、これらのアカウントのログインシェルが / sbin / nologinに設定されているためです。 。シェルへの直接アクセスを制限するために使用される一般的なセキュリティ慣行です。

3.1。特定のユーザーの最後にログインした詳細を表示する

ostechnix など、指定したユーザーの最後のログレコードを表示する場合 、コマンドは次のようになります:

$ lastlog -u ostechnix

出力例:

Username         Port     From             Latest
ostechnix        tty1                      Mon Jan 11 07:51:46 +0000 2021

3.2。 X日より前または最近にログインしたレコードを表示する

lastlog コマンドは、X日より前または最近の最近のログインレコードを表示できます。

たとえば、 -b を使用して、5日より前のすべてのユーザーの最近のログインレコードを取得できます。 以下のようなフラグ:

$ lastlog -b 5

同様に、5日より後のログインレコードを表示するには、 -tを使用します フラグ:

$ lastlog -t 5

3.3。 Linuxでlastlogを使用して最終ログイン情報を削除またはクリアする

ユーザーのlastlogレコードが必要ない場合は、 -Cを使用してクリアします。 (-clear )フラグ:

$ sudo lastlog -u ostechnix -C

ログレコードがクリアされているかどうかを確認するには、次のコマンドを実行します。

$ lastlog -u ostechnix
Username         Port     From             Latest
ostechnix                                         **Never logged in**

助けを得る

詳細については、それぞれのコマンドのヘルプセクションを参照してください。

$ last --help
$ lastb --help
$ lastlog --help

または、各コマンドのマニュアルページを確認してください:

$ man last
$ man lastb
$ man lastlog

結論

last lastb およびlastlog コマンドは、Linuxシステムでの疑わしいユーザーアクティビティを検出するために役立ちます。 Linuxサーバーに最近ログインした(またはログアウトした)人、いつログインしたのか、どのくらいの期間ログインしたのかを確認することは、トラブルシューティング時に間違いなく役立つ重要な詳細です。

関連記事:

  • Linuxで現在ログインしているユーザーを見つける方法
  • Linuxですべてのユーザーを一覧表示する方法
  • Linuxでユーザーアクティビティを監視する方法
  • Linuxシステムへのユーザーのアクセスを制限する方法

Linux
  1. LinuxでFINDを使用する方法

  2. LinuxですべてのSudoユーザーを見つける方法

  3. Linuxで過去30日間に変更されたファイルを見つける方法は?

  1. Linuxでホスト名を変更する方法

  2. Linuxでファイルを見つける方法

  3. Linux ファイル システムで dos 形式のファイルを見つける方法

  1. Linuxでファイルを見つける方法

  2. KaliLinuxでIPアドレスを見つける方法

  3. Linuxターミナルでログに記録されたユーザーにメッセージを送信する方法