whoami:OSユーザー識別の包括的ガイド

あなたは、コマンドラインの迷路に迷い込んで、コンピュータシステム内で自分が誰なのかを考えたことがありますか?実は、このデジタル世界での自己発見の探求にはひとりではありません。しかし心配は要りません!`whoami`コマンドが、あなたのデジタルなアイデンティティを明らかにするのに役立ちます。

このチュートリアルでは、あなたのシステムがあなたをどのように見ているかを理解し、あなたのテクノロジーの知識を新たなレベルに引き上げる洞察を得るでしょう。

目を皿のようにしてください。あなたがこれまで気付いていなかった自分の一面を発見する準備ができています!

前提条件

OSユーザーの識別の複雑な世界に飛び込む前に、Windows、macOS、またはLinuxマシンにアクセスできることを確認してください。このチュートリアルでは、Windows 11とmacOS 12.5(モンテレー)を使用してデモを行います。

`whoami`コマンドを使用してログインしているユーザー名を取得する

すべてのユーザーには、彼らのアクセスと行動を規定する固有のアイデンティティがあります。あなたのアイデンティティを探求することは、単にコマンドを入力することだけではありません。それは、あなたのデジタルなアイデンティティの層を明らかにすることです。

whoami

以下の出力では、現在のセッションに関連付けられたユーザ名(つまり、admin)が表示されます。

Retrieving the currently logged-in username

次に、次のwhoコマンドをmacOS上で実行し、macOSシステム内のすべてのログインユーザをリストします。

? このコマンドはWindowsには存在しません。

who

以下の出力は、ユーザーmacosが2回ログインしていることを示しています。一つはコンソールを通じて、もう一つはttys000ターミナルを通じてです。両方のログインは8月31日に異なる時間(21:48と21:49)に開始されました。

複数のターミナルウィンドウを開いたり、何度もログインしたりするユーザーには、ttys001ttys002などといった異なるターミナルデバイス名が割り当てられることがあります。これらのデバイス名は、システム上で同時に発生する他のターミナルセッションを識別し、管理するのに役立ちます。

Showing logged-in users’ details

ユーザのグループメンバーシップの確認

基本的な使用法とは別に、whoamiコマンドは、現在のユーザについてより詳細な情報を提供するための追加オプションを提供します。グループメンバーシップの複雑なウェブを理解する一歩を踏み出しましょう。

whoamiコマンドを使用すると、あなたが所属しているグループという、あなたのデジタルアイデンティティの魅力的なレイヤーを明らかにすることができます。この貴重な洞察は、システムの権限、アクセス権、協調作業環境をより効果的にナビゲートするための装備となります。

以下のwhoamiコマンドを実行して、ユーザアカウントのグループメンバーシップ(/groups)を確認してください。

# PowerShellコマンド
whoami /groups
# macOS/Linuxコマンド
groups

以下の出力は、あなたの現在のユーザーが属しているグループのリストを表示し、アクセス権と権限に関する貴重な洞察を提供します。

ユーザーグループは、アクセス権と権限の割り当てプロセスを簡素化します。各ユーザーに個別の権限を設定する代わりに、グループに権限を割り当て、そのグループのメンバーであるユーザーがグループの権限を継承することができます。

Displaying the current user’s group membership (PowerShell)
Showing the current user’s group membership (macOS/Linux)

ユーザーセキュリティ識別子(SID)の取得

あなたのユーザーSIDは、Windowsドメイン内のあなたのデジタルIDカードです。物理IDが特定の場所へのアクセスを助けるように、SIDはシステムが誰が何にアクセスできるかを管理するのを助けます。

SIDはバウンサーのように機能し、特定のリソース、ファイル、フォルダへのアクセスを許可されたユーザーのみに限定することで、細かい権限を設定します。

現在のユーザーのSID(/user)を取得するために、以下のコマンドを実行します。

# PowerShell コマンド
whoami /user
# macOS/Linux コマンド
id

以下に、ユーザー名とともに、Windows用のユーザーの対応するSIDがあります。これには、以下を識別する一連の数値コンポーネントが含まれています:

  • リビジョン – SID構造のバージョンを示します。
  • 識別機関 – SIDsを生成する各機関に割り当てられるユニークな値。
  • ドメイン識別子 – ドメインまたはセキュリティ機関を表します。
  • 相対識別子(RID) – ドメイン内の各セキュリティ主体に割り当てられるユニークな番号です。
Obtaining the user SID

