Linuxを使っていると、「このユーザーってどんな権限を持っているの?」と確認したい場面が出てきます。たとえば、スクリプトの動作確認時やアクセス権の調整時など、ユーザー情報の把握はとても大切です。
そんなときに役立つのが id
コマンド。たった一行でユーザーのUID、GID、所属グループまで確認できる便利なツールです。この記事では、id
コマンドの基本から応用的な使い方まで、わかりやすく解説します。初心者の方でもすぐに実践できるよう、具体的な例を交えてご紹介していきます。
idコマンドとは?
id
コマンドは、LinuxやUnix系のOSでユーザーの情報を表示するためのコマンドです。
主に以下の情報を確認できます。
- UID(ユーザーID)
- GID(グループID)
- 所属グループ(補助グループも含む)
このコマンドを使うことで、現在ログインしているユーザーのID情報や、特定ユーザーの情報をすばやく確認できます。システム管理者はもちろん、一般ユーザーでも権限確認に役立ちます。
基本的な使い方
まずは、id
コマンドの最もシンプルな使い方を見てみましょう。
id
実行結果の例:
uid=1000(yamada) gid=1000(yamada) groups=1000(yamada),27(sudo),1001(dev)
この結果には次の情報が含まれています。
uid=1000(yamada)
:ユーザーIDは1000で、ユーザー名はyamadagid=1000(yamada)
:プライマリグループIDは1000で、グループ名はyamadagroups=1000(yamada),27(sudo),1001(dev)
:このユーザーが属しているすべてのグループ
自分のユーザー情報を一目で確認できるため、とても便利です。
他のユーザー情報を確認する方法
自分以外のユーザー情報を確認したい場合は、次のようにユーザー名を指定して実行します。
id username
たとえば、「taro」というユーザーの情報を知りたい場合は以下の通り。
id taro
出力結果の例:
uid=1001(taro) gid=1001(taro) groups=1001(taro),27(sudo)
このように、自分以外のユーザーでも、ユーザー名を指定すれば情報を確認できます。ただし、システムによっては他ユーザーの情報を見るために管理者権限が必要な場合もあります。
オプションで絞って表示する
id
コマンドには、必要な情報だけを表示するオプションもあります。以下に代表的なものをご紹介します。
UIDだけを表示する
id -u
例:
1000
このコマンドは、現在のユーザーのユーザーID(UID)のみを表示します。
GIDだけを表示する
id -g
例:
1000
このコマンドは、プライマリグループID(GID)のみを表示します。
所属グループIDをすべて表示する
id -G
例:
1000 27 1001
補助グループも含めて、すべてのグループIDを確認できます。
所属グループ名をすべて表示する
id -nG
例:
yamada sudo dev
グループIDではなく、グループ名を一覧で確認したいときに便利です。
スクリプトでの活用例
id
コマンドはシェルスクリプトなどで使うことも多いです。以下は、特定のユーザーがsudo
グループに属しているか確認する例です。
if id -nG taro | grep -qw "sudo"; then
echo "taroはsudoグループのメンバーです"
else
echo "taroはsudoグループのメンバーではありません"
fi
このように、id -nG
とgrep
を組み合わせることで、ユーザーの所属グループに応じた処理を自動化できます。
エラーが出るケースと対処法
id
コマンドを使っていて、以下のようなエラーが出ることもあります。
id: ‘hoge’: no such user
このエラーは、指定したユーザーが存在しない場合に表示されます。ユーザー名のスペルミスや、存在しないユーザーを指定していないかを確認しましょう。
他のコマンドとの使い分け
ユーザー情報の確認には、id
以外にも次のようなコマンドがあります。
whoami
:現在のユーザー名だけを表示groups
:所属グループ名を表示getent passwd username
:ユーザーの詳細情報を確認
目的によって使い分けることで、より柔軟な運用ができます。
まとめ
id
コマンドは、Linuxでユーザー情報を手軽に確認できる非常に便利なツールです。特に以下のような用途に役立ちます。
- 自分や他人のUID・GIDの確認
- 所属グループのチェック
- スクリプトによるユーザー管理
初心者でもすぐに使えるうえに、管理業務やトラブルシューティングでも欠かせない存在です。この記事を参考に、ぜひコマンドラインで試してみてください。