連載
» 2018年08月02日 05時00分 公開

Linux基本コマンドTips(228):【 id 】コマンド――ユーザーの識別情報を表示する

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、ユーザーの識別情報を表示する「id」コマンドです。

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回はユーザーの識別情報を表示する「id」コマンドです。

idコマンドとは?

 「id」は、ユーザーIDやユーザー名、グループID、グループ名などの識別情報を表示するコマンドです。



idコマンドの書式

id [オプション] [ユーザー名...]

※[ ]は省略可能な引数を示しています





idの主なオプション

短いオプション 長いオプション 意味
-u --user 実効ユーザーのみをIDで表示する(※1)
-g --group 実効グループのみをIDで表示する(ファイルの作成などはこのグループIDで行われる。通常はプライマリーグループ)
-G --groups ユーザーが所属する全てのグループをIDで表示する
-n --name ユーザーやグループの名前だけを表示する(-u、-g、-Gとともに使用)
-r --real 実効IDの代わりに実IDを表示する(-u、-g、-Gとともに使用、本文参照
-Z --context セキュリティコンテキストを表示する(idコマンドを実行しているユーザーのみを表示し、引数にユーザーは指定できない)
-z --zero 区切り文字としてNULLを使用(デフォルトは空白区切り)
-a 互換性オプション(他のバージョンとの互換性のために残されているオプションで、オプションなしで実行したときと同様に、全ての情報が表示される)

※1 実効ユーザーと実ユーザーの違いについては本文を参照





ユーザーの識別情報を表示する

 「id」を実行すると、実行したユーザーのID(uid)と名前、所属グループのID(gid)と名前、さらにSELinuxのセキュリティコンテキスト(context)を表示します(画面1、※2)。

※2 現在のユーザーのアクセス制限を表示する。SELinux(Security-Enhanced Linux)とは、強制アクセス制御(Mandatory Access Control)を加えたLinuxのカーネルモジュールとその機能をいう。SELinuxが有効になっていると、通常のファイルシステムよりも高度なアクセス制御機能を使用でき、例えばroot権限をも制限できる。



 「id ユーザー名」または「id ユーザーID」で、指定したユーザーのユーザーIDと名前、所属グループのグループIDと名前を表示します。ユーザー名やユーザーIDは引数として複数指定できます。

コマンド実行例

id

(ユーザーの情報を表示する)(画面1

id ユーザー

(指定したユーザーの情報を表示する、ユーザー名またはIDで指定)

id root

(rootユーザーの情報を表示する)(画面1


画面1 画面1 ユーザーIDなどを表示したところ


ユーザー名だけを表示する

 「id -u」でユーザーIDのみを表示、「id -un」でユーザー名だけを表示します(画面2)。

 「id -un」は「whoami」(連載第69回)コマンドに相当します。同様に、「id -Gn」で「groups」(自分が所属するグループの名前を表示するコマンド、第69回)相当になります。

コマンド実行例

id -u

(ユーザーIDを表示する)(画面2

id -un

(ユーザー名を表示する)(画面2

id -Gn

(グループ名を表示する、自分が所属する全てのグループが対象)


画面2 画面2 ID関連の特定の情報だけを表示したところ


実ユーザーを表示する

 Linuxでは、コマンドを実行する際のユーザーを「実効ユーザー」と「実ユーザー」の2種類に区別します。

 「実効ユーザー」(effective user)は、「現在自分が誰としてコマンドを動かしているか」を表しています。ユーザーのアクセス権限を表す用語です。idコマンドがデフォルトで表示するのは実効ユーザーです。

 これに対し、コマンドを実際に実行したユーザーを「実ユーザー」(real user)と呼びます。グループも同様で、実効グループと実グループがあります。

 idコマンドで実ユーザーや実グループを表示する際は「-r」オプションを使います。

 通常、idコマンドを実行する際は実ユーザーと実効ユーザーが一致しているので、違いが分かりにくいでしょう。例えば以下の方法で違いを試すことができます。

 まずテスト用にidコマンドをコピーし、idコマンドにSUID属性とSGID属性(Linux再入門第12回)を追加しました。実効ユーザーと実ユーザーの違いがidコマンドの実行結果に表れています(画面3)。

画面3 画面3 実効ユーザー名と実ユーザー名の違いを確認したところ


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『Accessではじめるデータベース超入門[改訂2版]』『macOSコマンド入門』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。