macOS/Linuxシステムでは、idコマンドを使用して、ユーザーおよびグループ情報を表示できます。これには、ユーザー名、UID(ユーザーID)、GID(グループID)、および補助グループのIDが含まれます。

Showing the UID and the GID of the current user

ログインユーザーのセキュリティ特権を表示する

whoamiコマンドは、ユーザー名を知るだけでなく、デジタル権限の範囲を理解する鍵でもあります。デジタル環境との相互作用に直接影響を与える領域に飛び込んでみましょう。 — セキュリティ特権。

特権とは、システム上でユーザーアカウントのアクションを制御する特定の権利とアクセス許可を指します。有効または無効になっている特権を理解することで、潜在的な脆弱性を特定し、適切な対策を講じることができます。

以下のコマンドを実行して、現在のユーザーのセキュリティ特権を表示します(/priv)。

whoami /priv

?Unixベースのシステムには、Windowsのwhoami /privコマンドに直接相当するものはありません。代わりに、idまたはgroupsコマンドを使用できます。セキュリティ特権は、ファイルのアクセス許可、ユーザーアカウント、およびアクセス制御メカニズムを介して管理されます。

以下に、次のような出力が表示されます:

  • 特権名 – ユーザーに利用可能なさまざまな特権の名前を示します。
  • 説明 – 各特権がユーザーに許可する内容の簡単な説明です。
  • 状態 – ユーザーの各特権の現在の状態を示し、次の2つの状態があります:
State Details
Enabled Indicates the user has been granted that specific privilege and can exercise the associated actions on the system.
Disabled Indicates the user does not have the corresponding privilege and is not allowed to perform actions associated with that privilege.
Displaying the security privileges of the currently logged-in user

whoamiコマンドの出力のフォーマット設定

whoamiコマンドの出力をフォーマットすることは小さな詳細のように思えるかもしれませんが、これはターミナルでの作業をスムーズにするための便利なテクニックです。 whoamiコマンドには、リスト形式またはCSV形式の出力形式を選択するためのオプションがあります。

以下の各whoamiコマンドを実行して、現在のユーザーのセキュリティ特権(/priv)を2つの異なる形式で表示します。

リスト形式(/fo list)は、よりコンパクトな表示が必要な場合に役立ちます。ただし、スプレッドシートアプリケーションでのさらなる処理や分析のために情報が必要な場合は、CSV形式(/fo csv)がより適しています。

# リスト形式で結果を表示
whoami /priv /fo list
# CSV形式で結果を表示
whoami /priv /fo csv

以下の例では、文字のごちゃまぜを見つめる代わりに、きちんと整理された出力が表示されます。

あなたが一般的なユーザーであろうと、ターミナルの達人であろうと、whoamiコマンドの出力のフォーマットは見た目だけでなく、効果的なコミュニケーションにも関わってきます。

Formatting the whoami command’s output

または、以下に示すように、idコマンドやgroupsコマンドを実行し、出力をフォーマットするためにパイプ(|)を使用してストリームエディタ(sed)コマンドを実行することもできます。Unixベースのシステムには、whoami /priv /fo listwhoami /priv /fo csvに相当するコマンドはありません。

以下のコマンドは正規表現を使用して次の操作を実行します:

  • 各文字列のスペースとカンマ([ ,])の区切りを改行(/\n/)に置換します。
  • スペースをカンマに置換(tr ' ' ',')し、非スペーステキスト(\([^ ]*\))をキャプチャし、ダブルクォート("\1")で囲みます。
# idコマンドの出力をリスト形式で表示
id | sed 's/[ ,]/\n/g'
# groupsコマンドの出力をcsv形式で表示
groups | sed 's/\([^ ]*\)/"\1"/g' | tr ' ' ','
Displaying the id command’s output in list format
Displaying the groups command’s output in csv format

結論

このチュートリアルを通じて、whoamiコマンドを使用してユーザーのアイデンティティを発見し理解する芸術に深く入り込みました。

さまざまな管理タスク、権限のトラブルシューティング、そして安全なシステムアクセスの確保において、ユーザー識別に対する理解が手に入りました。

現在、なぜ認証および承認メカニズムの世界に没頭しないのですか?マルチファクタ認証(MFA)、役割ベースのアクセス制御(RBAC)、および属性ベースのアクセス制御(ABAC)についてどうですか?これらのメカニズムがどのように機能するかを理解することは、ユーザー管理とシステムセキュリティの理解を大幅に向上させることができます。

Source:
https://adamtheautomator.com/whoami/