Linux でユーザーを一覧表示する方法

Linux でユーザーを一覧表示する方法

Linux オペレーティング システムには、ユーザーを作成および削除し、どのユーザーがログインしているかを確認するためのコマンドがあります。ただし、システムにログインしているかどうかにかかわらず、ユーザーを一覧表示するコマンドはありません。

それでも、これをやってのける方法がいくつかあります。Linux でユーザーを一覧表示する方法を知りたい場合は、以下の手順に従ってください。

Linux ユーザー リストを確認する必要がある理由

Linux でユーザーを一覧表示する理由はいくつかあります。未使用のアカウントを見つけて削除するという点では、これは良い習慣です。セキュリティの観点からは、侵入者がユーザー アカウントを作成しないようにするための良い方法でもあります。

これは、少なくとも 1 か月に 1 回は実行する必要がある管理タスクです。企業の Linux サーバーを実行している場合は、より頻繁に実行することをお勧めします。

/etc/passwd にリストされているユーザー

Linux サーバーのユーザー アカウントはすべて、ファイル/etc/passwdにエントリがあります。各行はユーザーを表し、コロンで区切られた 7 つのフィールドがあります。フィールドは、ユーザーに関する情報を提供します。

  • ユーザー名。
  • 暗号化されたパスワード ( xは、パスワードが実際に/etc/shadowにあることを示します)
  • ユーザー ID 番号 (UID)。
  • ユーザーのグループ ID 番号 (GID)。
  • リストされている場合、ユーザーのフルネーム。
  • ユーザーのホーム ディレクトリ。
  • ログインシェル

これで、Linux 上のすべてのユーザーを一覧表示する 1 つの方法が得られました。lessコマンドを使用すると、一度に 1 画面ずつファイル全体を表示できます。

less /etc/passwd

Linux でユーザーを一覧表示する方法

特定のユーザーが Linux システムに存在するかどうかを確認する場合は、コマンドgrepを使用すると便利です。

less passwd | grep jeff

Linux でユーザーを一覧表示する方法

出力が得られない場合、そのユーザーは Linux サーバーに存在しません。

それにしてもすごい情報量です。たとえば、 awkまたはcutコマンドのいずれかを使用して、ユーザー名だけに切り詰めることができます。

awk -F: '{print $1}' /etc/passwd cut -d: -f1 /etc/passwd

Linux でユーザーを一覧表示する方法

その方がはるかに理解しやすい傾向にありますが、それでも、人間のユーザーと混在するシステムベースのユーザー アカウントをすべて表示する必要があります。

getent を使用してユーザーを一覧表示する方法

もう 1 つのコマンドgetentは、はるかに便利です。サーバーの/etc/nsswitch.confファイルで構成された任意のデータベースからのエントリが表示されます。それらの 1 つはpasswdデータベースです。getentを使用してすべての Linux ユーザーのリストを表示するには、次のようにします。

getent passwd

出力は、 lessコマンドを使用した場合とまったく同じように見えますが、Linux システム上の LDAP ユーザーがすべて一覧表示されます。繰り返しになりますが、awkコマンドとcutコマンドは、最初のフィールドであるユーザー名のみを表示するのに役立ちます。

特定のユーザーが Linux システムに存在するかどうかを確認したい場合は、getentを使用すると簡単に実行できます。

getent passwd jeff

繰り返しますが、このコマンドからの出力は、ユーザーが存在しないことを示していません。

getent のもう1 つの優れた用途は、サーバー上に存在するユーザー アカウントの数を調べることです。これは、次のようにwcコマンドを介してgetentの出力をパイプすることによって行われます。

getent passwd | wc -l

Linux でユーザーを一覧表示する方法

ご覧のとおり、私の Linux システムには合計 48 個のアカウントがあります。これを使用しているのは私だけなので、非常に興味深いのですが、これは Linux で作成されたシステム アカウントの数を示しているにすぎません。

通常のユーザーからシステム ユーザーを除外する

Linux の目には、システム ユーザーと人間のユーザーの間に違いはありません。OS をインストールするたびに、多くのシステム ユーザーが作成されます。その他のシステム ユーザーは、Web やメール サービス ソフトウェアなど、さまざまなパッケージ用に作成されます。

