id コマンドは、ユーザの UID・GID・所属グループなどの情報を表示するコマンドです。
実行中のユーザや、指定したユーザがどのグループに属しているかを確認することができます。
権限周りのトラブルシュート(「このユーザはこのディレクトリに書き込めるはずか?」など)や、
ユーザ・グループ設計の確認で頻繁に使われます。
useradd・usermod・groupadd と合わせて覚えておくと便利です。
id [オプション] [ユーザ名]
ユーザ名を省略した場合は、「コマンドを実行したユーザ」についての情報を表示します。
ユーザ名を指定すると、そのユーザの UID・GID・所属グループ一覧を確認できます。
・現在のユーザの UID・GID・所属グループを確認する(基本)。
id
カレントユーザ(コマンドを実行したユーザ)について、
UID(ユーザ ID)、GID(グループ ID)、所属グループ一覧をまとめて表示します。
sudo などで権限を切り替えたあとに「いま誰として動いているか?」を確認するのに便利です。
・特定ユーザの UID・GID・所属グループを確認する。
id sooota
ユーザ名 sooota の UID・GID・所属グループを表示します。
アプリケーション用ユーザや、他人のアカウントの権限を確認したいときに使います。
・ユーザ ID(UID)だけを表示する。
id -uid -u sooota
-u(–user)は、ユーザ ID(UID)のみを表示します。
スクリプト内で UID を数値として扱いたい場合などに便利です。
・グループ ID(GID)だけを表示する。
id -gid -g sooota
-g(–group)は、primary グループの GID のみを表示します。
ユーザのメインのグループ ID だけを知りたい場合に利用します。
・所属グループの ID 一覧だけを表示する。
id -Gid -G sooota
-G(–groups)は、そのユーザが所属しているすべてのグループ IDを表示します。
どのグループに入っているかを確認したいときに使います。
・ID ではなく「名前」で表示する。
id -unid -Gn sooota
-n(–name)を組み合わせると、ID ではなく名前で表示するようになります。
id -un は「現在のユーザ名」、id -Gn は「所属グループ名一覧」を表示するのによく使われます。
・実効 ID ではなく「実 ID」を表示する。
id -urid -gr
-r(–real)は、「実効 ID」ではなく実 IDを表示するオプションです。
setuid/setgid バイナリや sudo で権限昇格した状態で、
「本来の UID/GID が何か」を確認したい場面で使われます。
・SELinux 環境でセキュリティコンテキストを確認する。
id -Z
-Z(–context)は、SELinux が有効な環境で「セキュリティコンテキスト」を表示します。
user:role:type:level のような形式で出力され、SELinux の権限トラブル調査に使われます。
SELinux を無効にしている環境では何も表示されない場合があります。
・スクリプトから UID を見て条件分岐する(例)。
[ "$(id -u)" -eq 0 ] && echo "root で実行されています"
id -u を用いて、スクリプトが root で実行されているかどうかを判定する例です。
「root で動かしてはいけない処理」や、「root でないと実行できない処理」のガードに使えます。
・権限トラブルシュート時の確認
「このユーザは本当にこのグループに入っているか?」「なぜアクセスできないのか?」
といった権限トラブルのときに、まず id ユーザ名 で UID/GID・所属グループを確認します。
・sudo / su 後の状態確認
sudo や su - でユーザを切り替えたあと、
id を打って「現在どのユーザ・グループとして動いているか」を確認するのは定番です。
・NFS や共有ストレージ利用時の UID/GID 整合性チェック
複数サーバ間でファイルを共有する場合、UID/GID が揃っていないと権限がずれて見えます。
各サーバで id ユーザ名 を実行し、UID/GID が一致しているか確認するのに使います。
・スクリプトでの権限ガード
バッチやデプロイスクリプトの冒頭で id -u をチェックし、
「root でしか動かさない」「逆に root では実行禁止」といった条件分岐を入れることがよくあります。
ユーザやグループの作成・変更は useradd コマンド、usermod コマンド、groupadd コマンド などで行い、
その結果を確認するコマンドとして id を使う、というイメージで押さえておくと理解しやすいです。
| short option | long option | description |
|---|---|---|
| -u | --user | ユーザ ID(UID)のみを表示する |
| -g | --group | primary グループ ID(GID)のみを表示する |
| -G | --groups | 所属しているすべてのグループ ID を表示する |
| -n | --name | ID の代わりに名前で表示する(-u/-g/-G などと組み合わせて使用) |
| -r | --real | 実効 ID ではなく実 ID を表示する(-u/-g と組み合わせて使用) |
| -Z | --context | SELinux が有効な場合にセキュリティコンテキストを表示する |
| -a | すべての情報を表示する(GNU 版ではデフォルトと同等・互換性のために用意されたオプション) | |
| -h | --help | id コマンドの使い方(ヘルプ)を表示して終了する |
| -V | --version | id コマンドのバージョン情報を表示して終了する |
ここでは、GNU coreutils ベースの id コマンドで一般的によく使われるオプションを TablePress の表としてまとめている想定です。
実際に利用可能なオプションや挙動は、ディストリビューションやバージョンによって異なる場合があるため、
本番環境で使用する前に man id で最新の仕様を確認することをおすすめします。
新着情報
ブログランキングに参加しています。クリックして応援していただけると嬉しいです。

人気ブログランキング
![]()
にほんブログ村