では、どうすれば Linux システムの通常の人間のユーザーだけを一覧表示できるでしょうか? ここで重要なのは、通常のユーザーを作成すると、その UID が特定の範囲の数値内で割り当てられることを理解することです。/etc/login.defsファイルを確認することで、通常のユーザー アカウントで使用できる UID 値の範囲を決定できます。

grep -E '^UID_MIN|^UID_MAX' /etc/login.defs

Linux でユーザーを一覧表示する方法

出力に基づいて、通常のユーザーは 1000 から 60000 の間の UID を持っている必要があることがわかります。これから、通常のユーザーのみを表示するgetentクエリを作成できます。

getent passwd {1000..60000}

Linux でユーザーを一覧表示する方法

getentは、出力を表示した後でもハングしているように見えることに注意してください。Ctrl-Cを押してプロセスを終了するか、終了するまで待つことができます。通常、 passwdデータベースの検索が完了するまでに 15 秒もかかりません。

このコマンドのより一般的なバージョンでは、さまざまなサーバーが使用するさまざまなUID_MINおよびUID_MAX値が考慮されます。

eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)}

このコマンドでは、一度に複数のことを実行できる Linux の機能を利用しています。awkコマンドは UID_MIN と UID_MAX の値を取得し、getentコマンドでそれらを使用します

ここで、必要なのはユーザー名だけだとしましょう。もう一度、次のようにカットコマンドを介して出力をパイプします。

eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)} | cut -d: -f1

Linux でユーザーを一覧表示する方法

このコマンドが完了するまでに 10 ~ 15 秒かかる場合があるため、しばらくお待ちください。

Linux ユーザーを効果的に管理する

Linux システムに存在するユーザー アカウントを追跡することが重要です。従業員が退職したことがわかったら、すぐにその従業員のユーザー アカウントを削除してください。Linux ユーザーを定期的にリストアップすると、行き詰まっている可能性のあるアカウントを確実に把握するのに役立ちます。

同時に、パスワード セキュリティ ポリシーを常に把握し、ユーザーにパスワードを定期的に変更するよう促してください。

Tags: #HOW-TO

ジンジャー 2.7.53.0

ジンジャー 2.7.53.0

Ginger は無料のスペル チェッカーと文法チェッカーです。

ブロック

ブロック

Blocks は、小学校 3 年生向けの探知能力と視覚能力を訓練するための知的なゲームであり、教師による IT 指導支援プログラムに組み込まれています。

マスウェイ

マスウェイ

Mathway は、デバイスに内蔵されている電卓よりも複雑なツールを必要とする数学の問題をすべて解決できる、非常に便利なアプリです。

アドビプレゼンター

アドビプレゼンター

Adobe Presenter は、Adobe Systems によってリリースされた e ラーニング ソフトウェアで、Microsoft Windows プラットフォーム上で Microsoft PowerPoint プラグインとして利用できます。

オオハシ 2.3.0

オオハシ 2.3.0

Toucan は教育テクノロジー プラットフォームです。日常的に使用される一般的な Web サイトを閲覧しながら、新しい言語を学習できます。

ENetViet 24.2

ENetViet 24.2

eNetViet は、保護者と子供が勉強している学校を結び付け、子供の現在の学習状況を明確に理解できるようにするアプリケーションです。

デュオリンゴ

デュオリンゴ

Duolingo - 無料で言語を学ぶ、または単に Duolingo は、さまざまな言語を学び、練習できる教育プログラムです。

ラピッドタイピング

ラピッドタイピング

RapidTyping は、タイピング速度を向上させ、スペル ミスを減らすのに役立つ、便利で使いやすいキーボード トレーニング ツールです。RapidTyping では、さまざまなレベルに合わせてレッスンが構成されており、タイピングの方法や既存のスキルを向上させる方法を学びます。

MathType 7.4.10.53

MathType 7.4.10.53

MathType は、開発者 Design Science (Dessci) が提供するインタラクティブな方程式ソフトウェアで、ワード プロセッシング、プレゼンテーション、e ラーニングなどの数学的記法を作成して注釈を付けることができます。このエディタは、TeX、LaTeX、および MathML ドキュメントの作成にも使用されます。

文法的に

文法的に

Grammarly の AI を活用したアプリは、人々のコミュニケーションをより効果的にするのに役立ちます。何百万ものユーザーが毎日 Grammarly を利用して、メッセージ、ドキュメント、ソーシャル メディアの投稿をより明確に、エラーなく、よりプロフェッショナルなものにしています。